DevOps

TrimetisGFB_WEB

Was ist DevOps?

DevOps ist mehr als nur ein neuer Trend in der Softwareentwicklung. Es verbindet vielmehr die verschiedenen Technologien und Methoden, die sich in den letzten Jahren etabliert haben, und bringt deren Vorteile erst richtig zur Geltung. Nachdem man in agilen Vorgehensmodellen wie SCRUM die Entwickler und Tester in kleinen Teams zusammengebracht hat, könnte man es als logischen und notwendigen Schritt ansehen, dass nun auch die Zusammenarbeit mit dem IT-Betrieb forciert wird. 

Obwohl es im Begriff selbst nicht vorkommt, gehört neben Development und Operations natürlich auch die Qualitätssicherung zu DevOps. Nach Continuous Integration und Continuous Delivery ist es auch in der Qualitätssicherung logisch auf einen kontinuierlichen Prozess für den Softwaretest zu setzen – dem Continuous Testing.

Wir helfen Ihnen dabei, den Überblick zu behalten! 

DevOps_Diagramm
DevOps_Staffel

Warum DevOps?

Die Gründe für DevOps liegen auf der Hand: Höher, schneller, weiter. Software soll möglichst schnell auf den Markt gebracht werdendie Release-Zyklen müssen daher möglichst kurz sein, um schnell auf neue oder sich ändernde Anforderung des Marktes reagieren zu könnenEbenso besteht der Wunsch mit dem Markt zu wachsen oder auf stark schwankende Zugriffszahlen reagieren können.

Bei all dem soll und muss die Software-Qualität gesichert sein. Der hohe Automatisierungsgrad in DevOps fördert eine automatisierte Testdurchführung, er fordert sie aber auch. Zeit für eine langwierige Testvorbereitung, zeitaufwendige Erstellung von Testdaten oder auch manuelle Testdurchführung gibt es nicht. Viele aktuelle Technologien und Methoden können hierbei unterstützen und spielen in DevOps erst ihre volle Stärke aus.

Allerdings ist dafür ein Umdenken in den Teams und in der Führungsebene notwendig. In klassischen Entwicklungsprojekten arbeiten die Abteilungen fast schon gegeneinander: Was aus der Entwicklung kommt, wird von der Testabteilung erst mal auseinandergenommen und der IT-Betrieb möchte am liebsten gar nichts Neues auf seine Umgebungen installieren. Diese Übergabe-Mentalität sorgt dafür, dass zwar jeder seinen Teil zum Produkt beiträgt, doch sobald es an die nächste Abteilung übergeben wird, endet auch die Verantwortung. Hier setzt DevOps an und bringt die Abteilungen zusammen, sodass sich alle gemeinsam verantwortlich für das Produkt fühlen. 

Gemeinsam anstatt gegeneinander

Eine wesentliche und wahrscheinlich häufig unterschätzte Stärke von DevOps ist das Gemeinschaftsgefühl. Man arbeitet gemeinsam an dem Ziel, gute Software zu liefern. Und das abteilungsübergreifend mit Entwicklung, Qualitätssicherung und IT-Betrieb. Bei DevSecOps kommt außerdem die IT-Security hinzuMit bereichsübergreifende Metriken und KPIs können die Teams den Status und die Qualität der Software verfolgen. Wer in solch einer DevOps Umgebung ein entsprechendes Dashboard in der Kaffeeküche gesehen hat, kennt den Effekt: Stehen die Ampeln nicht auf grün, fällt die Kaffeepause bedeutend kürzer aus. Alle im Projekt eint die Motivation, alles zu geben, damit das Produkt schnell wieder im grünen Bereich ist.

Viele Technologien wie Kubernetes, Container und Microservices unterstützen diese neue Art der Zusammenarbeit: So können Bestandteile des Softwareproduktes mit Microservices in logische und leichter zu verarbeitende Aufgabenbereiche geteilt werden, Arbeiten fürs Deployment bereits vom Entwickler durch Verwendung von Container vorgenommen und anschließend durch Orchestrierung mit Kubernetes beliebig skaliert werden. Zusammengefügt in einer CI/CD-Pipeline können alle beteiligten Komponenten inklusive der Softwaretests vollständig automatisiert werden. All diese Technologien fügen sich in DevOps zu einem idealen Gesamtbild zusammen. 

DevOps_Puzzle
© mannschaft PNG, Entworfen von Ferdichack aus Pngtree.com