Echte & zuverlässige kontinuierliche Lieferung
Bei echter und zuverlässiger Continuous Delivery von hoher Qualität geht es nicht nur darum, isolierte Probleme in Bezug auf Teaming, Deployment oder Testen zu lösen. Es geht darum, einzelne Themen ganzheitlich zu implementieren und dabei die Investitionen und Anstrengungen, die Sie für jedes dieser Themen tätigen, optimal auszubalancieren.
- Agile Teamarbeit - für die schnelle und kontinuierliche Bereitstellung neuer Funktionen
- DevOps - ein Wechsel von Projektteams zu Produktteams, die sich durchgängig für ein funktionierendes Endprodukt verantwortlich fühlen.
- Qualität in jeder Hinsicht - Qualität der Teams, des Codes, der Veröffentlichungen und der Systeme.
- Software Craftsmanship - Komponenten sollten nicht beim ersten Fehler eines Systems versagen.
- Automatisierung wo immer möglich - fehleranfällige manuelle Eingriffe sind jetzt nicht mehr erlaubt. Server können innerhalb einer Stunde geliefert werden, Anwendungen können innerhalb von Minuten implementiert werden.
Die vier Ansichten
Echte Continuous Delivery erstreckt sich auf alle Bereiche Ihres Unternehmens. Geschäfts- und Entwicklungsteams arbeiten agil, die IT-Abteilung hat große Teile ihrer Lieferprozesse automatisiert, die Umsetzung neuer und/oder aktualisierter Anforderungen durchläuft die Lieferung in einem viel höheren Tempo, während der Betrieb die Infrastruktur als Code behandelt. Gleichzeitig arbeiten Projektteams als echte Produktteams, die sich durchgehend für das Produkt verantwortlich fühlen, und zwar nicht nur bis zu dem Punkt, an dem das Produkt an eine nächste Organisation übergeben wird, sondern bis es den Endbenutzer erreicht und problemlos in der Produktion läuft. Wenn Sie echte Continuous Delivery implementieren, müssen Sie in jedem der vier Quadranten sehr aktiv und effektiv sein. Daher ist es wichtig, dass die Organisation
- Bietet eine klare Vision für alle Aspekte der kontinuierlichen Lieferung
- Leitet & coacht komplette Teams bei der Einführung von Agile & Scrum
- Bietet Schulungen zu Themen wie Agile, DevOps, Software Craftsmanship und Lean-Ansätze
- Implementiert kontinuierliche (automatisierte) Integration und automatisierte Tests
- Implementiert Implementierungsautomatisierung & Plattformbereitstellung Die vier Ansichten im Detail ➊ Die geschäftliche Sicht
Aus geschäftlicher Sicht geht es um eine schnellere Markteinführung, einen höheren Durchsatz an Funktionen, eine schnellere Kapitalrendite, ein vorhersehbares Maß an Kontinuität und niedrigere Betriebskosten. Bei Continuous Delivery geht es darum, den Weg vom Konzept zum Geld zu ebnen. Ein paar Beispiele:
- Durch automatisches Testen des Codes direkt nach der Freigabe können Probleme an Ort und Stelle behoben werden, während gleichzeitig sichergestellt wird, dass der Code in der Auslieferungspipeline ein optimales Qualitätsniveau aufweist.
- Durch die Beseitigung manueller, fehleranfälliger Schritte im Lieferprozess werden die Kosten für die Behebung von Problemen, die durch menschliches Versagen verursacht werden, auf ein absolutes Minimum reduziert.
- Durch die häufige Veröffentlichung einzelner Funktionen wird der ROI auf täglicher Basis geerntet, während risikoreiche Big-Bang-Implementierungen der Vergangenheit angehören.
- Indem Sie das Produkt zusammen mit dem Feedback Ihrer Kunden gestalten, ist das Produkt in seinem Endzustand besser auf die tatsächlichen Kundenwünsche abgestimmt, als wenn ein Produkt im Vorfeld vollständig entworfen werden müsste.
âž' Die funktionale Sicht
Bei der funktionalen Sicht geht es um die Möglichkeiten, die der Lieferprozess bietet. Um nur einige zu nennen:
- Agile Teams liefern täglich neue Funktionen, liefern qualitativ hochwertigen Code und zeigen handwerkliches Geschick, indem sie Code produzieren, der robust ist und die Komplexität des Systems nicht unnötig erhöht.
- Die Code-Integration, die Paketierung, die Erstellung und das Testen werden täglich automatisch durchgeführt, während die Qualität und der Status des Codes (bestanden/nicht bestanden/was/wer) sofort an das Team gemeldet wird. - Anwendungen werden unter Einhaltung der definierten Release-Prozesse automatisch in wenigen Minuten bereitgestellt. Der Prozess der Anwendungsbereitstellung ist vollständig automatisiert und erfordert keine zeitaufwändigen manuellen Eingriffe.
- Systeme und Server werden in Minutenschnelle auf- und abgebaut. Gruppen von Systemen teilen sich eine einheitliche Konfiguration, so dass ein Abdriften der Konfiguration der Vergangenheit angehört. Die Infrastruktur wird wie Code behandelt, der Prozess der Systembereitstellung ist "hands-off".
➌ Die Implementierungsansicht
Die Implementierungsansicht bietet die besten Praktiken für die Implementierung. Kurz und bündig:

