Đ Đ°ĐœĐ”Đ” ĐŒŃ ĂŒber Continuous Integration (CI). Machen wir weiter mit Continuous Delivery. Hierbei handelt es sich um eine Reihe von Softwareentwicklungsmethoden. Dadurch wird sichergestellt, dass Ihr Code fĂŒr die Bereitstellung bereit ist.
/Pixabay/ /
Geschichte
Der Begriff âContinuous Deliveryâ tauchte wieder auf aus dem Jahr 2001 am Anfang der Liste der Grundprinzipien: âIm Vordergrund steht die Lösung von Kundenproblemen durch die kontinuierliche Bereitstellung aktueller Software.â
Im Jahr 2010 veröffentlichten Jez Humble und David Farley durch kontinuierliche Lieferung. Laut den Autoren ergĂ€nzt CD den Ansatz und ermöglicht Ihnen, die Vorbereitung des Codes fĂŒr die Bereitstellung zu vereinfachen.
Nach der Veröffentlichung des Buches begann der Ansatz an PopularitĂ€t zu gewinnen und wurde innerhalb weniger Jahre fast ĂŒberall akzeptiert. Entsprechend , durchgefĂŒhrt unter mehr als 600 Entwicklern und IT-Managern im Jahr 2014, waren 97 % der technischen Manager und 84 % der Programmierer mit Continuous Delivery vertraut.
Mittlerweile ist dieser Ansatz einer der beliebtesten. Laut einer Studie aus dem Jahr 2018, an der die IT-Community DevOps und die Jenkins Community beteiligt waren, ist dies der Fall die HĂ€lfte der ĂŒber tausend Befragten.
Wie funktioniert Continuous Delivery?
Die CD-Basis ist die Bereitschaft des Codes zur Bereitstellung. Um diese Aufgabe zu erfĂŒllen, wird der Prozess der Vorbereitung von Software fĂŒr die Veröffentlichung automatisiert. Es sollte in verschiedenen Entwicklungsumgebungen Standard sein, um Schwachstellen schnell zu finden und zu optimieren. Beschleunigen Sie beispielsweise Tests.
Ein Beispiel fĂŒr einen Continuous-Delivery-Prozess sieht so aus:

Wenn der Continuous-Integration-Ansatz fĂŒr die Automatisierung der ersten beiden Phasen verantwortlich ist, dann ist Continuous Delivery fĂŒr die nĂ€chsten beiden verantwortlich. Die ProzessstabilitĂ€t wird unter anderem durch Systeme gewĂ€hrleistet . Sie ĂŒberwachen Ănderungen in der Infrastruktur, Datenbanken und AbhĂ€ngigkeiten. Die Bereitstellung selbst kann automatisiert oder manuell erfolgen.
An den Prozess werden folgende Anforderungen gestellt:
- VerfĂŒgbarkeit von Informationen ĂŒber die Bereitschaft zum Eintritt in die Produktionsumgebung und die Bereitschaft zur sofortigen Veröffentlichung (CD-Tools testen den Code und ermöglichen die Bewertung der Auswirkungen von Ănderungen in der Veröffentlichung).
- Gesamtverantwortung fĂŒr das Endprodukt. Das Produktteam â Manager, Entwickler, Tester â denkt ĂŒber das Ergebnis nach und nicht nur ĂŒber seinen Verantwortungsbereich (das Ergebnis ist eine funktionierende Version, die den Benutzern des Produkts zur VerfĂŒgung steht).
In CDs wird es normalerweise verwendet , und zum Sammeln von Kundenmeinungen â das Prinzip . Eine neue Funktion wird zunĂ€chst fĂŒr einen kleinen Teil der Benutzer freigegeben â ihre Erfahrung bei der Interaktion mit dem Produkt hilft dabei, MĂ€ngel und Fehler zu finden, die bei internen Tests nicht bemerkt wurden.
Was ist der Vorteil?
Continuous Delivery trÀgt dazu bei, die Codebereitstellung zu vereinfachen, was sich positiv auf die ProduktivitÀt auswirkt und die Wahrscheinlichkeit eines Burnouts bei Mitarbeitern verringert. Letztendlich werden dadurch die Gesamtentwicklungskosten gesenkt. CD hat beispielsweise einem der HP-Teams geholfen diese Kosten um 40 %.
Laut einer Studie aus dem Jahr 2016 (Seite 28 ) â Unternehmen, die CD implementiert haben, lösen Informationssicherheitsprobleme 50 % schneller als diejenigen, die diesen Ansatz nicht nutzen. Bis zu einem gewissen Grad lĂ€sst sich dieser Unterschied durch die Leistung von Prozessautomatisierungstools erklĂ€ren.
Ein weiterer Pluspunkt ist die Beschleunigung der Veröffentlichungen. Kontinuierliche Lieferung im finnischen Entwicklungsstudio Erhöhen Sie die Geschwindigkeit der Codeassemblierung um 25 %.
Mögliche Schwierigkeiten
Das erste und gröĂte Problem ist die Notwendigkeit, gewohnte Prozesse neu aufzubauen. Um die Vorteile des neuen Ansatzes zu zeigen, lohnt es sich, schrittweise auf CD umzusteigen und nicht mit den arbeitsintensivsten Anwendungen zu beginnen.
Das zweite potenzielle Problem ist die groĂe Anzahl von Codezweigen. Die Folge der âVerzweigungâ sind hĂ€ufige Konflikte und ein weiterer groĂer Zeitverlust. Mögliche Lösung â Vorgehensweise .
Insbesondere in einigen Unternehmen entstehen die Hauptschwierigkeiten beim Testen â es nimmt zu viel Zeit in Anspruch. Testergebnisse mĂŒssen oft manuell analysiert werden, eine mögliche Lösung könnte jedoch darin bestehen, die Tests in den frĂŒhen Phasen der CD-Implementierung zu parallelisieren.
Sie sollten Ihre Mitarbeiter auch im Umgang mit neuen Tools schulen â ein vorlĂ€ufiges Schulungsprogramm spart Entwicklern Aufwand und Zeit.

/flickr/ /
Werkzeuge
Hier sind einige offene Tools fĂŒr Continuous Delivery:
- â Server fĂŒr Continuous Delivery in Java und JRuby on Rails. Ermöglicht Ihnen die Steuerung des gesamten Anwendungsbereitstellungsprozesses: Build â Test â Release. Das Tool wird unter der Apache 2.0-Lizenz vertrieben. Sie finden es auf der offiziellen Website .
- â ein Framework zum Erstellen von Skripten, die die Bereitstellung von Anwendungen in Ruby, Java oder PHP automatisieren. Capistrano kann Befehle auf einem Remote-Rechner ausfĂŒhren, indem es sich ĂŒber SSH mit diesem verbindet. Funktioniert mit anderen Tools fĂŒr kontinuierliche Integration und Bereitstellung, z. B. dem Integrity CI-Server.
- ist ein plattformĂŒbergreifendes Tool, das den gesamten Anwendungsentwicklungszyklus automatisiert. Gradle funktioniert mit Java, Python, C/C++, Scala usw. Es gibt eine Integration mit Eclipse, IntelliJ und Jenkins.
- - CD-Plattform in Go-Sprache. Drohnen können vor Ort oder in der Cloud eingesetzt werden. Das Tool basiert auf Containern und verwendet YAML-Dateien, um diese zu verwalten.
- â eine Plattform fĂŒr die kontinuierliche Codebereitstellung in Multi-Cloud-Systemen. Die von Netflix entwickelten Google-Ingenieure spielten eine groĂe Rolle bei der Entwicklung des Tools. Installationsanleitung .
Was Sie in unserem Unternehmensblog lesen können:
Source: habr.com
