DevOps

Was ist DevOps?

Zunächst einmal ist DevOps eine Kombination aus zwei Begriffen: Development und Operations und wird für eine Grundhaltung im Bereich der Softwareentwicklung verwendet. Das Grundprinzip bei DevOps ist, eine bessere Zusammenarbeit zwischen Softwareentwicklern und operationalen IT-Teams zu erreichen. Kooperation soll verbessert werden, das Denken in Silos verringert. Dadurch soll die Entwicklung insgesamt beschleunigt und das Ergebnis optimiert werden. 

DevOps ist somit eine Methode zur Optimierung der Arbeit während des gesamten Lebenszyklus der Softwareentwicklung. Der DevOps-Prozess gleicht einer endlosen Schleife: diese reicht von der Planung der Software über Code-, Build-, Test- und Release-Phasen über die Bereitstellung der Software, deren Betrieb und Überwachung. Am Ende der Schleife führt das Feedback wieder zur Planung zurück. Diese Praxis des sogenannten Continuus Delivery ist Kernstück der DevOps Arbeitsweise. Diese Methode ermöglicht es, dass Änderungen schnell und sicher zum Anwender gelangen. 

Die DevOps Praxis ist mittlerweile weit verbreitet und zum Standard geworden. So entlastet die erfolgreiche Einführung sowohl Techniker und Entwickler als auch das Management. 

DevOps und agile Arbeitsweise

DevOps und eine agile Softwareentwicklung gehen zumeist Hand in Hand. 

In der Vergangenheit wurde Software häufig nach dem Wasserfallprinzip entwickelt, also chronologisch. Nach der Planungsphase folgte die Umsetzungsphase. Da bei der Umsetzung aber häufig Stolpersteine auftraten, die vorher nicht bedacht wurden, kam es meist dazu, dass die Umsetzungsphase länger als ursprünglich kalkuliert dauerte. Die Entwickler gerieten unter Zeitdruck und oftmals zeigte sich erst am Ende des Projekts, ob die Software wie gewünscht funktioniert.  

Im Gegensatz zu der eher starren Wasserfallmethode ist die agile Arbeitsweise in Entwicklungsphasen unterteilt und ermöglicht es somit, flexibel auf unvorhergesehene Schwierigkeiten zu reagieren. Ein wichtiges Prinzip ist zudem die enge Interaktion und Kommunikation zwischen Kunde und IT-Dienstleister. 

DevOps geht noch einen Schritt weiter als agiles Arbeiten: Agilität setzt einen Sinneswandel im jeweiligen Team voraus, wohingegen DevOps einen Wandel der gesamten Unternehmenskultur benötigt, um erfolgreich zu sein. Durch DevOps und Agilität wird gewährleistet, dass autonome Teams bei gemeinsamen Zielen unabhängig voneinander arbeiten können. 

Qualitätssicherung und Testing

Noch nie war sorgfältiges Testing von Software so wichtig. Bei der agilen DevOps Arbeitsweise wird auch die Qualitätssicherung optimiert. Während es früher üblich war, das fertige Produkt an die Tester zu geben, wird das Testing nun zu einem fortlaufenden Prozess. Es gibt also keine dedizierte Testphase am Ende der Entwicklung mehr, sondern es wird kontinuierlich getestet. Insgesamt wird der gesamte Prozess von Design über Entwicklung und Testing bis zum Betrieb beschleunigt, ohne dass die Qualität darunter leiden muss. 

Eine Befragung ergab zudem, dass Tester in Unternehmen, die agil arbeiten, viermal zufriedener sind als in Unternehmen, die nach der Wasserfallmethode arbeiten.

Durch die DevOps Methode kann trotz kürzerer Release-Zyklen trotzdem eine hohe Qualität der Software gewährleistet werden.