DevOps und die Cloud – So gelingt die Traumhochzeit ohne Kulturschock

Sascha Scholing

(c)  Shutterstock / nattanan726

DevOps und die Cloud sind füreinander gemacht. Beide erlauben es Unternehmen, die Time-to-market ihrer Produkte dynamisch zu beschleunigen, beide sprengen die Grenzen traditioneller Prozesse mit schlanken, neuen Ansätzen – und beide erfordern grundlegende Veränderungen in der Unternehmens- und IT-Kultur, um ihr volles Erfolgspotential entfalten zu können. Und wenn sie zusammen verwendet werden, ist das Ergebnis weitaus mehr als die Summe der Teile.

Game-Changer in der Softwareentwicklung

DevOps ist eine Softwareentwicklungstechnik, die die bisher eher voneinander getrennten Disziplinen Betrieb, Qualitätssicherung (quality assurance, QA) und Entwicklung in sich vereint. Als Beispiele wären hier die Amazons, Facebooks oder Googles dieser Welt zu nennen – hier gibt es keine großen Software Releases, bei denen große Teile von Produkten, Services und Websites mit einem Mal geändert werden. Stattdessen werden ständig im laufenden Betrieb kleine Features geändert oder hinzugefügt und Kunden-Wünsche binnen Stunden umgesetzt. Das bedeutet – ob On-Premise oder in der Cloud – eine Abkehr von traditionellen langen Entwicklungszyklen und Versions-Updates. Solche Updates können weitreichende Folgen für den Kunden haben – man denke hier an Personalschulungen für die neue Version, Kompatibilitätsprobleme mit anderen Lösungen und dergleichen. Die neue Methode nutzt ineinandergreifende, kurze Zyklen, die nach und nach kleine, neue Features einbauen und so große, disruptive Veränderungen vermeidet. Außerdem kann mit der DevOps-Methode unmittelbar und schnell auf Fehler reagiert werden, sodass für die Kunden keine langen Ausfallzeiten entstehen.

In seiner vollkommensten Form optimiert DevOps die Zusammenarbeit zwischen Entwicklern, QA und Betrieb, konzentriert die Kommunikation auf ihre miteinander verbundenen Aufgaben, erhöht die Nutzung von Automatisierung und führt schließlich zu einem nahtlosen Entwicklungsverfahren kontinuierlicher Produktintegration und Auslieferung. Kurz gesagt, DevOps setzt auf agile Praktiken, die um einiges schneller sind, da die Barrieren zwischen den verschiedenen Teams verringert werden. Im Idealfall wird ein Produkt aktualisiert und dabei seine Kontinuität und Effektivität beibehalten, sodass die neuen Features sich nahtlos einfügen und die Anwender intuitiv verstehen, wie sie funktionieren.

Das Ganze läuft in den meisten Fällen wie folgt: Nachdem die zu implementierenden Features identifiziert und priorisiert einzelnen engen Entwicklungszyklen zugeteilt wurden, folgt eine Planungsphase, wie diese Features innerhalb des Zyklus implementiert werden. Eine der wahren Stärken von DevOps zeigt sich dann in der tatsächlichen Entwicklungsphase, denn innerhalb der kurzen Zyklen werden die wenigen Features sehr schnell entwickelt, getestet, erweitert oder verringert, optimiert, erneut getestet usw. bis alle Features im Release optimal sind und sie schließlich beim Kunden eingesetzt werden. So kann bei sehr erfahrenen DevOps-Nutzern im Gegensatz zum traditionellen Release-Modell Code bis zu 30-mal schneller geliefert werden – und das bedeutet bis zu 8.000-mal schnellere Bereitstellung, 50 Prozent weniger fehlerhafte Deployments und 12-mal schnellere Wiederherstellung.

Das DevOps-Schlaraffenland Cloud

Die Cloud ist die optimale IT-Umgebung, um DevOps mit all seinem Potential möglich zu machen. Die Leichtigkeit, mit der IT-Ressourcen bereitgestellt werden können, ist unübertroffen. Müssen in reinen On-Premise-Umgebungen die Voraussetzungen für neue Applikationen erst langwierig von der IT geprüft und die nötige Hardware im Rechenzentrum eingerichtet werden, können in der Cloud in wenigen Handgriffen und damit wesentlich schneller virtuelle Maschinen aufgesetzt werden, die einer vorhandenen physischen Maschine entsprechen und mit der nötigen Software versehen werden. Dort kann dann die Applikation entwickelt und getestet werden.

Die Flexibilität der Cloud ermöglicht das Testen und Einsetzen von Anwendungen jeder Art und Größe. Zudem können die meisten – und über kurz oder lang alle – Cloud-Prozesse automatisiert werden, was den Entwicklungsprozess noch effizienter und schneller macht. Und schließlich macht die Cloud es möglich, dass Entwickler und Kunden erreicht werden können, egal wo sie auch sein mögen. Dieser letzte Punkt mag offensichtlich sein, aber er ist essenziell für die Flexibilität und Geschwindigkeit, die DevOps so besonders macht.

Erst umdenken, dann umstrukturieren

Die Idee von DevOps und die Möglichkeiten der Cloud passen also eigentlich perfekt zueinander. Aber wie können Unternehmen diese Vorteile in der Praxis für sich nutzbar machen? Dazu müssen drei Faktoren beachtet werden: Der Wandel in der Entwickler-Kultur, die Implementierung der passenden Prozesse und schließlich die Nutzung der richtigen Werkzeuge.

  1. Das Neue wollen

