Image: Software effizient entwickelnFERCHAUFERCHAU
TechnikDevOps

Soft­ware effi­zient entwi­ckeln

Lesezeit ca.: 5 Minuten
Jürgen Mauerer

Jürgen Mauerer

freier Journalist

Unternehmen müssen Software-Anwendungen möglichst schnell und kostengünstig auf den Markt bringen. Doch in der Praxis entstehen häufig Reibungs­ver­luste zwischen der agilen Anwendungs­ent­wick­lung und dem IT-Betrieb, der auf hohe Verfügbar­keit und Stabilität ausgelegt ist. Hier setzt DevOps an.

26. Juni 2015

Trends wie Cloud Computing, Big Data und Mobile verändern die Anforderungen von Kunden und transfor­mieren die Geschäfts­mo­delle von Unternehmen aller Branchen. Firmen müssen schnell auf  Änderungs­wün­sche der Kunden reagieren und neue Anwendungen innerhalb kürzester Zeit auf den Markt bringen. Eine effiziente Software­ent­wick­lung wird damit zu einem entschei­denden Faktor für den Erfolg von Unternehmen. Doch häufig treten bei der Übergabe der Software-Anwendung aus der Entwicklung in den IT-Betrieb Probleme auf.

Ein wesentli­cher Grund dafür sind die unterschied­li­chen Ziele von Software­ent­wick­lung und IT-Betrieb. Die Entwicklungs­ab­tei­lung will den Fachabtei­lungen die geforderte neue Anwendung oder neue Funktionen möglichst schnell bereitstellen. Die für den IT-Betrieb zuständigen Mitarbeiter legen hingegen größten Wert auf hohe Verfügbar­keit und stabile IT-Prozesse. Diese Unterschiede führen bei Problemen schnell zu wechselsei­tigen Schuldzu­wei­sungen.

Ein einfaches Beispiel: Die Entwicklung gibt die in wenigen Tagen entwickelte neue Version einer Anwendung an den Betrieb weiter. Nach der Installa­tion treten aber Fehler auf, die Anwendung läuft nicht stabil. Die Entwickler weisen jegliche Verantwor­tung zurück und geben dem Betrieb die Schuld: „Die Software läuft auf der Entwicklungs­um­ge­bung fehlerfrei. Daher kann der Fehler nur beim Betrieb liegen.“ Durch den Konflikt geht wertvolle Zeit verloren.

Brücke zwischen Entwicklung und IT-Betrieb

Das auf Kooperation ausgelegte DevOps-Konzept – ein Kunstwort aus Development (Dev) und Operations (Ops) –soll genau diese Reibungs­ver­luste verhindern. DevOps bildet damit eine Brücke zwischen Software­ent­wick­lern und IT-Betrieb, um Software schneller und möglichst ohne Fehler verfügbar zu machen. Ziel von DevOps ist, dass Entwicklung und Betrieb ihre Prozesse besser aufeinander abstimmen. Das komplette IT-Team übernimmt gemeinsam die Verantwor­tung und sorgt dafür, dass  die Anwendung oder der Service verfügbar ist.

Gefordert ist daher ein Wandel der Prozesse und vor allem der Arbeitskultur im Unternehmen. Die Teams aus IT-Entwicklung und IT-Betrieb müssen ihre Trennlinie überwinden, besser miteinander kommunizieren und gemeinsam die technischen und strukturellen Vorausset­zungen für die effiziente Software-Entwicklung schaffen. DevOps deckt damit den kompletten Lebenszy­klus einer Software ab, von der Planung und Entwicklung bis hin zu Bereitstel­lung und Betrieb.

DevOps wird zum Standard

Mit DevOps lassen sich Anwendungen bereits nutzen (und testen), wenn sie noch nicht komplett entwickelt sind. Das entspricht dem flexiblen, iterativen Vorgehen der agilen Software­ent­wick­lung mit sich überlappenden Entwicklungs­schritten. DevOps überträgt, so der Plan, agile Methoden auch auf den IT-Betrieb und verbindet Standard­mo­delle für Software-Entwicklung und IT-Betrieb miteinander. Umgekehrt gelten für die Entwicklungs­um­ge­bungen Prinzipien aus dem IT-Betrieb wie Service-Level-Agreements und hohe Verfügbar­keit. Die Folge der Verzahnung sind kürzere Release-Zyklen. Auch das Risiko von ungetesteten Code-Elementen wird minimiert, da die eingesetzten Verfahren über den gesamten Software-Prozess hinweg identisch sind.

