Hinweis: Was ist Continuous Delivery

Vorher haben wir erlĂ€utert Ü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.

Hinweis: Was ist Continuous Delivery
/ Pixabay / bluebudgie / PL

Geschichte

Den Begriff continuous delivery konnte man bereits im Agile-Manifest 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 ein Buch ĂŒber Continuous Delivery. Der Gedanke der Autoren hinter CD ist, dass es den Ansatz ergĂ€nzt Kontinuierliche Integration 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 einer Umfrage, 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 verwendet 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:

Hinweis: Was ist Continuous Delivery

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 zur Konfigurationsverwaltungsichergestellt. 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 Code-Review, und um Kundenmeinungen zu sammeln — das Prinzip Dark Launching. 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 ermöglicht diese Kosten um 40 % zu senken.

DarĂŒber hinaus — laut einer Studie aus dem Jahr 2016 (Seite 28 des Dokuments) — 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 hat kontinuierliche Lieferung 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 Keine Branches.

. 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.

Hinweis: Was ist Continuous Delivery
/ Flickr / h.ger1969 / CC BY-SA

Werkzeuge

Hier sind einige Open-Source-Tools fĂŒr Continuous Delivery:

  • GoCD — 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 eine Anleitung zur Konfiguration.
  • Capistrano — 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.
  • Gradle — 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.
  • Drohnen — 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.
  • Spinnaker — 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 auf der offiziellen Website.

Was Sie in unserem Unternehmensblog lesen können:

Quelle: habr.com

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster