Zuvor haben wir Continuous Integration (CI) beschĂ€ftigt. Lassen Sie uns mit Continuous Delivery fortfahren. Dies ist eine Sammlung von SoftwareentwicklungsansĂ€tzen. Sie hilft sicherzustellen, dass der Code fĂŒr die Bereitstellung bereit ist.
/ Pixabay / /
Geschichte
Der Begriff Continuous Delivery wurde bereits im von 2001 an erster Stelle der grundlegenden Prinzipien erwĂ€hnt: âPrioritĂ€t hat die Lösung der Kundenanforderungen durch kontinuierliche Lieferung aktueller Softwareâ.
Im Jahr 2010 veröffentlichten Jez Humble und David Farley ein Buch ĂŒber Continuous Delivery. Die Autoren beabsichtigten, dass CD den Ansatz ergĂ€nzt und die Vorbereitung des Codes fĂŒr die Bereitstellung erleichtert.
Nach der Veröffentlichung des Buches begann der Ansatz an PopularitĂ€t zu gewinnen und wurde innerhalb weniger Jahre nahezu allgemein anerkannt. Laut einer , die 2014 unter mehr als 600 Entwicklern und IT-Managern durchgefĂŒhrt wurde, waren 97 % der technischen Leiter und 84 % der Programmierer mit Continuous Delivery vertraut.
Heute bleibt dieser Ansatz einer der beliebtesten. Laut einer Studie aus dem Jahr 2018, an der die DevOps- und Jenkins-Community beteiligt war, sind die HĂ€lfte der mehr als tausend befragten Personen.
Wie funktioniert Continuous Delivery?
Basis CD â die Bereitschaft des Codes fĂŒr die Bereitstellung. FĂŒr diese Aufgabe wird die Automatisierung des Software-Vorbereitungsprozesses fĂŒr Releases verwendet. Dieser sollte standardisiert fĂŒr verschiedene Entwicklungsumgebungen sein, was dabei hilft, Schwachstellen schneller zu finden und zu optimieren. Zum Beispiel, um die Tests zu beschleunigen.
Ein Beispiel fĂŒr den Continuous Delivery Prozess sieht wie folgt aus:

Wenn der Continuous Integration Ansatz fĂŒr die Automatisierung der ersten beiden Phasen verantwortlich ist, ĂŒbernimmt Continuous Delivery die folgenden beiden. Die StabilitĂ€t des Prozesses wird auch durch gewĂ€hrleistet. Diese ĂŒberwachen Ănderungen in der Infrastruktur, Datenbanken und AbhĂ€ngigkeiten. Die eigentliche Bereitstellung kann automatisiert oder manuell erfolgen.
An den Prozess werden folgende Anforderungen gestellt:
- VerfĂŒgbarkeit von Informationen ĂŒber die Bereitschaft fĂŒr das Production-Environment und die Bereitschaft fĂŒr das sofortige Release (CD-Tools testen den Code und ermöglichen eine Bewertung der Auswirkungen von Ănderungen im Release).
- Die gesamte Verantwortung fĂŒr das Endprodukt liegt bei uns. Das Produktteam â bestehend aus Managern, Entwicklern und Testern â konzentriert sich auf das Ergebnis und nicht nur auf ihren jeweiligen Aufgabenbereich. Das Resultat ist ein funktionierendes Release, das den Benutzern zur VerfĂŒgung steht.
In der Continuous Delivery (CD) wird in der Regel , und um Kundenmeinungen zu sammeln, der Grundsatz . Neue Funktionen werden zunĂ€chst einem kleinen Benutzersegment bereitgestellt â ihre Interaktion mit dem Produkt hilft dabei, MĂ€ngel und Fehler zu identifizieren, die wĂ€hrend der internen Tests möglicherweise ĂŒbersehen wurden.
Welchen Vorteil bietet das?
Continuous Delivery erleichtert die Bereitstellung von Code, was sich positiv auf die ProduktivitÀt auswirkt und das Risiko eines emotionalen Burnouts der Mitarbeiter verringert. Letztendlich senkt es auch die Gesamtkosten der Entwicklung. Zum Beispiel konnte eine der HP-Teams senken.
DarĂŒber hinaus â laut einer Studie aus dem Jahr 2016 (Seite 28 ) â lösen Unternehmen, die CD eingefĂŒhrt haben, Probleme mit IT-Sicherheit 50 % schneller als solche, die diesen Ansatz nicht nutzen. Diese Unterschiede können teilweise durch den Einsatz von Automatisierungswerkzeugen erklĂ€rt werden.
Ein weiterer Vorteil ist die Beschleunigung des Release-Prozesses. In dem finnischen Entwicklungsstudio wird Continuous Delivery eingesetzt, die Build-Geschwindigkeit um 25 % erhöhen konnte.
Potenzielle Herausforderungen
Das gröĂte Problem ist die Notwendigkeit, gewohnte Prozesse umzustellen. Um den Nutzen des neuen Ansatzes zu zeigen, sollte der Ăbergang zu CD schrittweise erfolgen, beginnend mit weniger komplexen Anwendungen.
Ein zweites potenzielles Problem sind die vielen Codezweige. Die Folge von "Verzweigungen" sind hÀufige Konflikte und damit verbundenen Zeitverlust. Eine mögliche Lösung könnte der Ansatz .
sein. In vielen Unternehmen treten insbesondere beim Testen gröĂere Schwierigkeiten auf â der Testaufwand ist oft zu hoch. Testergebnisse mĂŒssen hĂ€ufig manuell ausgewertet werden, aber eine mögliche Lösung könnte das Parallelisieren von Tests in der Anfangsphase der CD-Implementierung sein.
AuĂerdem sollten die Mitarbeiter im Umgang mit neuen Werkzeugen geschult werden â eine grundlegende Schulung wird den Entwicklern helfen, Zeit und Energie zu sparen.

/ Flickr / /
Werkzeuge
Hier sind einige Open-Source-Tools fĂŒr Continuous Delivery:
- â Server fĂŒr die kontinuierliche Bereitstellung auf Java und JRuby on Rails. Ermöglicht die Kontrolle ĂŒber den gesamten Bereitstellungsprozess: buildâtestârelease. Das Tool ist unter der Apache 2.0-Lizenz verfĂŒgbar. Auf der offiziellen Website finden Sie .
- â ein Framework zur Erstellung von Skripten, die die Bereitstellung von Anwendungen in Ruby, Java oder PHP automatisieren. Capistrano kann Befehle auf einer entfernten Maschine ausfĂŒhren, indem es sich ĂŒber SSH verbindet. Es arbeitet mit anderen Tools fĂŒr kontinuierliche Integration und Bereitstellung zusammen, beispielsweise dem CI-Server Integrity.
- â ein plattformĂŒbergreifendes Tool, das den gesamten Entwicklungszyklus von Anwendungen automatisiert. Gradle unterstĂŒtzt Java, Python, C/C++, Scala und weitere. Es gibt Integrationen mit Eclipse, IntelliJ und Jenkins.
- â eine Plattform fĂŒr CD in Go. Drone kann lokal oder in der Cloud bereitgestellt werden. Das Tool basiert auf Containern und verwendet YAML-Dateien zur Verwaltung.
- â eine Plattform fĂŒr die kontinuierliche Bereitstellung von Code in Multi-Cloud-Systemen. Entwickelt bei Netflix, hatten Ingenieure von Google einen bedeutenden Einfluss auf die Entwicklung des Tools. Die Installationsanleitung finden Sie .
Was Sie in unserem Unternehmensblog lesen können:
Quelle: habr.com