- Kontinuierliche Integration und automatisierte Tests sollten als Open Source implementiert werden, und die Entwickler sollten frei entscheiden können, welche Implementierung sie verwenden möchten.
- Die Automatisierung der Anwendungsbereitstellung sollte darauf abzielen, eine herstellerneutrale Lösung zu werden, die in der Lage ist, in mehreren PaaS-Umgebungen eingesetzt zu werden.
- Das Release-Management sollte ein möglichst einfacher Prozess sein, bei dem das Release-Management-Tool selbst problemlos in das Tool für die Anwendungsbereitstellung integriert werden kann.
- Lieferteams sollten in der Lage sein, neue Systeme mit Hilfe einer Self Service Platform Provisioning-Umgebung einzurichten. Teams können neue Plattformen auf der Grundlage vordefinierter Bausteine anfordern. Plattformen werden in Minutenschnelle erstellt. âž Die betriebliche Sicht
Die operative Sichtweise erklärt die Prinzipien, an die sich Teams halten sollten, um den höchsten Durchsatz bei der kontinuierlichen Bereitstellung zu erreichen.
- DevOps: Produktteams anstelle von Projektteams. Lieferung und Betrieb erfolgen innerhalb desselben Teams und sind gemeinsam für ein funktionierendes Endprodukt verantwortlich. Sie bauen es, Sie betreiben es".
- Eine DoD: Die Definition von "Fertig" für das gesamte Produktteam lautet "Done is Live". Das bedeutet, dass der Code nicht fertig ist, wenn er irgendwo im Test stecken bleibt, was traditionell oft der Fall ist.
- Agil: Die Teams arbeiten agil, d.h. sie formen das Produkt, während es implementiert wird, und betonieren es, nachdem es vollständig entworfen wurde.
- Handwerkliches Geschick: Die Entwicklungsteams geben qualitativ hochwertigen, robusten und getesteten Code in die Entwicklungspipeline ein. Wenn Code in der Pipeline fehlerhaft ist, wird er sofort repariert. Wenn Sie etwas kaputt machen, reparieren Sie es.
Wenn Sie sich Continuous Delivery aus diesen vier Perspektiven nähern, können Sie feststellen, wo die Herausforderungen in Ihrem Unternehmen liegen, und Sie erhalten nützliche Handgriffe für die sorgfältige Umsetzung einer neuen, schnelleren und viel agileren Arbeitsweise.
Dieser Beitrag ist Teil einer Serie über Continuous Delivery. In unserem Tag
Continuous Delivery finden Sie weitere Beiträge zu diesem Thema. Oder besuchen Sie unsere Website zur kontinuierlichen Lieferung um zu erfahren, wie die Berater von Xebia Ihnen helfen können, Ihre Markteinführungszeit zu verkürzen, Kosten zu senken und die Qualität mit Hilfe von Best Practices für Continuous Delivery zu verbessern.
Verfasst von

Michiel Sens
Michiel is Solution Architect at Xebia and specializes in Continuous Delivery and full lifecycle software development programs. He advocates the use of Continuous Delivery at seminars and meetups and technically focuses on implementation of automated Software Delivery pipelines. Michiel is co-author of "The Manager's Guide to Continuous Delivery", published by Xebia early 2014.
Unsere Ideen
Weitere Blogs
Contact