Mittlerweile haben viele Unternehmen die Vorteile von DevOps erkannt. Dem „2014 State of DevOps Report“ von Puppet Labs zufolge veröffent­li­chen Unternehmen, die mit dem DevOps-Konzept arbeiten, ihren Code bis zu 30mal schneller als traditio­nelle Unternehmen und haben 50 Prozent weniger Ausfälle. Daher kommt es nicht überraschend, dass gemäß der „Worldwide CIO Agenda 2015 Predictions“ von IDC 60 Prozent der CIOs DevOps als bevorzugte Methode für die Software-Entwicklung einsetzen wollen.

Wichtige Prinzipien von DevOps

Was also ist das Geheimnis von DevOps? John Willis, einer der Pioniere der DevOps-Bewegung, hat für DevOps die fünf Grundprin­zi­pien Culture, Automation, Lean, Measurement und Sharing (CALMS) definiert:

• Culture: Eine der Vorausset­zungen für den Erfolg von DevOps ist die enge Kooperation von Entwicklungs­ab­tei­lung und IT-Betrieb. Kulturelle Basis dieser Zusammen­ar­beit sind beispiels­weise Selbstver­pflich­tung der Beteiligten auf gemeinsame Ziele, gegensei­tiges Vertrauen oder permanente Bereitschaft zum Lernen.

• Automation: Die Automati­sie­rung bestimmter Arbeitsvor­gänge ist eine wesentliche Vorausset­zung für beschleu­nigte Release-Prozesse, sei es die Abbildung einfacher wiederkeh­render Tätigkeiten oder der automati­sierte Aufbau und Betrieb von Infrastruk­turen. Dazu müssen Unternehmen die einzelnen Arbeitsschritte bis ins kleinste Detail definieren, standardi­sieren sowie geeignete Tools einsetzen.

• Lean: Dahinter stehen der sparsame und effiziente Einsatz der Ressourcen sowie die Prozessop­ti­mie­rung etwa durch Automati­sie­rung.

• Measurement: Um die Qualität in schnellen Release-Prozessen dauerhaft zu sichern, benötigt die IT-Abteilung einheitliche Bewertungs­kri­te­rien für die Überwachung der Anwendung, ihrer Komponenten und der dahinter liegenden Prozesse. Mit Hilfe von Software-Tests, die auf nachvoll­zieh­baren Metriken beruhen, lassen sich die Produkte kontinuier­lich verbessern.

• Sharing: Der ständige Austausch zwischen Entwicklung und Betrieb führt wie der Punkt Culture in den zwischen­mensch­li­chen Bereich. Die Team-Mitglieder sollen sich regelmäßig treffen, ihr Wissen teilen und eine offene Feedback-Kultur pflegen.

Fazit: Kultur (fast) wichtiger als Technologie

Wenn Unternehmen diese fünf Prinzipien beherzigen, können sie mit Hilfe von DevOps neue Applikationen schneller einführen und auch Kosten senken. Natürlich sind Prozessmo­delle, Technolo­gien und Tools von Spezialan­bie­tern etwa für Automati­sie­rung, Konfigura­tions-Management, Release-Management, Monitoring oder Software-Tests wesentlich für die Implemen­tie­rung des DevOps-Konzepts. Entschei­dend für den langfris­tigen Erfolg ist aber die Arbeitskultur, sprich eine bessere Zusammen­ar­beit zwischen den Teams aus IT-Entwicklung und Betrieb. Dies setzt aber veränderte Strukturen und Prozesse innerhalb der IT-Abteilung voraus. DevOps lässt sich daher nur mit IT-Managern und IT-Experten verwirkli­chen, die eingefah­rene Denkmuster überwinden und sich offen für neue Ansätze zeigen.

Cloud Computing und DevOps

DevOps-Teams können mit Hilfe von Cloud-Plattformen effizienter und flexibler zusammen­ar­beiten, weil jedes Team-Mitglied selbst auf alle notwendigen Ressourcen zugreifen und Dateien mit seinen Kollegen teilen kann. Damit sind alle Vorgänge für jeden transparent, jeder Mitarbeiter verfügt über die gleiche Wissensbasis. Da es zudem möglich ist, in der Cloud virtuelle Maschinen (VMs) zu erzeugen, duplizieren und gemeinsam zu nutzen, vereinfa­chen und beschleu­nigen sich Software-Tests und damit die Qualitäts­si­che­rung. Die Entwickler können in der Cloud beispiels­weise auch Infrastruk­turen simulieren, die der späteren Produkti­ons­um­ge­bung nahe kommen.