Wie die Zusammenarbeit von Entwicklung und Betrieb den Geschäftserfolg von Unternehmen beflügeln kann

Markteinführung mit DevOps schneller und besser

Justin Vaughan-Brown

© iStockphoto.com/Adelevin

Der Begriff DevOps ist momentan in aller Munde und erscheint als Zauberformel, um die Verfügbarkeit neuer Applikationen anzutreiben. Eine kurze Time to Market, gepaart mit erstklassiger Qualität sind in der Always-on-Ära Schlüsselfaktoren für den Erfolg von Unternehmen, ganz gleich, ob sie im B2C- oder im B2B-Umfeld agieren. IT-Abteilungen in Unternehmen stehen deshalb vor der Herausforderung, fehlerfrei laufende und kostengünstige Anwendungen möglichst schnell auf den Markt zu bringen.

Der DevOps-Ansatz soll einen Ausweg aus dem oben beschriebenen Dilemma bieten. Was verbirgt sich genau hinter dem Begriff, und wie können Unternehmen von dem Ansatz tatsächlich profitieren? Vier Grundprinzipien helfen bei einer erfolgreichen Implementierung von DevOps im Unternehmen.

Bereits im März 2011 prognostizierte Gartner, dass sich DevOps bis zur Mitte des Jahrzehnts zur Mainstream-Managementtechnik entwickeln werde. Dabei wird DevOps zunehmend als eine Schlüsselkomponente für die schnelle und effiziente Entwicklung von Software gesehen. Inzwischen scheint die DevOps-Idee in den Unternehmen angekommen zu sein: So stieg der Einsatz der Methode nach einer Umfrage von Puppet Labs („2013 State of DevOps Report“) von 25 Prozent im Jahr 2011 auf 63 Prozent im Jahr 2012.

Dennoch herrscht immer noch viel Unklarheit über die genaue Bedeutung von DevOps und darüber, wie Unternehmen tatsächlich von dem eher strategischen Ansatz profitieren können. Denn für die Umsetzung von DevOps reicht es keinesfalls aus, dass die IT-Abteilung bestimmte Technologien für die Softwareentwicklung implementiert. Zusätzlich müssen Strukturen innerhalb des IT-Betriebs angepasst werden – und hierbei geht es gerade in Deutschland eher konservativ zu.

Was steckt hinter dem Begriff DevOps?

Der Begriff setzt sich aus den Abkürzungen „Dev“ (für Development bzw. Softwareentwicklung) und „Ops“ (für Operations bzw. IT-Betrieb) zusammen. Die Kombination zum gemeinsamen „DevOps“ symbolisiert quasi einen Brückenschlag zwischen Softwareentwicklern und IT-Betrieb – so die Grundidee von DevOps, die die dazugehörige IT-Bewegung inspiriert hat: ein Zusammenrücken der beiden Bereiche Softwareentwicklung und IT-Betrieb.

Die Ursprünge der DevOps-Idee finden sich bereits in den Neunzigerjahren und sind im Zuge agiler Softwareentwicklung wieder verstärkt ins Gespräch gekommen. Damals setzten besonders Start-ups auf DevOps, weil sie über weniger Ressourcen in ihren IT-Abteilungen verfügten. In der heutigen Zeit müssen auch große Unternehmen auf die neuen Anforderungen des Markts reagieren, agiler werden und eine höhere Releasefrequenz erreichen.

Der Durchbruch für die Strategie kam schließlich im letzten Jahrzehnt, im Zuge der Finanzkrise – einer Notsituation, die zu neuen Denkansätzen zwang. Prägender Kopf des Begriffs war Patrick Debois. Der IT-Consultant erkannte die Konflikte zwischen Anwendungsentwicklung und IT-Betrieb und organisierte 2009, angeregt von John Allspaw und Paul Hammond und ihrer bekannten Velocity-Präsentation „10 + Deploys Per Day: Dev & Ops Cooperation at Flickr“, die ersten „DevOps Days“ in Belgien. Im Anschluss an die Veranstaltung twitterte er unter dem Hashtag #devops – und hatte, noch ohne es zu ahnen, einem neuen und wichtigen IT-Trend einen griffigen Namen verpasst.

Aus heutiger Sicht ist DevOps ein integrierter Ansatz zur Bereitstellung von Software, der Kultur, Prozesse und Tools eines Unternehmens integriert. DevOps deckt den gesamten Lebenszyklus von der Planung und Erstellung bis zur Bereitstellung und Rückmeldungen ab.
DevOps als Mittel gegen ein traditionelles Problem: Die Lücke zwischen Softwareentwicklung und IT-Betrieb

Die Entwicklung von Unternehmensanwendungen erstreckte sich in früheren Jahren über mehrere Phasen und verlief eher langsam. Nach mehreren Versuchen in Testumgebungen wurde die neue Version auf einer Produktionsplattform bereitgestellt. Dabei verfolgten Entwicklungsabteilung und IT-Betrieb naturgemäß unterschiedliche Ziele. Die Aufgabe der Entwicklung besteht darin, dem Fachbereich möglichst schnell die geforderten neuen Funktionen zur Verfügung zu stellen, bei einem agilen Vorgehen soll dies sogar in einer hohen Frequenz geschehen („Release often!“). Für den IT-Betrieb jedoch stehen Verfügbarkeit und Stabilität an oberster Stelle, frei nach dem Motto: „Never change a running system“. Mit dem Aufkommen der Cloud und verschwimmenden Grenzen zwischen Softwaretestumgebungen und Anwendungsplattformen wird der Druck auf traditionelle Entwicklungsumgebungen größer. Im Unternehmen entsteht deshalb oft ein harter Wettbewerbskampf zwischen Softwareentwicklung und IT-Betrieb, bei dem derjenige gewinnt, der im Unternehmen die besseren Karten hat. Im Ergebnis bedeutet das entweder unstabile und pflegeintensive Anwendungen in der Produktion oder Inflexibilität, Trägheit und lange Reaktionszeiten bei der Erfüllung geschäftlicher Anforderungen.

Was können Unternehmen mit DevOps erreichen?

Mobile, Cloud, Social und Analytics verändern die Geschäftsmodelle von Unternehmen aller Branchen radikal. Kunden und Märkte haben neue Anforderungen und wechseln einfach den Anbieter, wenn sie nicht zufrieden sind. Dabei können sich Fehler langfristig negativ auf das Unternehmensimage auswirken. Eine effektive Softwareentwicklung wird vor diesem Hintergrund zum wesentlichen Erfolgsfaktor, mit dem Unternehmen wettbewerbsfähig bleiben und bessere Ergebnisse erzielen können. Um dies zu bewerkstelligen, müssen Entwicklung und IT-Betrieb direkter miteinander kommunizieren und enger zusammenarbeiten. Und genau hier kommt die DevOps-Idee ins Spiel, denn oberstes Ziel von DevOps ist es, die Lücke zwischen Anwendungsentwicklung und IT-Betrieb im Unternehmen dauerhaft zu schließen. Auf diese Weise können Unternehmen eine kontinuierliche Softwarebereitstellung sicherstellen, Marktchancen schneller wahrnehmen und Kundenanforderungen besser gerecht werden. Um DevOps im Unternehmen zu realisieren, müssen aber alle IT-Verantwortlichen an einem Strang ziehen, die Strukturen und Verantwortungen entsprechend anpassen und die technischen Voraussetzungen schaffen. Es geht dabei um eine moderne ganzheitliche Arbeitskultur, in der die Trennlinie zweier ehemals strikt getrennter Disziplinen überwunden wird.

Vier Grundprinzipien helfen bei der Umsetzung

Um DevOps tatsächlich umzusetzen und wirkliche Vorteile aus der Idee zu ziehen, müssen Unternehmen grundlegend umdenken. Damit der Veränderungsprozess gelingt, werden von Patrick Debois und anderen DevOps-Experten immer wieder bestimmte Vorgehensweisen empfohlen. IT-Management-Veteran und Pionier der DevOps-Bewegung John Willis hat sie einmal sehr kompakt  in vier Grundprinzipien zusammengefasst: Culture, Automation, Measurement, Sharing. Aus ihnen lassen sich konkrete Maßnahmen für den gemeinschaftlichen Betrieb ableiten. Zusätzliche technische Tools spezialisierter Anwender helfen schließlich bei der praktischen Umsetzung dieser Grundprinzipien.

1. Bessere Zusammenarbeit für kontinuierliche Verfügbarkeit

