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
