DevOps und die Cloud: Software schneller bereitstellen

DevOps gilt als Schlüssel für die effiziente App-Entwicklung. Das Konzept soll Barrieren zwischen agiler Entwicklung und dem IT-Betrieb überwinden.

Unternehmen müssen Anwendungen und deren Updates zunehmend schneller und in kürzeren Zyklen auf den Markt bringen....

Die Ursachen dafür sind vielfältig: Trends wie Big Data, Mobile und Cloud Computing transformieren die Geschäftsmodelle, Kunden fordern schnelle Änderungen oder den beschleunigten Marktstart neuer Anwendungen, neue Anforderungen aus den Fachbereichen beanspruchen kürzere Update-Zyklen.

Unternehmen müssen daher nicht nur ihre IT-Infrastruktur anpassen, sondern auch die Art und Weise, wie sie Anwendungen entwickeln und betreiben. Oberste Prämisse sind Agilität und kurzfristige Reaktion. Die heute verbreiteten IT-Infrastrukturen bieten aber nur selten die Flexibilität, um Anwendungen und Prozesse an die schnellen Veränderungen anzupassen.

Die klassische IT-Infrastruktur wird daher künftig immer mehr durch flexible IT-Projekte aus der Cloud ergänzt. Stichworte sind Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Cloud-Management-Plattformen sowie DevOps für die schnelle und effiziente Softwareentwicklung.

DevOps bildet Brücke 

Der Begriff DevOps kombiniert Dev für die Softwareentwicklung (Development) und Ops für den IT-Betrieb (Operations). DevOps soll eine Brücke zwischen den IT-Entwicklern und dem IT-Betrieb bilden, damit Software schneller und möglichst ohne Fehler zum Einsatz kommen kann. Ziel von DevOps ist eine engere Verzahnung von Entwicklung und Betrieb.

Das auf Kooperation ausgelegte DevOps-Konzept reagiert auf die Spannungen, die im Alltag häufig zwischen IT-Entwicklung und IT-Betrieb entstehen. Wesentlicher Grund dafür: Softwareentwicklung und IT-Betrieb verfolgen unterschiedliche Ziele. Höchste Prioritäten des IT-Betriebs sind stabile, sichere und hoch verfügbare Anwendungen und IT-Prozesse.

Die IT-Entwicklung hingegen will neue Funktionen und Anwendungen schnell bereitstellen, um rasch auf veränderte Anforderungen reagieren zu können. Diese unterschiedlichen Prioritäten führen bei Problemen leicht zu wechselseitigen Schuldzuweisungen. DevOps minimiert diese Reibungsverluste. Organisatorisch erfolgt dies über gemeinsam verantwortliche Teams aus Entwicklern und Mitarbeitern des IT-Betriebs.

Agile Methoden ersetzen Wasserfall-Modell

DevOps unterstützt zudem das flexible, iterative Vorgehen der agilen Softwareentwicklung. Agile Methoden wie Scrum lösen zunehmend das traditionelle, lineare Wasserfallmodell ab, das die Entwicklung von Software in aufeinander aufbauende Phasen mit vorher klar definierten Ergebnissen unterteilt. Ein linearer Ablaufplan legt dabei genau fest, welche Phase nach dem Abschluss einer Phase folgt.

Das Wasserfallmodell eignet sich vor allem für wenig komplexe Projekte, da es eine sehr konkrete Planung erfordert. Diese genaue Planung mit hintereinander ablaufenden Phasen wird aber zum Nachteil, wenn Veränderungen und neue Anforderungen ein flexibles Vorgehen verlangen.

Agile Methoden hingegen setzen auf sich überlappende Entwicklungsschritte, um auf Veränderungen zu reagieren. So ist es möglich, Anwendungen bereits zu testen und zu nutzen, wenn deren Entwicklung noch nicht abgeschlossen ist. DevOps wendet agile Methoden auch im IT-Betrieb an und verbindet Standardmodelle für Softwareentwicklung und IT-Betrieb miteinander. Die Verzahnung führt zu kürzeren Release-Zyklen und minimiert das Risiko von ungetesteten Code-Elementen, weil die eingesetzten Werkzeuge und Verfahren über den gesamten Softwareentwicklungssprozess hinweg identisch sind.

Die Vorteile von DevOps zeigt beispielsweise der US-amerikanische Softwarehersteller Puppet Labs in seinem Bericht 2015 State of DevOps Report. Demnach stellen Unternehmen mit Hilfe von DevOps ihre Anwendungen um bis zu 30-mal schneller bereit als Firmen, die traditionell arbeiten – und sie verzeichnen 60 Prozent weniger Störungen oder Ausfälle bei Anwendungen.

