TechnikDevOps

Software effizient entwickeln

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 Reibungsverluste zwischen der agilen Anwendungsentwicklung und dem IT-Betrieb, der auf hohe Verfügbarkeit 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 transformieren die Geschäftsmodelle von Unternehmen aller Branchen. Firmen müssen schnell auf  Änderungswünsche der Kunden reagieren und neue Anwendungen innerhalb kürzester Zeit auf den Markt bringen. Eine effiziente Softwareentwicklung wird damit zu einem entscheidenden 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 wesentlicher Grund dafür sind die unterschiedlichen Ziele von Softwareentwicklung und IT-Betrieb. Die Entwicklungsabteilung will den Fachabteilungen 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ügbarkeit und stabile IT-Prozesse. Diese Unterschiede führen bei Problemen schnell zu wechselseitigen Schuldzuweisungen.

Ein einfaches Beispiel: Die Entwicklung gibt die in wenigen Tagen entwickelte neue Version einer Anwendung an den Betrieb weiter. Nach der Installation treten aber Fehler auf, die Anwendung läuft nicht stabil. Die Entwickler weisen jegliche Verantwortung zurück und geben dem Betrieb die Schuld: „Die Software läuft auf der Entwicklungsumgebung 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 Reibungsverluste verhindern. DevOps bildet damit eine Brücke zwischen Softwareentwicklern 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 Verantwortung 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 Voraussetzungen für die effiziente Software-Entwicklung schaffen. DevOps deckt damit den kompletten Lebenszyklus einer Software ab, von der Planung und Entwicklung bis hin zu Bereitstellung 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 Softwareentwicklung mit sich überlappenden Entwicklungsschritten. DevOps überträgt, so der Plan, agile Methoden auch auf den IT-Betrieb und verbindet Standardmodelle für Software-Entwicklung und IT-Betrieb miteinander. Umgekehrt gelten für die Entwicklungsumgebungen Prinzipien aus dem IT-Betrieb wie Service-Level-Agreements und hohe Verfügbarkeit. 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öffentlichen Unternehmen, die mit dem DevOps-Konzept arbeiten, ihren Code bis zu 30mal schneller als traditionelle 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 Grundprinzipien Culture, Automation, Lean, Measurement und Sharing (CALMS) definiert:

• Culture: Eine der Voraussetzungen für den Erfolg von DevOps ist die enge Kooperation von Entwicklungsabteilung und IT-Betrieb. Kulturelle Basis dieser Zusammenarbeit sind beispielsweise Selbstverpflichtung der Beteiligten auf gemeinsame Ziele, gegenseitiges Vertrauen oder permanente Bereitschaft zum Lernen.

• Automation: Die Automatisierung bestimmter Arbeitsvorgänge ist eine wesentliche Voraussetzung für beschleunigte Release-Prozesse, sei es die Abbildung einfacher wiederkehrender Tätigkeiten oder der automatisierte Aufbau und Betrieb von Infrastrukturen. Dazu müssen Unternehmen die einzelnen Arbeitsschritte bis ins kleinste Detail definieren, standardisieren sowie geeignete Tools einsetzen.

• Lean: Dahinter stehen der sparsame und effiziente Einsatz der Ressourcen sowie die Prozessoptimierung etwa durch Automatisierung.

• Measurement: Um die Qualität in schnellen Release-Prozessen dauerhaft zu sichern, benötigt die IT-Abteilung einheitliche Bewertungskriterien für die Überwachung der Anwendung, ihrer Komponenten und der dahinter liegenden Prozesse. Mit Hilfe von Software-Tests, die auf nachvollziehbaren Metriken beruhen, lassen sich die Produkte kontinuierlich verbessern.

• Sharing: Der ständige Austausch zwischen Entwicklung und Betrieb führt wie der Punkt Culture in den zwischenmenschlichen 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 Prozessmodelle, Technologien und Tools von Spezialanbietern etwa für Automatisierung, Konfigurations-Management, Release-Management, Monitoring oder Software-Tests wesentlich für die Implementierung des DevOps-Konzepts. Entscheidend für den langfristigen Erfolg ist aber die Arbeitskultur, sprich eine bessere Zusammenarbeit 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 verwirklichen, die eingefahrene 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 zusammenarbeiten, 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, vereinfachen und beschleunigen sich Software-Tests und damit die Qualitätssicherung. Die Entwickler können in der Cloud beispielsweise auch Infrastrukturen simulieren, die der späteren Produktionsumgebung nahe kommen.