Wie bei allen Veränderungen mit weit reichenden Auswirkungen auf das Geschäft ist der erste und wichtigste Schritt, dass die Geschäftsleitung voll und ganz hinter den neuen Praktiken steht. Ihr Engagement muss im Unternehmen weithin sichtbar sein, um die Transformation der herrschenden Entwickler-Kultur voranzutreiben und zu unterstützen. Pragmatisch gesehen werden die kulturellen Veränderungen von der Schaffung neuer Rollen, der Entwicklung neuer Fähigkeiten sowie der Definition und Verfeinerung neuer Prozesse begleitet.

  1. Das Neue machen

Ist der Rahmen für den Wechsel abgesteckt, müssen neue DevOps-kompatible Prozesse identifiziert und an das Unternehmen angepasst werden. Da diese Praktiken sich noch stetig weiter entwickeln und es um einen weitreichenden Kulturwandel im Unternehmen geht, sollten Ansätze gesucht und gefunden werden, die auf das jeweilige Personal und die zu erreichenden Ziele individuell zugeschnitten sind. Dabei sind unternehmensspezifische Fragen in der Art von „Wie oft muss etwas für den Kunden bereitgestellt werden?“ oder „Wie komplex sind die Anwendungen?“ zu beantworten, da sie aufzeigen, welche Teile des DevOps-Prozesses optimiert werden müssen. Was allen diesen Ansätzen jedoch gemein ist, sind agile Entwicklungsmethoden, ein gewisses Maß an Continuous Delivery an die QA und den Betrieb, und Live-Bereitstellungstechniken.

Um die neuen DevOps-Prozesse mit Hilfe der Cloud zu implementieren, sollten auch neue Rollen verteilt bzw. geschaffen werden:

Auf der Engineering-Seite braucht man einen „Cloud-Architekten“, der genau die individuellen Möglichkeiten und Funktionen der Cloud identifiziert, die für das DevOps-Team und den Betrieb ein Plus an Geschwindigkeit und Effizienz bringen. Als nächstes sollte ein „DevOps Automation Engineer“ eingesetzt werden, um geeignete langwierige Prozesse bei der Entwicklung so zu automatisieren, dass sie der agilen Natur der neuen Methodik entsprechen und zu ihr beitragen. Schließlich braucht es einen „DevOps Engineer“, der den DevOps-Prozess umfassend versteht und geeignete, vormals dem Betrieb zugeschriebene Prozesse in die Entwicklung überführt, um Vorgänge wesentlich zu beschleunigen.

Auf Seiten des Betriebs sollte es zwei neue Rollen geben, die den Übergang des Releases von der Entwicklung zum Kunden steuern. Ein Integrationsspezialist sollte dafür Sorge tragen, dass der Code richtig in den Kontext des Deployments und die bestehende Infrastruktur eingefügt wird, sodass alles nach Einbau der Features fehlerlos läuft. Zu guter Letzt gibt es auch immer noch den „Release Manager“, nur dass er nun nicht mehr für einen Release-Zyklus von Wochen oder Monaten verantwortlich ist, sondern von Tagen.

  1. Das richtige Werkzeug

Drittens braucht man die Software-Werkzeuge, die am besten zum DevOps-Modell passen. Hier kommt die Cloud ins Spiel, denn ihre Funktionalitäten passen hervorragend zur DevOps-Methodik.

Das hervorstechendste Merkmal der Cloud ist ihre Skalierbarkeit. Es können Entwicklungsumgebungen für Applikationen jeder Größe sehr schnell und unkompliziert eingerichtet werden, ohne potentiell disruptive Veränderungen am physischen Rechenzentrum vornehmen oder gar teure Hardware nachkaufen zu müssen.

Zudem bietet sie die Möglichkeit für Self-Service-Betrieb, der es Entwicklern ermöglicht, über ein Dashboard ihre eigenen Datenbanken schnell in der Cloud einzurichten und bereitzustellen und somit Aufgaben zu erledigen, die zuvor vom Betrieb und/oder von der IT abgewickelt wurden. Damit fallen die Wartzeiten auf die Einrichtung der Entwicklungsumgebung weg, was die tatsächliche Entwicklungszeit drastisch verkürzt. Währenddessen behalten aber Betrieb bzw. IT immer noch die Kontrolle darüber, welche zugelassenen Datenbanken von Entwicklern genutzt werden können, da viele Cloud-Datenbanken so konfiguriert werden können, dass nur die Datenbankversionen zur Verfügung stehen, die für die Verwendung freigegeben sind. Sind die neuen Features in der Cloud fertig entwickelt und getestet, kümmern sich IT und Betrieb um die Einrichtung On-Premise.

Durch die Verwendung von sogenannten „Golden Images“ – vorkonfigurierter Software-Sets auf einer virtuellen Maschine – wird der DevOps-Prozess weiter vereinfacht und beschleunigt. Das DevOps-Team benutzt einfach diese Images und richtet sie mit wenigen Klicks im Self-Service ein, wie sie benötigt werden. Auch für die Testzyklen bieten sich die Golden Images an, denn idealerweise braucht man für jeden eine „saubere“ Umgebung – also eine neue VM, auf der noch kein Test durchgeführt wurde – da sonst die Testergebnisse verfälscht werden könnten.

Aufmacherbild: containers with sky and clouds von Shutterstock / Urheberrecht: nattanan726

DevOpsCon Istio Cheat Sheet

Free: BRAND NEW DevOps Istio Cheat Sheet

Ever felt like service mesh chaos is taking over? Then our brand new Istio cheat sheet is the right one for you! DevOpsCon speaker Michael Hofmann has summarized Istio’s most important commands and functions. Download FOR FREE now & sort out your microservices architecture!

Verwandte Themen:

Geschrieben von
Sascha Scholing
Sascha Scholing
Sascha Scholing ist Sales Director für die Regionen Zentral-, Osteuropa und die Türkei bei EnterpriseDB (EDB).
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: