Es empfiehlt sich, einen Blick auf die Wand zwischen Dev(elopment) und Op(eration)s zu werfen, um festzustellen, wie diese Trennung Auswirkung auf Geschäftsziele der Organisation hat. Es gilt ein Umdenken sowohl in der Entwicklung als auch bei Operations einzufordern, um über gemeinsame Metriken, die Business-Innovation, Effizienz und Kundenzufriedenheit gemeinsam zu steuern.
Beschreibung von DevOps
DevOps konzentriert sich darauf, die Freigabe von Software, die Verbesserung der Technologie sowie die Fähigkeit der Organisation, auf Geschäftsanforderungen zu reagieren, deutlich zu verbessern. Mehr Agilität und schnellere Release-Zyklen fahren einen kontinuierlichen Strom von Software in die Cloud, um ROI, Kunden-Zufriedenheit, Rentabilität und Marktanteile zu erhöhen.
DevOps besteht aus einer Reihe von Verfahren, die auf einer engen Zusammenarbeit zwischen Entwicklung und Operations baut, um den Fluss von Software-Versionen zu verbessern und die Realisierung von Business-Mehrwert für Kunden zu beschleunigen.
Bestandsaufnahme
Die Transformation zu DevOps beginnt mit der Bewertung des Unternehmens, der IT-Organisation und der Entwickler-Organisation, um in mehreren Dimensionen zu verstehen, was die wichtigsten Herausforderungen sein werden. Ein Rahmen, der dazu beitragen kann, diese Information zu liefern, ist das McKinsey 7S-Modell.
Strategie, Struktur, Systeme, Mitarbeiter, Fähigkeiten, Stil und übergeordnete Ziele sind zu betrachten, um Herausforderungen zu markieren und Bereiche der Aktivität zu adressieren. Hierzu stellen sich folgende Fragen:
Soll die IT eine neue Business Strategie, wie das Digitale Business, unterstützen?
Wie ist das Unternehmen organisiert?
Welche Systeme sind an Ort und Stelle und welche müssen hinzugefügt oder aufgehoben werden?
Wie gut ist das Personal für diese Übergang gerüstet und welche Skillsets, die nicht vorhanden sind, sollen hinzugefügt werden?
Wie schwierig wird es sein, eine Kultur der Zusammenarbeit in der IT zu implementieren?
Gibt es Herausforderungen in einem Bereich und wie können die übergeordneten oder gemeinsamen Ziele des Unternehmens einen Hebel zum Management der Transformation darstellen?
Basierend auf dem Verständnis, wie DevOps sich auf die Organisation auswirkt, ist eine Strategie und ein Plan für die Umsetzung zu entwickeln. Je nach dem Ergebnis, das erzielt werden soll, müssen entsprechende Analysen durchgeführt werden:
Identifikation der DevOps Business-Treiber und Herausforderungen,
Überprüfen der kritischen Erfolgsfaktoren und Best Practices,
Überprüfung der kritischer DevOps Bereiche, die sich an Geschäftszielen ausrichten,
Prioritäten für kurze, mittelgroße und langfristige Projekte.
Empfehlung: Die Bewertung der IT-Organisation und ihrer Position im Unternehmen über mehrere Dimensionen, die eine Transformation beeinflussen können.
"Singen vom gleichen Blatt"
DevOps teilt viele kulturelle Eigenschaften mit agiler Entwicklung. Folglich wird eine anfängliche-DevOps Umsetzung zunächst sehr gut mit agilen Web-Projekten funktionieren. Andere LM-Praktiken - wie Waterfall oder Scaled Agile Methoden - können schwieriger, aber nicht unmöglich, mit DevOps integriert werden. Während DevOps ergebnisorientierte Erträge erzeugt, variieren der Aufwand, die Herausforderung und das Risiko bei der Umsetzung von DevOps im Vergleich zu entsprechenden Entwicklungsmethoden (siehe Abbildung).
In der Zwischenzeit ist ITIL auf der operativen Seite in der Regel das etablierte Prozess-Framework der Wahl. ITIL kann ein guter Ausgangspunkt für kooperative Gespräche mit Kollegen aus den operativen Sektionen sein. Es eignet sich dazu, Change Management, Release- und Deployment-Management, Incident-Management und Qualitäts-Angelegenheiten zu diskutieren. DevOps, wie Agile, sind ein Menschen-First-Ansatz. Obwohl alle vier Schlüsselelemente wichtig sind - Menschen, Prozesse, Technologie und Metriken - ist DevOps vor allem eine disruptive Veränderung der Kultur der Zusammenarbeit, um gemeinsam Unternehmensziele zu erreichen.
Empfehlung: "Alle Beteiligten auf eine (die gleiche) Seite bringen" = gemeinsames Wirken mit IT-Operations in Bezug auf gemeinsame Ziele und Aufgaben.
Wände niederreißen
Die Wand, die zwischen Dev(elopment) und Op(eration)s besteht, sollte übeprüft werden und ob diese Trennung Auswirkungen auf Geschäftsziele des Unternehmens hat. Dazu sollten übergreifende Teams gebildet und eventuelle Abhängigkeiten geplant werden. Ziel ist es hierbeim, den Einsatz vorhersehbar zu machen.
DevOps soll die Verbesserung eines kontinuierlichen Flusses von neuen Software-Releases/Anwendungen laut folgendem Modell ermöglichen:
Fluss von links nach rechts
Kontinuierliches Deployment von Software-Releases erfordert einen ungehinderten links nach rechts Fluss von der Software-Entwicklung und Test bis zur Freigabe/Bereitstellung und Produktion. Wartezeiten sind auf Null zu fahren, durch Management der Ressourcen und Beseitigung oder Verringerung ungeplanter Arbeit, von Warteschlangen oder Engpässen. Das gesamte System ist end-to-end zu optimieren. DevOps Praktiken sind in der testgetriebenen Entwicklung, automatisierte Tests in einem Klon der Produktionsumgebung. Bei Google zum Beispiel arbeiten 15.000 Entwickler und erzeugen 75 Millionen Tests an jedem Tag.Fluss von rechts nach links
Feedback ist in allen Phasen der DevOps wichtig, um zu verhindern, dass Probleme entstehen und falls erforderlich, diese schneller zu beheben. Testautomatisierung, Bereitstellungs-Automatisierung und Produktions-Telemetrie sind Praktiken, die sicherstellen, dass Code und Umgebung funktionieren wie vorgesehen. Etwas anderes ist die Ownership der Entwickler über deployte Releases/Anwendungen. Deployment und Management von über Produktions-, Test-, und Entwicklungsumgebungen hinweg identischer Infrastruktur-Software gewährleisten, dass Versionen sauber in der Produktion wie in Entwicklung und bei Test laufen. Schaltet die Konfiguration jedoch bei einem neuen Release, wenn zunehmend Dinge schief gehen, auf off-line, werden bei Bedarf schnelle Änderungen in der Produktion möglich.Kontinuierliche Innovation
Einmal implementiert, muss DevOps sich entwickeln. Ein erster Schritt ist es, DevOps über die Organisation auszubreiten. Ein anderer ist die Schaffung von Shared Services in Form von Gruppen oder Kompetenz-Zentren beispielsweise für Entwickler-Tools, Test, CM, Operations- und Produktions-Telemetriewerkzeuge. Dieses Vorgehen hilft, die kontinuierliche Verbesserung der Verfahren zu koordinieren und Automatisierungs-Ressourcen über alle Software-Projekte zu implementieren.
Vor zwei Jahren war es üblich, 10 Releases pro Tag zu schaffen, heute sind es in großen Web-Organisationen nicht selten Tausende von Releases. Amazon berichtet 25.000 Releases über alle Dienstleistungsangebote je Arbeitstag. Beschäftigung mit neuesten Technologien, wie GitHubot und ChatOps, um die Produktions-Herausforderungen zu bewältigen, ist eine weitere Möglichkeit, um sicherzustellen, dass kontinuierliches Experimentieren und damit Verbesserung die DevOps Kultur prägt
Empfehlung: Es empfiehlt sich, übergreifende Teams zu bilden und gemeinsame Ziele und Arbeitsabläufe zu entwickeln.
Vertrauen und Überprüfen der Ergebnisse
DevOps ist nicht ausschließlich über den Abriss von Wänden oder das Entfernen kultureller Barrieren zu erreichen, sondern über den Aufbau leistungsfähiger Synergien zwischen den Organisationen. Dazu ist eine Veränderung des Denkens der Entwickler sowie der operativen Kollegen notwendig. Dann lässt sich mit gemeinsamen Metriken, das Unternehmen innovativ vorantreiben.
Allerdings werden einige Metriken für die meisten Organisationen von Bedeutung sein:
Business-Metriken: ROI, Kundenzufriedenheit, Marktanteil, Marktstellung, Prüfung von Erkenntnissen, Kosten der Einhaltung
Geschwindigkeit: Time to Market und andere Maßnahmen der kontinuierlichen Bereitstellung, Release Frequenz, Durchfluss
Qualität: MTTF, MTTR, Fehler in der Produktion (Ausfälle, die beim Deployment verursacht werden) und verminderte Qualität.
Empfehlung: Gemeinsames transparentes Arbeiten im IT-Betrieb, um Metriken, die geschäftlichen Nutzen und gemeinsame Fortschritte betonen, herauszuarbeiten.
Auswirkungen und Leitlinien
Ob Startup, Cloud-Anbieter, SMB oder Großunternehmen - immer fordert eine mit DevOps gestartete Entwicklung Führungskräfte auf, IT-Infrastruktur und Operations anzuleiten, gemeinsam zu arbeiten. Das bedeutet auch, den anfänglichen Widerstand aufzuarbeiten und einen gemeinsamen Boden zu finden, auf dem gegenseitiges Vertrauen aufgebaut werden kann.
Empfehlung für Anbieter/Provider
Anbieter von Apps, Geschäftsanwendungen und Cloud-Lösungen sollten das potenzielle Geschäftsmodell und dessen Vorteile in Betracht ziehen. Die Beschäftigung mit DevOps nahestehenden Technologien wird Gelegenheiten erzeugen, um Kundenanforderungen zu erfüllen, Marktanteile zu erhöhen und nachhaltige Profitabilität zu gewährleisten.
Empfehlung für Unternehmens- und IT-Leiter
Ob mobile Anwendungen für Knowledge-Worker oder Cloud-Lösungen entwickelt werden, um Geschäfts-Nutzen für Kunden zu generieren, DevOps kann Wettbewerbs-Vorteile durch Reduzierung von Kosten und/oder schnelleres Time to Market erzeugen.
Die Transformation zu DevOps erfordert es jedoch, dass die Unternehmensleitung den IT-Bereich ermächtigt, kollaborativ an der Erfüllung gemeinsamer Unternehmenszielen zu arbeiten. (bw)