Hintergrund: Was ist Continuous Delivery?

Zuvor haben wir über Continuous Integration (CI) gesprochen. Fahren Sie mit der kontinuierlichen Lieferung fort. Dies ist eine Reihe von Softwareentwicklungsmethoden. Es hilft sicherzustellen, dass der Code für die Bereitstellung bereit ist.


/ Pixabay / Bluebudgie / PL

Die Geschichte


Die Kombination der kontinuierlichen Lieferung ist im agilen Manifest von 2001 am Anfang der Liste der Grundprinzipien zu sehen: "Priorität ist die Lösung von Kundenproblemen durch die kontinuierliche Bereitstellung relevanter Software."

Im Jahr 2010 veröffentlichten Jez Humble und David Farley Continuous Delivery. Laut den Autoren ergänzt die CD den Continuous Integration- Ansatz und vereinfacht die Vorbereitung von Code für die Bereitstellung.

Nach der Veröffentlichung des Buches gewann der Ansatz an Popularität und wurde in nur wenigen Jahren fast allgemein akzeptiert. Laut einer Umfrage unter mehr als 600 Entwicklern und IT-Managern im Jahr 2014 waren 97% der technischen Manager und 84% der Programmierer mit Continuous Delivery vertraut.

Jetzt bleibt dieser Ansatz einer der beliebtesten. Laut einer Studie aus dem Jahr 2018, die die IT-Community der DevOps- und Jenkins-Community anzog , nutzt sie die Hälfte der mehr als tausend Befragten.

So funktioniert die kontinuierliche Lieferung


Grundlage der CD ist die Bereitschaft des Codes zur Bereitstellung. Um diese Aufgabe zu erfüllen, wird der Prozess der Vorbereitung der Software für die Veröffentlichung automatisiert. Es sollte Standard für verschiedene Entwicklungsumgebungen sein, damit Sie Schwachstellen schnell finden und optimieren können. Beschleunigen Sie beispielsweise das Testen.

Ein Beispiel für den kontinuierlichen Lieferprozess lautet wie folgt:



Wenn der Continuous Integration-Ansatz für die Automatisierung der ersten beiden Stufen verantwortlich ist, dann für die nächsten beiden - Continuous Delivery. Die Stabilität des Prozesses wird unter anderem durch Konfigurationsmanagementsysteme gewährleistet. Sie überwachen Änderungen an Infrastruktur, Datenbanken und Abhängigkeiten. Die Bereitstellung selbst kann automatisiert oder manuell erfolgen.

Der Prozess hat folgende Anforderungen:

  • 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 es, die Auswirkungen von Änderungen in der Version zu bewerten).
  • Gesamtverantwortung für das Endprodukt. Das Produktteam - Manager, Entwickler, Tester - denkt über das Ergebnis nach und nicht nur über ihren Verantwortungsbereich (das Ergebnis ist eine Arbeitsversion, die den Benutzern des Produkts zur Verfügung steht).

Eine CD verwendet normalerweise die Codeüberprüfung , und das Prinzip des dunklen Starts wird verwendet, um Kundenmeinungen zu sammeln. Zunächst wird eine neue Funktion für einen kleinen Teil der Benutzer veröffentlicht. Ihre Erfahrung im Umgang mit dem Produkt hilft dabei, Fehler zu finden, die bei internen Tests nicht bemerkt wurden.

Was ist der Vorteil


Die kontinuierliche Bereitstellung vereinfacht die Codebereitstellung, was sich positiv auf die Produktivität auswirkt und die Wahrscheinlichkeit eines Burnout der Mitarbeiter verringert. Dies reduziert letztendlich die Gesamtentwicklungskosten. Zum Beispiel half eine CD einem der HP Teams , diese Kosten um 40% zu senken .

Laut einer Studie aus dem Jahr 2016 (Seite 28 des Dokuments ) lösen Unternehmen, die die CD eingeführt haben, Probleme mit der Informationssicherheit 50% schneller als diejenigen, die diesen Ansatz nicht verwenden. In gewissem Maße kann dieser Unterschied durch die Arbeit von Prozessautomatisierungswerkzeugen erklärt werden.

Ein weiteres Plus ist die Beschleunigung von Release-Releases. Im finnischen Entwicklungsstudio trug die kontinuierliche Bereitstellung dazu bei, die Geschwindigkeit der Code-Assemblierung um 25% zu erhöhen.

Mögliche Schwierigkeiten


Das erste und Hauptproblem ist die Notwendigkeit, vertraute Prozesse neu aufzubauen. Um die Vorteile des neuen Ansatzes aufzuzeigen, lohnt es sich, schrittweise auf die CD umzusteigen, wobei nicht mit den arbeitsintensivsten Anwendungen begonnen wird.

Das zweite mögliche Problem ist eine große Anzahl von Codezweigen. Die Folge der „Verzweigung“ sind häufige Konflikte und daraus resultierende zeitliche Verluste. Eine mögliche Lösung ist der No-Branch- Ansatz.

Insbesondere in einigen Unternehmen treten die Hauptschwierigkeiten beim Testen auf - es dauert zu lange. Testergebnisse müssen häufig manuell analysiert werden, aber eine Parallelisierung der Tests in den frühen Phasen der CD-Implementierung kann eine mögliche Lösung sein.

Sie sollten die Mitarbeiter auch darin schulen, mit neuen Tools zu arbeiten. Ein vorläufiges Schulungsprogramm spart Entwicklern Zeit und Mühe.


/ Flickr / h.ger1969 / CC BY-SA

Die Werkzeuge


Hier sind einige offene Tools für die kontinuierliche Lieferung:

  • GoCD ist ein Server für die kontinuierliche Bereitstellung in Java und JRuby on Rails. Ermöglicht die Steuerung des gesamten Anwendungsbereitstellungsprozesses: Build - Test - Release. Das Tool ist unter Apache 2.0 lizenziert. Auf der offiziellen Website finden Sie die Installationsanleitung .
  • Capistrano - ein Framework zum Erstellen von Skripten, die die Bereitstellung von Anwendungen in Ruby, Java oder PHP automatisieren. Capistrano kann Befehle auf einem Remote-Computer ausführen und über SSH eine Verbindung herstellen. Funktioniert mit anderen Tools für die kontinuierliche Integration und Bereitstellung, z. B. dem Integrity CI-Server.
  • Gradle 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.
  • Drone ist eine Go-CD-Plattform. Die Drohne kann vor Ort oder in der Cloud bereitgestellt werden. Das Tool basiert auf Containern und verwaltet diese mit YAML-Dateien.
  • Spinnaker ist eine Plattform für die kontinuierliche Bereitstellung von Code in Multi-Cloud-Systemen. Von Netflix entwickelt, spielten Google-Ingenieure eine große Rolle bei der Entwicklung des Tools. Installationsanweisungen finden Sie auf der offiziellen Website .

Was Sie in unserem Unternehmensblog lesen sollten:

Source: https://habr.com/ru/post/de449364/


All Articles