Vorher haben wir Ăber Continuous Integration (CI). Lassen Sie uns mit Continuous Delivery fortfahren. Dies ist eine Sammlung von Methoden zur Softwareentwicklung. Sie hilft sicherzustellen, dass der Code fĂŒr die Bereitstellung bereit ist.
/ Pixabay / /
Geschichte
Den Begriff continuous delivery konnte man bereits im von 2001 am Anfang der Liste der GrundsĂ€tze sehen: âPrioritĂ€t hat die Lösung der Kundenprobleme durch kontinuierliche Bereitstellung aktueller Software.â
Im Jahr 2010 veröffentlichten Jez Humble und David Farley ĂŒber Continuous Delivery. Der Gedanke der Autoren hinter CD ist, dass es den Ansatz ergĂ€nzt und es erleichtert, den Code fĂŒr die Bereitstellung vorzubereiten.
Nach der Veröffentlichung des Buches begann der Ansatz an PopularitĂ€t zu gewinnen und wurde innerhalb von nur zwei Jahren praktisch allgemein anerkannt. Laut , die 2014 unter mehr als 600 Entwicklern und IT-Managern durchgefĂŒhrt wurde, waren 97% der technischen FĂŒhrungskrĂ€fte und 84% der Programmierer mit Continuous Delivery vertraut.
Heute ist dieser Ansatz einer der populÀrsten. Laut einer Studie aus dem Jahr 2018, an der die IT-Community der DevOps- und Jenkins-Community beteiligt war, bejahten die HÀlfte von mehr als tausend befragten Personen.
Wie funktioniert Continuous Delivery?
Die Grundlage von CD ist die Bereitschaft des Codes zur Bereitstellung. Zur ErfĂŒllung dieser Aufgabe wird die Automatisierung des Softwarevorbereitungsprozesses fĂŒr das Release eingesetzt. Dieser sollte fĂŒr verschiedene Entwicklungsumgebungen standardisiert sein, was hilft, Schwachstellen schneller zu finden und zu optimieren. Zum Beispiel, um die Testdauer zu verkĂŒrzen.
Ein Beispiel fĂŒr den Continuous Delivery-Prozess sieht folgendermaĂen aus:

Wenn der Ansatz Continuous Integration fĂŒr die Automatisierung der ersten beiden Phasen verantwortlich ist, ist fĂŒr die nĂ€chsten beiden Continuous Delivery zustĂ€ndig. Die StabilitĂ€t des Prozesses wird auch durch Systeme sichergestellt. Diese ĂŒberwachen Ănderungen in der Infrastruktur, Datenbanken und AbhĂ€ngigkeiten. Das eigentliche Deployment kann automatisiert oder manuell durchgefĂŒhrt werden.
An den Prozess werden folgende Anforderungen gestellt:
- VerfĂŒgbarkeit von Informationen zur Bereitschaft fĂŒr den Produktionsumfeld und Bereitschaft fĂŒr die direkte Veröffentlichung (CD-Tools testen den Code und ermöglichen die Bewertung der Auswirkungen von Ănderungen im Release).
- Die gemeinsame Verantwortung fĂŒr das Endprodukt. Das Produktteam â Manager, Entwickler, Tester â denkt an das Ergebnis und nicht nur an seinen eigenen Verantwortungsbereich (das Ergebnis ist ein funktionierendes Release, das den Nutzern des Produkts zur VerfĂŒgung steht).
In CD wird normalerweise , und um Kundenmeinungen zu sammeln â das Prinzip . Eine neue Funktion wird zunĂ€chst fĂŒr einen kleinen Nutzerkreis veröffentlicht â ihre Erfahrungen mit dem Produkt helfen, MĂ€ngel und Bugs zu finden, die beim internen Testen nicht aufgefallen sind.
Was sind die Vorteile
Continuous Delivery erleichtert das Deployment von Code, was sich positiv auf die ProduktivitÀt auswirkt und die Wahrscheinlichkeit von emotionaler Erschöpfung der Mitarbeiter verringert. Letztlich senkt dies auch die Gesamtentwicklungskosten. Zum Beispiel hat CD einem der Teams von HP diese Kosten um 40 % zu senken.
DarĂŒber hinaus â laut einer Studie aus dem Jahr 2016 (Seite 28 ) â lösen Unternehmen, die CD implementiert haben, Probleme mit IT-Sicherheit 50 % schneller im Vergleich zu denen, die diesen Ansatz nicht nutzen. Ein Teil dieser Differenz kann durch die Arbeit von Automatisierungstools erklĂ€rt werden.
Ein weiterer Vorteil ist die Beschleunigung der Veröffentlichung von Releases. In einem finnischen Entwicklungsstudio die Geschwindigkeit des Code-Baus um 25 % erhöht.
Mögliche Schwierigkeiten
Das erste und wichtigste Problem ist die Notwendigkeit, gewohnte Prozesse umzustellen. Um den Nutzen des neuen Ansatzes zu demonstrieren, sollte der Ăbergang zu CD schrittweise erfolgen, beginnend nicht mit den arbeitsintensivsten Anwendungen.
Ein zweites potenzielles Problem sind die zahlreichen Code-Zweige. Eine Folge der »Verzweigung« sind hÀufige Konflikte und die damit verbundenen Zeitverluste. Eine mögliche Lösung ist der Ansatz .
. Insbesondere in einigen Unternehmen treten die gröĂten Schwierigkeiten beim Testen auf â dafĂŒr wird oft zu viel Zeit benötigt. Die Testergebnisse mĂŒssen hĂ€ufig manuell analysiert werden, aber eine mögliche Lösung könnte das Parallelisieren der Tests in den frĂŒhen Phasen der CD-Implementierung sein.
Auch sollten die Mitarbeiter im Umgang mit den neuen Tools geschult werden â eine grundlegende EinfĂŒhrung wird den Entwicklern Zeit und Kraft sparen.

/ Flickr / /
Werkzeuge
Hier sind einige Open-Source-Tools fĂŒr Continuous Delivery:
- â Server fĂŒr Continuous Delivery auf Java und JRuby on Rails. Er ermöglicht die Kontrolle des gesamten Bereitstellungsprozesses der Anwendung: BuildâTestâRelease. Das Tool wird unter der Lizenz Apache 2.0 vertrieben. Auf der offiziellen Website finden Sie .
- â Framework zur Erstellung von Skripten, die die Bereitstellung von Anwendungen in Ruby, Java oder PHP automatisieren. Capistrano kann Befehle auf einem entfernten Rechner ausfĂŒhren, indem es sich ĂŒber SSH verbindet. Es arbeitet mit anderen Tools fĂŒr Continuous Integration und Delivery, wie dem CI-Server Integrity, zusammen.
- â Multiplattform-Tool, das den gesamten Entwicklungszyklus von Anwendungen automatisiert. Gradle unterstĂŒtzt Java, Python, C/C++, Scala und mehr. Es gibt Integrationen mit Eclipse, IntelliJ und Jenkins.
- â Plattform fĂŒr CD in Go. Drone kann vor Ort oder in der Cloud bereitgestellt werden. Das Tool basiert auf Containern und verwendet YAML-Dateien zur Verwaltung.
- â Plattform fĂŒr die kontinuierliche Bereitstellung von Code in Multi-Cloud-Systemen. Entwickelt bei Netflix, trugen Ingenieure von Google maĂgeblich zur Entwicklung des Tools bei. Die Installationsanleitung finden Sie .
Was Sie in unserem Unternehmensblog lesen können:
Quelle: habr.com