Erste Voraussetzung für die Implementierung der zukunftsweisenden Managementtechnik DevOps betrifft die Unternehmenskultur und beinhaltet eine verbesserte Kooperation von Entwicklungsabteilung und IT-Betrieb. Hierbei reicht es bei Weitem nicht aus, strukturierte Übergabeverfahren zu haben. Kulturelle Bausteine einer besseren Zusammenarbeit sind zum Beispiel Selbstverpflichtung der Beteiligten auf Ziele, aufmerksames Zuhören, gegenseitige Weiterbildung und die Etablierung gemeinsamer Werte. Mit einer respektvollen und vertrauensvollen Zusammenarbeit, lassen sich alte Feindschaften begraben und Schuldzuweisungen vermeiden. Konkret sollten Entwickler in ständiger Absprache mit Systemadministratoren arbeiten, in den Releaseprozess verantwortlich einbezogen werden und auch an Bereitschaftsdiensten teilnehmen. Das erhöht ihr Verantwortungsbewusstsein und hilft bei der Fehlerbehebung und -vermeidung. Umgekehrt sollten Administratoren Zugriff auf Sourcecode-Repository und Build-Tools haben. Durch die Zusammenarbeit entsteht Vertrauen zwischen Entwicklern und Administratoren, und Unternehmen stellen sicher, dass Softwarelösungen robust laufen und dauerhaft erreichbar sind.

2. Automatisierung für einen verbesserten Deployment-Prozess

Eine zweite wichtige Voraussetzung für die Beschleunigung von Releaseprozessen im Sinne von DevOps ist die Automatisierung bestimmter Arbeitsvorgänge, die sonst manuell durchgeführt werden und daher wenig transparent sind, sich also nur schlecht für eine Qualitätskontrolle eignen. Das bedeutet zunächst einmal, dass das gesamte Releasemanagement von der Entwicklung über das Testen bis hin zur Produktion definiert und standardisiert werden muss. Aspekte des späteren IT-Betriebs müssen möglichst schon im Anforderungsmanagement und in der Entwicklungsphase berücksichtigt werden können. Auf diese Weise wird unliebsamen Überraschungen vorgebeugt, wenn die neue Version in Produktion geht. Durch das minuziöse Definieren der Arbeitsschritte wird es außerdem möglich, kleine Veränderungen zeitnah umzusetzen und die Releasefrequenz zu erhöhen, was im Zusammenhang mit dem DevOps-Ansatz empfohlen wird, da umfassende Releases wesentlich fehleranfälliger sind. Ergebnis ist ein leicht wiederholbarer und verlässlicher Deployment-Prozess.

Ermöglicht wird eine Automatisierung im zweiten Schritt durch den Einsatz geeigneter Tools. Solche Werkzeuge werden bereits von einigen Unternehmen erfolgreich eingesetzt. So beschleunigt der führende Telekommunikationsanbieter der Schweiz Swisscom den Launch innovativer, Cloud-basierter digitaler TV-Services mit der Anwendung CA Release Automation von CA Technologies. Diese Lösung automatisiert komplexe, mehrstufige Releasevorgänge u. a. durch die systemübergreifende Orchestrierung der beteiligten Prozesse – von der Entwicklung bis hin zur Produktion.

3. Measurements für eine erstklassige Qualität

Damit die Qualität in schnellen Releaseprozessen dauerhaft gesichert werden kann, sind einheitliche Bewertungskriterien (Measurements) wichtig. Sie bilden die dritte Grundvoraussetzung für die Implementierung der DevOps-Idee. Eine wichtige Maßnahme zur Überprüfung der Bewertungskriterien sind Softwaretests. Ein Softwaretest prüft und bewertet Software auf Erfüllung der für ihren Einsatz definierten Anforderungen und misst ihre Qualität. Die gewonnenen Erkenntnisse werden zur Erkennung und Behebung von Softwarefehlern genutzt.

Im Zusammenhang mit DevOps werden Tests während der Softwareentwicklung empfohlen, da man so die Software relativ fehlerfrei in Betrieb nehmen kann. Erleichterung in der Qualitätssicherung bieten Werkzeuge für die Servicevirtualisierung: Servicevirtualisierung gibt IT-Teams und Entwicklern die Möglichkeit, Applikationen in einer Umgebung mit virtuellen externen Diensten unter Livebedingungen zu entwickeln und zu testen. Die Nutzung von Werkzeugen zur Servicevirtualisierung fördert wiederum die Zusammenarbeit im Sinne der DevOps-Idee, denn sowohl Entwickler als auch Administratoren haben Zugriff auf die benötigten Systeme und Berechtigungen.

