Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verständnis CI/CD
Kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) sind Prozesse zur Automatisierung des Lebenszyklus von Softwareversionen. In einigen Fällen CI/CD kann das D-In auch Bereitstellung bedeuten. Der Unterschied zwischen Continuous Delivery und Continuous Deployment tritt auf, wenn Sie eine Änderung an der Produktionsumgebung veröffentlichen. Bei Continuous Delivery ist eine manuelle Genehmigung erforderlich, bevor Änderungen an der Produktion vorgenommen werden. Bei der kontinuierlichen Bereitstellung ist ein unterbrechungsfreier Ablauf der gesamten Pipeline gewährleistet, und es sind keine ausdrücklichen Genehmigungen erforderlich. Da in dieser Strategie allgemeine CI/CD Konzepte behandelt werden, gelten die Empfehlungen und Informationen sowohl für die kontinuierliche Bereitstellung als auch für die kontinuierliche Bereitstellung.
CI/CD automatisiert einen Großteil oder alle manuellen Prozesse, die üblicherweise erforderlich waren, um neuen Code aus einem Commit in die Produktion zu übertragen. Eine CI/CD Pipeline umfasst die Phasen Quell-, Build-, Test-, Staging- und Produktionsphase. In jeder Phase stellen die CI/CD Pipelines die gesamte Infrastruktur bereit, die zum Bereitstellen oder Testen des Codes erforderlich ist. Mithilfe einer CI/CD Pipeline können Entwicklungsteams Änderungen am Code vornehmen, die dann automatisch getestet und zur Bereitstellung weitergeleitet werden.
Lassen Sie uns zunächst den grundlegenden CI/CD Prozess überprüfen, bevor wir einige der Möglichkeiten erörtern, wie Sie wissentlich oder unwissentlich von der Vollkommenheit abweichen können. CI/CD Das folgende Diagramm zeigt die CI/CD Phasen und Aktivitäten in jeder Phase.
Über kontinuierliche Integration
Die kontinuierliche Integration erfolgt in einem Code-Repository, z. B. einem Git-Repository inGitHub. Sie behandeln einen einzelnen Hauptzweig als Informationsquelle für die Codebasis, und Sie erstellen kurzlebige Zweige für die Feature-Entwicklung. Sie integrieren einen Feature-Branch in den Hauptzweig, wenn Sie bereit sind, das Feature in höheren Umgebungen bereitzustellen. Feature-Branches werden niemals direkt in höheren Umgebungen bereitgestellt. Weitere Informationen finden Sie unter Trunk-based Ansatz in diesem Handbuch.
Kontinuierlicher Integrationsprozess
-
Der Entwickler erstellt aus dem Hauptzweig einen neuen Zweig.
-
Der Entwickler nimmt Änderungen vor und erstellt und testet lokal.
-
Wenn die Änderungen fertig sind, erstellt der Entwickler eine Pull-Anfrage
(GitHub Dokumentation) mit dem Hauptzweig als Ziel. -
Der Code wird überprüft.
-
Wenn der Code genehmigt ist, wird er mit dem Hauptzweig zusammengeführt.
Über Continuous Delivery
Continuous Delivery findet in isolierten Umgebungen statt, z. B. in Entwicklungs- und Produktionsumgebungen. Die Aktionen, die in den einzelnen Umgebungen ausgeführt werden, können variieren. Oft wird eine der ersten Phasen verwendet, um Aktualisierungen an der Pipeline selbst vorzunehmen, bevor der Vorgang fortgesetzt wird. Das Endergebnis der Bereitstellung ist, dass jede Umgebung mit den neuesten Änderungen aktualisiert wird. Die Anzahl der Entwicklungsumgebungen zum Erstellen und Testen variiert ebenfalls, wir empfehlen jedoch, mindestens zwei zu verwenden. In der Pipeline wird jede Umgebung in der Reihenfolge ihrer Bedeutung aktualisiert, bis die wichtigste Umgebung, die Produktionsumgebung, abgeschlossen wird.
Kontinuierlicher Lieferprozess
Der Continuous-Delivery-Teil der Pipeline wird initiiert, indem der Code aus dem Hauptzweig des Quell-Repositorys abgerufen und an die Build-Phase übergeben wird. Das Dokument Infrastructure as Code (IaC) für das Repository beschreibt die Aufgaben, die in den einzelnen Phasen ausgeführt werden. Die Verwendung eines IaC-Dokuments ist zwar nicht verpflichtend, es wird jedoch dringend empfohlen, einen IaC-Dienst oder ein IaC-Tool wie AWS CloudFormationoder AWS Cloud Development Kit (AWS CDK)zu verwenden. Zu den gängigsten Schritten gehören:
-
Komponententests
-
Code erstellen
-
Bereitstellung von Ressourcen
-
Integrationstests
Wenn in einer beliebigen Phase der Pipeline Fehler auftreten oder Tests fehlschlagen, wird die aktuelle Phase auf ihren vorherigen Status zurückgesetzt und die Pipeline wird beendet. Nachfolgende Änderungen müssen im Code-Repository beginnen und den gesamten CI/CD Prozess durchlaufen.