Überlegungen zu deiner DevOps-Toolkette

Welche DevOps-Toolkette ist für dich die richtige: eine universelle oder eine anpassbare?

Porträt von Robert Krohn
Robert Krohn

Head of Engineering, DevOps

Redaktioneller Beitrag: Chandler Harris

Eine DevOps-Toolkette ist eine Sammlung von Tools, oft von verschiedenen Anbietern, die als integrierte Einheit arbeiten, um Software und Systeme zu entwerfen, zu erstellen, zu testen, zu verwalten, zu messen und zu betreiben. Sie ermöglicht Entwicklungs- und Operations-Teams die Zusammenarbeit über den gesamten Produktlebenszyklus hinweg und befasst sich mit wichtigen DevOps-Grundlagen wie Continuous Integration, Continuous Delivery, Automatisierung und Zusammenarbeit.

Von agilen Methoden zu DevOps


Als agile Prinzipien weithin übernommen wurden, revolutionierten sie die Art und Weise, wie wir Produkte entwickeln. Wir stiegen auf kleine, funktionsübergreifende Teams und ein- bis zweiwöchige Sprints um, die produktionsreife Artefakte hervorbrachten. Wir hatten enge Feedbackzyklen und kontinuierliche Verbesserungen. Wir stellten Produkte schneller und ohne große Probleme bereit.

Es ist erstaunlich, wie schnell sich die Dinge ändern. Mit der Cloud, SaaS und stets verfügbaren Services ist der Entwicklungslebenszyklus jetzt viel schneller. Es ist üblich, dass mehrere Entwicklungs- und Testphasen gleichzeitig stattfinden. Während bei agilen Methoden normalerweise ein- bis zweiwöchige Sprints vorkamen, iterieren und implementieren Teams in den heutigen nativen Cloud-Umgebungen mehrmals am Tag. Workflows und Codebasen entwickeln sich ständig weiter. Teams verwenden Feature-Flags, progressive Rollouts und A/B-Tests, um sicherzustellen, dass sauberer, qualitativ hochwertiger Code kontinuierlich bereitgestellt wird.

Dies hat zu einer Weiterentwicklung von agilen Methoden zu DevOps geführt. Letzteres bezeichnet eine Reihe von Praktiken, die zur Automatisierung und Integration der Prozesse zwischen Softwareentwicklungs- und IT-Teams beitragen. Ziel sind schnellere und zuverlässigere Erstellungs-, Test- und Release-Verfahren. DevOps-Teams werden daran gemessen, wie schnell sie Code in die Produktion bringen. Ausschlaggebend dafür ist die Anzahl der täglich gelieferten Iterationen und die Zeitdauer, bis eine Codeänderung vom Testen über das Deployment in die Produktion gelangt. In typischen Projekten meines Teams gibt es bis zu 20 Änderungen pro Tag. Bei einigen größeren Projekten sogar bis zu 100.

Dieser beschleunigte Workflow wird durch neue Tools ermöglicht und ist auf diese angewiesen, damit Teams in den Entwicklungs-, Test- und Deployment-Phasen zusammenarbeiten können. Eine DevOps-Toolkette hilft Teams vor allem dabei, jede Phase des Entwicklungslebenszyklus besonders schnell abzuschließen.

Was ist eine DevOps-Toolkette?


Eine DevOps-Toolkette umfasst die Tools und Technologien, die es Entwicklungs- und Operations-Teams ermöglichen, über den gesamten Softwarelebenszyklus hinweg zusammenzuarbeiten. Sie befasst sich mit wichtigen DevOps-Grundlagen wie Continuous Integration, Continuous Delivery, Automatisierung und Zusammenarbeit.

Da DevOps einen kulturellen Wandel bezeichnet, bei dem Entwicklungs- und Operations-Teams als integrierte Einheit funktionieren, gibt es kein einzelnes Tool, das DevOps-Prinzipien und -Praktiken ermöglicht. Eine DevOps-Toolkette ist vielmehr eine Sammlung von Tools, oft von verschiedenen Anbietern, die als integrierte Einheit arbeiten, um Software und Systeme zu entwerfen, zu erstellen, zu testen, zu verwalten, zu messen und zu betreiben. Oft müssen Unternehmen und Teams mit verschiedenen Toolkombinationen experimentieren, um die richtige Toolkette zu finden.

Wenn du dir ein ausgeklügeltes DevOps-Produkt ansiehst, sollte die DevOps-Toolkette verschiedene Teile des Entwicklungslebenszyklus sehr schnell angehen und verschiedenen Benutzern mehrere Perspektiven bieten können. Sie sollte Entwicklungstools beinhalten, die jede Phase des Entwicklungslebenszyklus abdecken, einschließlich Continuous Integration und Delivery, Testautomatisierung und extrem schnelles Deployment. Was den Operations-Aspekt von DevOps angeht, sollten Tools Funktionen zur Unterstützung der Überwachung und des Vorfallmanagements enthalten und durch kontinuierliches Feedback und Protokollierung eine Brücke zwischen Entwicklung und Operations schlagen.

Symbol: miteinander verbundene Ringe
Zugehöriges Material

Kostenlos loslegen

Symbol: Knotenstruktur
Zugehöriges Material

Integrationen entdecken

Abbildung des DevOps-Zyklus

Betrachte die linke Seite der Endlosschleife als Produktseite und die rechte Seite als Operations-Seite. Dann möchte der Produktmanager, der ein neues Feature in die Produktion einbringt, sehen, wie sich das Projekt in Aufgaben und User Storys aufteilen lässt. Der Entwickler auf der linken Seite des Projekts muss sehen, wie das Feature in die Produktion verschoben werden kann, einschließlich Projekttickets, User Storys und Abhängigkeiten. Wenn Entwickler sich an das DevOps-Prinzip "you build it, you run it" halten, sind sie auch an der Behebung von Vorfällen interessiert.

Was den Operations-Aspekt des Lebenszyklus angeht, muss sich der Site Reliability Engineer mit den Services auskennen, die gemessen und überwacht werden können. Sollte bei diesen ein Problem bestehen, kann dieses behoben werden. Ohne eine Toolkette, die all diese Prozesse miteinander verbindet, entsteht eine unordentliche, unkorrelierte und chaotische Umgebung. Wenn deine Toolkette gut integriert ist, erhältst du einen besseren Kontext zu den ablaufenden Prozessen.

Möglichkeiten zur Erstellung deiner DevOps-Toolkette


Für die Auswahl der richtigen DevOps-Toolkette solltest du zunächst die grundlegenden Best Practices von DevOps verstehen und erkennen können, wie Tools diese Praktiken unterstützen. Lege dann eine gemeinsame Toolstrategie fest, mit der Teams über die Entwicklungs-, Test- und Deployment-Phase hinweg zusammenarbeiten können.

Wenn Unternehmen DevOps einsetzen, stehen ihnen normalerweise zwei Optionen zur Verfügung: eine universelle oder eine angepasste DevOps-Toolkette. Die Wahl der richtigen Konfiguration ist wichtig, da sie die DevOps-Prozesse eines Team bestimmt.

Universelle DevOps-Toolkette

Eine universelle DevOps-Toolkette bietet eine Komplettlösung, die möglicherweise nicht in andere Tools von Drittanbietern integriert werden kann. Sie kann für Unternehmen oder Gruppen nützlich sein, die gerade mit der Umstellung auf DevOps beginnen, oder wenn ein Team schnell ein Projekt starten möchte. Der Nachteil dieser Art von Toolkette ist, dass die meisten etablierten Teams bereits über eine Reihe von Tools verfügen, die sie verwenden und bevorzugen, die aber möglicherweise nicht in eine Komplettlösung integriert werden können. Außerdem kann eine derart umfassende Toolkette daran kranken, dass sie vieles, aber nichts richtig kann. Ein Tool allein kann einfach nicht so schnell auf dynamische Marktanforderungen angepasst werden. Schließlich müssen Unternehmen in den meisten Fällen ältere Tools in eine DevOps-Toolkette integrieren, und eine universelle Toolkette kann diese Möglichkeit einschränken.

Anpassbare DevOps-Toolkette

Der andere Ansatz besteht darin, eine DevOps-Toolkette zu verwenden, die mit verschiedenen Tools an die Bedürfnisse eines Teams angepasst werden kann. Damit können Teams die vorhandenen Tools, die sie bereits kennen und schätzen, in die breitere DevOps-Toolkette integrieren. Beispielsweise kann ein Team Jira für die Planung und die Nachverfolgung von Workflows verwenden, Kubernetes zur Bereitstellung individueller Entwicklungsumgebungen, GitHub für kollaboratives Codieren, Jenkins für die Continuous Integration und vieles mehr. Unternehmen können ihre Workflows auf Teams und/oder auf ein Projekt abstimmen.

Integration ist für diese Arten von Toolketten unerlässlich. Wenn die verschiedenen Tools nicht integriert sind, verbringen Teammitglieder unnötig viel Zeit damit, zwischen den Bildschirmen zu wechseln und sich an mehreren Stellen anzumelden. Da kann es schwierig werden, Informationen zwischen Tools auszutauschen. Das ist eine unschöne Erfahrung für Entwickler oder alle, die nachvollziehen möchten, was vor sich geht. Wenn du auf einen Vorfall reagierst, hast du keine Zeit, dir ein Handbuch durchzulesen, um wichtige Informationen zu einem neuen Tool zu finden.

Fazit


Bei DevOps geht es darum, Silos aufzubrechen und den Entwicklungslebenszyklus schneller, hochgradig automatisiert und nahtlos kollaborativ zu gestalten – sei es funktionsübergreifend oder innerhalb eines Teams. Bei der Auswahl der richtigen DevOps-Tools, die zusammenarbeiten, geht es in erster Linie darum, deinen aktuellen Softwareentwicklungs- und IT-Operations-Prozess genau unter die Lupe zu nehmen und zu entscheiden, wo du nachbessern musst.

Erfahre mehr über Tools für jede Phase des DevOps-Lebenszyklus.

Robert Krohn
Robert Krohn

Robert Krohn ist Head of Engineering, DevOps bei Atlassian. Er verfügt über mehr als 20 Jahre Erfahrung in der Softwareentwicklung, im Management und im Führungswesen in den Bereichen Software, Hardware und Operations in verschiedenen Produktsegmenten. Er arbeitet leidenschaftlich am Aufbau von herausragenden Entwicklerteams und marktführenden Produkten. Zu seinen Hobbys zählen Radfahren, Segeln und Skifahren. Mit seiner Frau Nicole, seinen Kindern, seinen Hunden und seiner Katze lebt er in Belvedere, Kalifornien.


Diesen Artikel teilen
Nächstes Thema

Lesenswert

Füge diese Ressourcen deinen Lesezeichen hinzu, um mehr über DevOps-Teams und fortlaufende Updates zu DevOps bei Atlassian zu erfahren.

Abbildung: DevOps

DevOps-Community

Abbildung: DevOps

DevOps-Lernpfad

Abbildung: Karte

Kostenlos loslegen

Melde dich für unseren DevOps-Newsletter an

Thank you for signing up