Eine Lösung zur Servicevirtualisierung (wie auch zur Releaseautomatisierung) bietet beispielsweise CA Technologies mit der Produktsuite CA LISA SV (SV für Service Virtualization). Damit können Dienste, die nicht verfügbar, nicht schnell genug oder noch gar nicht erstellt sind, als virtuelle Services generiert und gepflegt werden. Sie werden auf Ebene der Kommunikation oder im jeweiligen Anwendungscontainer – wie etwa in einer Java-Enterprise-Umgebung – bereitgestellt und bilden die zum Testen nötigen Systeme nach. Dabei beherrschen virtuelle Services durchaus auch komplexes Dienstverhalten, beispielsweise bei Kaskaden von Änderungs- und Löschoperationen.

Prinzipbedingt haben virtuelle Services für den Testbetrieb eine Reihe von Vorteile: Die Technik erlaubt das Variieren von Kapazität und Antwortverhalten des simulierten Diensts. Testdaten können beliebig ergänzt und manipuliert werden – was gerade Negativtests erheblich erleichtert –, und die Verfügbarkeit der Dienste selbst ist kein Problem. Langjährige Benutzer dieser Technologie gehen oft dazu über, Integrationstests schon auf den Arbeitsplätzen der Entwickler durchzuführen. So können Fehler frühzeitig erkannt werden, was die Fehlerquote für den späteren produktiven Einsatz erheblich reduziert. Zugleich wird der Produktivbetrieb durch die abgekoppelte Entwicklung und die Tests nicht eingeschränkt oder gestört. Dies spart Kosten für Personal sowie Zeit für die Planung und Entwicklung.

4. Gegenseitiger Austausch für kontinuierliche Verbesserung

Das vierte Grundprinzip, der Austausch zwischen Entwicklern und Administratoren (Sharing), führt wieder in den zwischenmenschlichen Bereich, der bereits mit der Forderung nach besserer Zusammenarbeit angesprochen wurde. Der gegenseitige Austausch schafft eine höhere Transparenz und sichert einen gemeinsamen Wissensstand. Konkret werden Entwickler und Administratoren aufgefordert, intensiv zusammenzuarbeiten, durch regelmäßige Treffen oder auch durch Mitarbeit im jeweils anderen Team. Die Administratoren sollen sich dabei mit der Codebasis vertraut machen und die Entwickler mit den Anforderungen und Prozessen des Betriebs. Auch Metriken und Planungen müssen offengelegt werden. Durch die kontinuierliche Konfrontation von Entwicklern und Administratoren entsteht eine offene Feedbackkultur, die dabei hilft, Prozesse immer wieder zu verbessern.

Fazit

Die (Neu-)Ausrichtung der Zusammenarbeit von Anwendungsentwicklung und IT-Betrieb gemäß der DevOps-Idee verbessert Erstellung, Inbetriebnahme und Betrieb von IT-Services. Idealerweise können mit dem DevOps-Ansatz Kosten reduziert und neue Applikationen schneller eingeführt werden. Prozessmodelle, Technologien und Werkzeuge, mit denen sich DevOps erfolgreich umsetzen lässt, werden bereits von unterschiedlichen Spezialanbietern zur Verfügung gestellt. Wenn es Unternehmen zusätzlich gelingt, kulturelle Veränderungsprozesse innerhalb ihrer IT-Organisationen dauerhaft umzusetzen, haben sie eine echte Chance, in der Always-On-Ära erfolgreich zu sein. Dabei muss das IT-Management jedoch nach Kräften mitwirken und bereit sein, alte Strukturen zu überwinden.

DevOpsCon Istio Cheat Sheet

Free: BRAND NEW DevOps Istio Cheat Sheet

Ever felt like service mesh chaos is taking over? As a follow-up to our previous cheat sheet featuring the most important commands and functions, DevOpsCon speaker Michael Hofmann has put together the 8 best practices you should keep in mind when using Istio.

Geschrieben von
Justin Vaughan-Brown
Justin Vaughan-Brown
Justin Vaughan-Brown ist als Director Product Marketing vorranging für die Content-Erstellung rund um das Thema DevOps bei Appdynamics verantwortlich, da er früher als Lead und Senior DevOps Market Strategist bei CA Technologies tätig war. Er verfügt über 20 Jahre Erfahrung im Technologie-Marketing und arbeitete für Software AG, Microsoft, BusinessObjects und SAS. Zu seinen Stationen gehören auch hochrangige europäische Marketingrollen bei Datenintegrations-, Sicherheits- und Hochleistungs-Datenbankanbietern. Justin ist Autor mehrerer Strategiepapiere und hat unter anderem auf Konferenzen wie dem Gartner Symposium in Brasilien, Hongkong und Südafrika gesprochen.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: