Hilfe: Was ist Continuous Delivery?

Đ Đ°ĐœĐ”Đ” ĐŒŃ‹ erzĂ€hlt ĂŒ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.

Hilfe: Was ist Continuous Delivery?
/Pixabay/ Blausittich / PL

Geschichte

Der Begriff „Continuous Delivery“ tauchte wieder auf agiles Manifest 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 Buch durch kontinuierliche Lieferung. Laut den Autoren ergĂ€nzt CD den Ansatz Kontinuierliche Integration 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 Umfrage, 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 verwendet 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:

Hilfe: Was ist Continuous Delivery?

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 Konfigurationsmanagement. 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 Code-Review, und zum Sammeln von Kundenmeinungen – das Prinzip dunkler Start. 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 reduzieren diese Kosten um 40 %.

Laut einer Studie aus dem Jahr 2016 (Seite 28 Dokument) – 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 geholfen 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 keine Filialen.

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.

Hilfe: Was ist Continuous Delivery?
/flickr/ h.ger1969 / CC BY-SA

Werkzeuge

Hier sind einige offene Tools fĂŒr Continuous Delivery:

  • GoCD — 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 Setup-Anleitung.
  • Capistrano – 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.
  • 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.
  • Drohne - 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.
  • Spinnaker – 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 Finden Sie es auf der offiziellen Website.

Was Sie in unserem Unternehmensblog lesen können:

Source: habr.com

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz und VPS-VDS-Servern đŸ”„ Kaufen Sie zuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server | ProHoster