Automatisierte Prozesse

Ein wichtiges Ziel von DevOps ist die Automatisierung von möglichst vielen Arbeitsvorgängen, um die Release-Prozesse zu beschleunigen. Dazu muss das IT-Team zunächst die einzelnen Arbeitsschritte bis ins kleinste Detail definieren und standardisieren. Das betrifft Entwicklung, Test, Produktion und schließt auch Fragen des Betriebs mit ein. Die detaillierte Aufteilung der Prozesse ermöglicht es, kleine Veränderungen schnell umzusetzen und die Frequenz der Releases zu erhöhen.

Weitere wichtige Aspekte von DevOps sind Continuous Integration und Continuous Delivery. Continuous Integration beschäftigt sich mit dem automatisierten Build-Prozess sowie Unit- und Funktionstests, Continuous Delivery geht weiter bis hin zum automatisierten Rollout. Da die einzelnen Arbeitsschritte der Software in kleineren Einheiten abgebildet sind, lassen sich Funktionserweiterungen direkt automatisiert testen. Entwickler erhalten damit ein schnelles Feedback über mögliche Fehler. Sind die Tests erfolgreich, lässt sich das neue Software-Build kurzfristig auf dem Produktivsystem installieren.

Eine weitere wichtige Voraussetzung für den Erfolg von DevOps sind einheitliche Bewertungskriterien (Measurements) für die Prüfung der Applikation, um die Qualität der Software-Releases dauerhaft zu sichern. Dies erfolgt über Softwaretests, die auf einheitlichen, transparenten Metriken beruhen und die Basis für eine kontinuierliche Verbesserung schaffen.

Cloud-Infrastruktur unterstützt DevOps

Die DevOps-Teams können die Softwaretests und die Qualitätssicherung auch über Cloud-Plattformen beschleunigen. Entwickler können in der Cloud per Self Service binnen weniger Minuten virtuelle Maschinen (VMs) erzeugen, duplizieren und gemeinsam nutzen. Auf diese Weise lassen sich IT-Infrastrukturen aufbauen, welche die spätere Produktionsumgebung simulieren. Softwaretests werden dadurch noch aussagekräftiger. Wenn Unternehmen oder einzelne Personen bei Bedarf innerhalb von Minuten neue Systeme und IT-Architekturen einrichten können, reduziert sich die Zeit für den Aufbau einer Softwareumgebung erheblich.

Mehr zum Thema DevOps:

Mit DevOps hybride Cloud-Modelle ohne Private Cloud realisieren.

Von DevOps bis Software-defined: Sechs Trends für das Data Center im Jahr 2015.

Mit DevOps die Zusammenarbeit von Entwicklung und IT-Betrieb besser verzahnen.

Cloud-Plattformen vereinfachen mit verschiedenen Funktionen die Zusammenarbeit an Projekten. So lassen sich beispielsweise Entwickler schnell und einfach zu einem Projekt hinzufügen. Da jedes Team-Mitglied selbst auf alle notwendigen Ressourcen zugreifen und Dateien mit seinen Kollegen teilen kann, verfügt jeder über die gleiche Wissensbasis.

Bei der Nutzung von Rechen- und Speicherressourcen aus der Cloud ist es wichtig, Unternehmensrichtlinien und -verfahren beizubehalten. Integrierte Management-Funktionen sind dabei sehr hilfreich. Cloud-Lösungen bieten dazu neben der Steuerung der Funktion detaillierte Berichte über die Bereitstellung der Services, deren Überwachung (Monitoring), Fehlerbeseitigung, Betriebssystemwartung, Systemkonfiguration und Gesamtleistung.

Organisationen, die künftig die Bereitstellung innovativer Software beschleunigen wollen, sollten DevOps, agile Entwicklungsmethoden und eine Cloud-Plattform nutzen. Dann überwinden sie die traditionellen Barrieren zwischen Entwicklung und IT-Betrieb.

Über den Autor:
Jürgen Mauerer ist ein freier Journalist mit Redaktionsbüro in München.

Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+ und Facebook!

Artikel wurde zuletzt im Oktober 2015 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Software-Entwicklung

0 Kommentare

Älteste Beiträge 

Passwort vergessen?

Kein Problem! Tragen Sie Ihre E-Mail-Adresse unten ein. Wir werden Ihnen eine E-Mail mit Ihrem Passwort schicken.

Ihr Passwort wurde an die folgende E-Mail-Adresse gesendet::

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchDataCenter.de

Close