Continuous Integration and Delivery (CI/CD) wird immer wichtiger, da es dem Ziel der Agilität bei der Anwendungsentwicklung entspricht. Das CI/CD-Prinzip hat sich jedoch im Laufe der Zeit als effektiv erwiesen, was zum Teil auf die Tools zurückzuführen ist, die die kontinuierliche Bereitstellung ermöglichen. Eines dieser Werkzeuge ist GCP Cloud Deploy. Hier erfährst du, wie es funktioniert.
Was ist GCP Cloud Deploy?
GCP Cloud Deploy ist einer der vielen Dienste der Google Cloud Platform. Das Ziel ist es dann, einen neuen Code automatisch in der Produktion einzusetzen. So werden alle Aufgaben, die mit dem Veröffentlichungszyklus einer Anwendung oder Software in der Produktionsumgebung verbunden sind, nach festgelegten Sequenzen automatisiert. Und das ohne menschliches Eingreifen. Dieser Service passt voll und ganz in die DevOps-Bewegung, die eine kontinuierliche Integration und Bereitstellung (CI/CD) beinhaltet.
💡Gut zu wissen: Mit Cloud Deploy lassen sich Einsatzpipelines für GKE, Anthos und Cloud Run erstellen.
Wie stelle ich eine Anwendung mit Cloud Deploy bereit?
Sobald ein DevOps Änderungen an einer Anwendung vornimmt, muss er den neuen Code in die Cloud Source Repositories übertragen. Damit diese Änderungen in der endgültigen Version der Anwendung berücksichtigt werden, muss er zunächst eine erste Version dieser Aktualisierung erstellen. An dieser Stelle kommt Google Cloud Deploy ins Spiel, das seinen Lebenszyklus über eine Verbreitungspipeline verwalten wird.
💡Auch interessant:
Alooma: Wie funktioniert dieses GCP Tool? |
GCP Create Custom Role |
Der Cloud Adoption Framework |
Entdecke den GCP Cloud Rechenservice |
GCP Firestore was ist das |
Der Google Cloud Catalog |
Die Definition der Lieferpipeline und der Ziele
Die Broadcast-Pipeline enthält mehrere Elemente, die für die Bereitstellung einer Anwendung unerlässlich sind. Dazu gehören:
- Der Name und die Beschreibung: Dies ist notwendig, um auf die Pipeline zu verweisen.
- Die Promotionsreihenfolge: Hier wird die Reihenfolge festgelegt, in der alle Deployment-Aktionen ausgeführt werden.
- Ziele: Dies sind die Umgebungen, in denen die Anwendung eingesetzt werden soll.
- Zum Beispiel Entwicklung (Dev), Qualitätskontrolle (QA) und Produktion (Prod). Diese Ziele sind mit einem Anthos-, GKE- oder Cloud Run-Cluster verbunden.
Gut zu wissen: Mehrere Pipelines können das gleiche Ziel verwenden. Dasselbe Ziel kann aber in jeder Pipeline nur einmal eingebunden werden. Außerdem kann eine Pipeline mehrere Versionen erstellen und mehrere Ziele verwenden.
Die Definition der Broadcast-Pipeline erfolgt in der YAML-Konfigurationsdatei. Sie legt dann alle Elemente der Pipeline fest. Außerdem wird eine Konfiguration für Scaffold benötigt. Diese Datei ermöglicht es dem GCP Cloud Deploy-Dienst, Rendering- und Deployment-Operationen durchzuführen.
Zu diesem Zeitpunkt arbeitest du noch nicht mit Google Cloud Deploy, sondern mit Cloud Build. Du solltest sie daher beim Cloud Deploy-Dienst registrieren, um die Verteilung an die Zielumgebungen in der vorgegebenen Reihenfolge zu verwalten.
Der Release Call
Im ersten Schritt geht es darum, eine Version der an der Anwendung oder Software vorgenommenen Änderungen zu erstellen. Dazu musst du Cloud Deploy über die GCP-Konsole oder die API aufrufen und ihm die Compiler-Artefakte sowie die Referenzen auf bestimmte Container-Images übermitteln.
Von da an speichert GCP Cloud Deploy eine Pipeline-Instanz im Rahmen der Version. Dann ruft es die Konfigurationsdateien YALM und Skaffold auf, die im Cloud-Speicher abgelegt sind. Dies ermöglicht es ihm dann, eine Release-Ressource zu erstellen. Dies ist eine Manifestdatei für jede Umgebung.
Der Aufruf zum Rollout
Nach diesem Aufruf an das Release wird automatisch eine Rollout-Ressource erstellt. Diese initiiert die Lieferpipeline. Die Rollout-Ressource besteht aus mehreren Elementen:
- Phasen: Dies ist eine Unternachricht des Deployments. Es gibt also mehrere Phasen innerhalb der Lieferpipeline.
- Aufgaben: Dies sind die spezifischen Operationen, um die Bereitstellung der Anwendung zu gewährleisten. Innerhalb einer Phase gibt es eine oder mehrere Aufgaben.
- Aufgabenausführungen: Dies sind die Instanzen der Aufgaben. Zum Beispiel: eine versuchte Bereitstellung, eine Bereitstellung, eine Validierung, eine versuchte Validierung usw. Die Aufgaben werden in der Regel von einer Person ausgeführt.
All diese Elemente wurden zuvor in der Promotionssequenz festgelegt.
Das Ziel des Rollouts ist es, die Version mit der ersten Zielumgebung zu verknüpfen. Dabei wird die modifizierte Anwendung auf dieses erste Ziel ausgerollt.
Um diese verschiedenen Operationen durchzuführen, kann jedes CI-Tool verwendet werden, das Docker-Images erzeugen kann.
Promotion der Anwendung
Der Einsatz der Anwendung in den anderen Zielumgebungen setzt einen Promotionsaufruf voraus. Das heißt, die Durchführung aller zuvor definierten Sequenzen.
Bei jeder neuen Promotion wird die Anwendung auf der nächsten Umgebung eingesetzt. Dies gilt bis zur letzten Zielumgebung (prod). Mit anderen Worten: Die endgültige Anwendung geht in Produktion.
Andere Aufgaben, die von GCP Cloud Deploy ausgeführt werden
Über den Prozess von Release, Rollout und Promotion hinaus umfasst der Lebenszyklus der Lieferpipeline mehrere zusätzliche Aufgaben. Dazu gehören:
- Genehmigungen: Um eine Pipeline in ein neues Ziel zu befördern, kann es sein, dass du bestimmte Genehmigungen benötigst. Dies geschieht in der Regel über die IAM-Plattform (Identify and Access Management).
- Benachrichtigungen: Um die Arbeit der DevOps zu erleichtern, sendet Cloud Deploy mehrere Benachrichtigungen an die DevOps, wenn bestimmte Ereignisse eintreten, z. B. Rendering, Deployment, Genehmigungen (erforderlich, genehmigt oder abgelehnt). Um diese Benachrichtigungen zu versenden, wird der Pub/Sub-Dienst verwendet.
- Rollbacks: Die Idee ist es, einen Einsatz der neuesten Version zu veranlassen.
Dies ist eine vereinfachte Erklärung der Bereitstellung von Anwendungen in GCP Cloud Deploy. Wenn du tiefer in die Beherrschung dieses Tools einsteigen möchtest, ist es unerlässlich, sich weiterzubilden. Dafür gibt es DataScientest. Durch unsere DevOps-Schulung lernst du alles, was du über den CI/CD-Prozess und die Verwendung dieser Werkzeuge wissen musst.
Was wir uns merken sollten:
- GCP Deploy verwaltet den Deployment-Prozess vollständig und fördert so die kontinuierliche Integration und Lieferung.
- Um dieses Tool zu nutzen, müssen DevOps zunächst die Bereitstellungspipeline definieren, indem sie ihren Namen, ihre Beschreibung, die Promotionssequenz und die Zielumgebungen angeben.
- Von da an kann der Bereitstellungsprozess in drei Phasen eingeleitet werden: Release, Rollout und Promotion.