Die IT steckt im permanenten Umbruch

DevOps

von - 19.11.2018
DevOps
DevOps: Die Integration von Development und Operations steht im Fokus von DevOps.
(Quelle: Kalakruthi / shutterstock.com )
Die bisherigen Erläuterungen haben dargelegt, dass die Anwendungssysteme der Zukunft feiner aufgebrochen werden. Statt monolithischer Anwendungspakete werden feingranulare Services benötigt, die nach Bedarf leichter skaliert und auch in der Cloud deployt werden können, wie bei den Abschnitten zu Composable Infrastructure oder OpenStack dargestellt. Feingranulare Services lassen sich leichter an neue Anforderungen anpassen. Dies vereinfacht die Aktualisierung der Software und erhöht die Anzahl der zu verwaltenden Software-Module, was wiederum ein Mehr an Verwaltung nach sich zieht.
Wie immer man es betrachten mag – zukünftige Software-Systeme erhöhen die Taktrate der Releases erheblich. Wie schnell sich hier das Rad der Entwicklung dreht, zeigt ein kurzer Blick in die Geschichte der Software-Verteilung. Vor weniger als 20 Jahren lieferten die Unternehmen ihre Software überwiegend auf Datenträgern wie CD, DVD oder Diskette aus. Neue Releases gab es etwa im Jahrestakt oder noch seltener. Wenige Jahre später folgten periodische Updates über das Internet. Microsoft etwa begann damit, seine Systeme jeden ersten Dienstag im Monat (Microsoft Tuesday) zu patchen. Die Taktung war also auf einen Monat gesunken. Moderne Apps heute werden oft im Wochentakt erneuert. Der Code der serverseitigen Browser-Seiten kann sich laufend ändern.
Wenn aber neue Releases im Wochenzyklus erstellt werden müssen, so werden dafür agile Methoden benötigt. Während früher die Updates meist in festen Intervallen, den Wartungsfenstern, installiert wurden, ist das nun nicht mehr möglich. Infolgedessen muss das Update im laufenden Betrieb erfolgen. Das verlangt eine enge Abstimmung zwischen der Software-Entwicklung und dem IT-Betrieb.
Erreicht werden soll dies durch DevOps. Entwicklung (Development) und Betrieb (IT-Operations) sollen durch den Einsatz von DevOps schneller neue Releases bereitstellen können. Möglich machen sollen das agile Arbeitsmethoden. Eine häufig genutzte Methode für Entwickler ist Scrum.
Scrum basiert auf wenigen Grundannahmen. Darauf aufsetzend werden Aktivitäten, Artefakte und Rollen beschrieben, die den Kern des Systems ausmachen. Im Scrum-Framework werden die Grundregeln durch Maßgaben für die Umsetzung in konkreten Code beschrieben. Vereinfacht gesagt handelt es sich um eine methodengestützte Anleitung, um Anwendungen nach einem klar definierten Vorgehen zu erzeugen. Durch DevOps sollen diese Techniken in Zukunft für die IT-Operations zur Anwendung kommen. DevOps hilft beim Release-Management, dem Software-Configuration-Management und dem Environment-Management. Künftig soll damit die Übergabe einer Anwendung von der Entwicklung bis in die Produktion vereinfacht werden.
DevOps ist kein Werkzeug, kann aber natürlich durch Werkzeuge unterstützt sein. Die Methode basiert auf fünf Prinzipien: Culture, Automation, Lean, Measurement und Sharing. In Culture wird die Art der Zusammenarbeit bestimmt. Sie sollte auf Vertrauen und permanentem  Informationsaustausch zwischen Entwicklung und IT-Operations basieren. In Automation wird festgelegt, dass die Umsetzung durch Automatismen unterstützt sein muss. Diese Anforderung ist eigentlich selbstverständlich, denn die Dynamik moderner Anwendungen in der Cloud kann nicht durch manuelle Administration erfolgen. Dies wäre schlichtweg unmöglich. Automation im Sinne von DevOps schreibt diese daher zwingend vor. Es beginnt bei einfachen Routinearbeiten und endet bei der vollständigen Automatisierung ganzer Umgebungen.
Die Anforderung Lean legt fest, dass die gesamte Umsetzung möglichst einfach und überschaubar sein soll. Zur Sicherung der Qualität muss eine laufende Überwachung (Measurement) erfolgen. Dabei muss man sowohl die laufende Entwicklung wie die nachgeschalteten Prozesse im Auge behalten. Und schließlich müssen die Projektteams ihre Arbeit aufeinander abstimmen. Dazu muss das Wissen geteilt werden und beide Seiten müssen bereit sein, voneinander zu lernen. Die zwei Gruppen müssen ihre Arbeit teilen (Share).
Die letzten beiden Anforderungen sind kaum neu, sie galten schon in früheren Projekten. Allein die Umsetzung gestaltete sich oft problematisch. Entwicklungsteams, die sich wenig um den späteren Einsatz kümmern, oder eine IT-Administration, die bei Problemen im Einsatz den Schwarzen Peter immer der Entwicklung zuschiebt, brachten noch nie Erfolge hervor.

Fazit

Die Anforderungen an Entwicklung und Einsatz von Software ändern sich beständig. Nach wie vor ist eine hohe Dynamik feststellbar. Bei allen derzeit anstehenden Änderungen zeigen sich grundlegende Trends: Software-Systeme werden noch weiter modularisiert. Die Programme der Vergangenheit werden immer weiter aufgebrochen. Ferner müssen diese kleineren Module weitaus dynamischer sein als noch ihre Vorgänger. Für ein Mehr an Dynamik sorgen auch agile Entwicklungstechniken. Software wird on-the-fly erneuert und angepasst. Das Deployment erfolgt nach Bedarf entweder in einer virtuellen Umgebung oder in der Cloud.
Verwandte Themen