Es handelt sich dabei nicht um ein einzelnes Produkt, sondern der Begriff bezieht sich auf eine Kultur oder „Software-Entwicklungsdisziplin, wo man Software auf eine Weise baut, dass sie jederzeit für die Produktion freigegeben werden kann“, erklärt Martin Fowler.
Um Continuous Delivery zu erzielen, muss eine Domäne geschaffen werden, in der nahezu alles automatisiert sein muss, um die praktische Umsetzung eines „hocheffizienten und produktiven Entwicklungsprozesses“ zu gewährleisten. Manuelle Elemente haben wenig oder keinen Platz, da sie nur zu Engpässen führen und die ganz wichtige Bereitstellung behindern.
Als holistische Lösung ermöglicht Continuous Development Änderungen aller Art auf schnelle, sichere und nachhaltige Weise, „einschließlich neue Funktionen, Konfigurationsänderungen, Fehlerbehebungen und Experimente“, in der Produktion und in den Händen der Nutzer. Die erfolgreiche Umsetzung hängt von Software-Organisationen ab, die Technologie, Prozess, Personen und Werte aufeinander ausrichten.
Lesen Sie weiter und erfahren Sie mehr über die
- Vorteile von Continuous Delivery
- Optimale Vorgehensweisen für die Umsetzung von Continuous Delivery
Vorteile von Continuous Delivery
Große Unternehmen erzielen heutzutage Vorteile, weil sie die kontinuierliche Weiterentwicklung anwenden und Softwareentwicklung als strategische Fähigkeit behandeln.
Das ist kein gänzlich unbekanntes Phänomen: Im Mai 2011 setzte Amazon alle 11,6 Sekunden Veränderungen in der Produktion um, während Facebook zweimal täglich eine Produktionsfreigabe durchführt. Eine große Anzahl an Google-Services zeugt von zahlreichen Freigaben jede Woche. Und trotzdem sind viele Manager und leitende Angestellte nicht von den damit einhergehenden Vorteilen überzeugt.
Nicht zu verwechseln mit Continuous Deployment bedeutet Continuous Delivery, dass Sie häufig Auslieferungen durchführen können in einem von Unternehmen zu Unternehmen variierenden Maße.
Reduziertes Deployment-Risiko
Wie von Martin Fowler beschrieben, gehört zu Continuous Delivery, die Bereitstellung kleinerer Änderungen. Wenn die Fehlerspanne kleiner wird, dann vergrößert sich die Chance, für diese Probleme eine schnelle Lösung zu finden. Auf diese Weise kann Continuous Delivery das Deployment-Risiko senken.
Überzeugende Fertigstellung
Wenn die Arbeit in die Produktion oder eine ähnliche Umgebung ausgeliefert wird, dann ist es glaubhafter, dass sie „abgeschlossen“ ist, als wenn ein Entwickler erklärt, dass die Arbeit abgeschlossen ist.
Anwender-Feedback
Kontinuierliche Weiterentwicklung genießt auch Anwender-Feedback, da unnütze Software an der Spitze der Risiken liegt, denen Technologie ausgesetzt ist. Wenn Software schnell und effizient zum Anwender gelangt, sollte das Feedback-System genauso effizient und hochwertig sein.
Funktionalität
Der Schlüssel zu Continuous Delivery ist Funktionalität, die Kundenwert schafft. Dies zeigte die Präsentation von Dr. Ronny Kohavi, Microsoft Partner Architect, zu seiner Arbeit an online kontrollierten Experimenten (A/B Tests) bei Amazon. Die Methode schuf „hunderte Millionen Dollar an Wert für Amazon und sparte ähnliche Summen durch Reduzierung der Alternativkosten bei der Entwicklung von Funktionen, die nicht wirklich wertvoll waren.“ Etsy und Netflix gehören zu den vielen anderen Unternehmen, die diese Methoden anwenden.
Optimale Vorgehensweise für Continuous Delivery
Binärcodes nur einmal entwickeln
Widerstehen Sie der Versuchung, neuen Code für verschiedene Umgebungen zu erstellen. Binärcode sollte nur einmal erstellt und dann in einem Repository aufbewahrt werden, zu dem nur Ihr Bereitstellungsmechanismus Zugang hat. Der Mechanismus sollte den einen Binärcode an jede nachfolgende Umgebung ausliefern.
Deployment-Test in einem Nachbau der Produktionsumgebung
Wenn eine Testumgebung nicht mit der Produktionsumgebung identisch ist, besteht die Software eventuell nicht alle Tests. Eine Kopie der Produktionsumgebung ist sehr teuer, aber das kann umgangen werden, wenn die Vorproduktionsumgebung so gebaut wird, dass sie „eine skalierbare Version der tatsächlichen Produktionsumgebung ist.“
Stellen Sie sicher, dass Ihre Auslieferung reibungslos abläuft, indem Sie einen Rauchtest in den Auslieferungsprozess einbauen. Ein unkomplizierter Diagnostiktest wird helfen sicherzustellen, dass alles am richtigen Platz ist. Dieser Test vergleicht eine Dateiliste mit dem, was Sie in Ihrer Auslieferung sehen sollten und was auf dem Server erscheint.
Jede Umgebung wird vom selben Mechanismus bereitgestellt
Der selbe Freigabeprozess sollte in allen Umgebungen angewendet werden. Probleme tauchen immer dann auf, wenn eine bestimmte Funktion einen Prozess durchdrücken muss, wenn er zur Integrationsumgebung geht und dann einen anderen Prozess in die Q&A.
Im Fall eines Ausfalls stoppen!
Vermeiden Sie komplexe Patches, verwerfen Sie den Prozess einfach, wenn er nicht funktioniert. Setzen Sie alle Auslieferungen mit Problembereichen zurück und kehren Sie zur Quelle zurück. Wenn Sie ein sehr kleines Ausfallfenster haben, um an Ihr Live-System auszuliefern, kann das der Hauptgrund sein, warum viele vielleicht sagen, Rollback ist keine Option.
Wenn Sie ein winziges Ausfallfenster haben, dann wird das „Einhacken in Ihr Live-System … alle Ihre Umgebungen unwirksam machen, es sei denn, Sie hacken sich auch in alle diese ein.“ Hinzu kommt, dass das ursprüngliche Problem wieder eingelassen werden kann, wenn die Bereitstellung das nächste Mal eingeleitet wird.
Gemeinsame Verantwortung
Obwohl es vielleicht schwierig ist, die Disziplin in gleicher Weise im Prozess zu verankern, sollte die Verantwortung von Anfang bis Ende, bis zur Produktion verteilt sein. Management und Abteilungen sollten unterstützende Funktionen übernehmen, wenn diese Kultur von allen Beteiligten übernommen wird.
Schlussfolgerung
Continuous Delivery und seine Perfektionierung ist ein langer Prozess und nicht etwas, das über Nacht erfolgreich ist. Dieser Prozess ist auf nachhaltige Verbesserungen über Tage, Wochen und Monate hinweg angewiesen mit verantwortlichen Teams, die unablässig nach besserer, effizienterer Leistung streben.
Der Prozess bringt riesige Herausforderungen mit sich, wenn sich die Teams einer Organisation an neue Investitionen, Tooling-Hardware und Leute anpassen müssen, aber globale Organisationen jeder Größe können davon profitieren.
Greifen Sie auf die neuesten Geschäftskenntnisse in der IT zu
Zugang erhalten
Kommentare
Nehmen Sie an der Diskussion teil ...