Erstellen Sie eine kontinuierliche Integrations- und Deployment-Pipeline mit Oracle Cloud Infrastructure DevOps-Services
Schnelle Bereitstellung von Software ist entscheidend für die effiziente Entwicklung und Bereitstellung Ihrer Anwendungen in der Cloud. Oracle Cloud Infrastructure-(OCI-)DevOps-Services bieten eine CI/CD-(Continuous Integration and Deployment-)Plattform, mit der Entwickler ganz einfach Software und Anwendungen in Oracle Cloud erstellen, testen und bereitstellen können.
OCI DevOps Build- und Deployment-Pipelines reduzieren veränderungsgesteuerte Fehler und verkürzen die Zeit, die Kunden für das Erstellen und Beheben von Problemen verbringen, indem sie die Neugenerierung der Software ermöglichen und dann erneut getestet werden, wenn Änderungen angewendet werden und somit negative Auswirkungen frühzeitig erkannt werden.
Der Service umfasst die Bereitstellung privater GIT-Repositorys zum Speichern Ihres Codes und unterstützt Verbindungen zu externen Code-Repositorys zum Speichern von Quellcode und Konfigurationsdateien. Da Erstellungsprozesse von Artefakten (Modulen, Packages usw.) abhängig sind und Zwischenartefakte erzeugen, arbeiten sie auch mit den Artefakt- und Container-Repositorys von Oracle. Egal, ob Sie Workloads zu OCI (aus On Premise oder anderen Clouds) migrieren oder neue Anwendungen in OCI entwickeln, mit OCI DevOps können Sie den Lebenszyklus der Softwarebereitstellung vereinfachen.
Beim Arbeiten in einer Hybrid- oder Multi-Cloud-Umgebung kann mit OCI DevOps Artefakte erstellt werden, die in anderen Umgebungen bereitgestellt werden sollen.
Architektur
Die Build Pipeline folgt einem benutzerdefinierten Ablauf zum Erstellen und Testen von Software und erstellt dann ein Containerimage mit der neuesten Version der Anwendung. Die Ausgabe des Builds wird in der Container-Registry als Image gespeichert. Dann verwendet eine Deployment-Pipeline das erstellte Image aus der Container-Registry und ein Kubernetes-Manifest, um die neueste Version der Anwendung in OKE bereitzustellen.
Die bereitgestellte Pipeline berücksichtigt keine Überlegungen wie das Anwenden von Einheitentests und das Analysieren der Codequalität mittels statischer Codeanalyse und Linter-Tools.
Das folgende Diagramm veranschaulicht diese Referenzarchitektur.

Beschreibung der Abbildung deploy-pipeline-devops-arch.png
deploy-pipeline-devops-arch-oracle.zip
- Region
Eine OCI-Region ist ein lokalisierter geografischer Bereich, der mindestens ein Data Center, sogenannte Availability-Domains, enthält. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie (über Länder oder sogar Kontinente) trennen. Die Architektur verwendet eine einzelne Region.
- Projekt DevOps
Eine logische Gruppierung von DevOps-Ressourcen, die zur Implementierung eines CI/CD-Workflows erforderlich sind. DevOps-Ressourcen können Artefakte sein, Pipelines erstellen, Deployment-Pipelines, externe Verbindungen, Trigger und Umgebungen erstellen. DevOps-Projekte erleichtern die Aktivierung von Logging, Überwachung und Benachrichtigungen für alle DevOps-Ressourcen.
- Pipeline erstellen
Eine Build-Pipeline verwendet eine Commit-ID aus Ihren Quellcode-Repositorys und diesen Quellcode, um Ihre Build-Anweisungen auszuführen. Pipelines erstellen definieren eine Reihe von Phasen für den Erstellungsprozess - Erstellen, Testen und Kompilieren von Softwareartefakten, Bereitstellen von Artefakten zu OCI-Repositorys und optional Auslösen eines Deployments. Sie definieren den Ablauf und die Anweisungen der Build-Ausführung in der Build-Spezifikationsdatei.
- Code-Repository
Private Git-Repositorys, die vom DevOps-Service gehostet werden. Sie können Quellcode mit OCI DevOps Code-Repositorys speichern, verwalten und entwickeln.
- Deployment-Pipeline
Eine Folge von Schritten zum Bereitstellen und Bereitstellen einer Gruppe von Artefakten in einer Zielumgebung. Der Ablauf und die Logik Ihres Software-Release können durch die Definition von Phasen gesteuert werden, die seriell oder parallel ausgeführt werden können.
- Bereitstellungsphasen
Phasen sind einzelne Aktionen, die während einer Pipeline-Ausführung ausgeführt werden. Die DevOps-Deployment-Pipeline enthält die folgenden vordefinierten Staging-Typen, die Sie in Ihrem Releaseprozess verwenden können:
- Rollierendes Deployment: Ein inkrementelles Release für OKE, Funktionen oder Instanzgruppen
- Wait: Wait N Sekunden
- Manuelle Genehmigung: Fahren Sie fort, wenn eine Genehmigung erteilt wurde; beenden Sie den Vorgang, wenn eine Genehmigung abgelehnt wurde.
- Funktion aufrufen: Führen Sie benutzerdefinierte Aufgaben oder Integrationen aus, indem Sie eine Funktion aufrufen und ein Artefakt von Anforderungsparametern übergeben.
- DevOps Artefakt
Ein DevOps-Artefakt ist eine Referenz oder ein Zeiger auf Dateien, Binärdateien, Packages, Manifeste oder Images, aus denen Ihre Anwendung besteht. Wenn Sie ein Artefakt erstellen, informieren Sie Oracle DevOps über den Quellspeicherort des eigentlichen Artefakts. DevOps unterstützt Repositorys der OCI Container Image Registry und der OCI Artifact Registry.
- Artefakt-Repository
Das Artefakt-Repository erstellt Repositorys, um ähnliche Artefakte zu gruppieren. Wenn das Repository erstellt wird, können Sie darin Artefakte hochladen. Diese Artefakte sind eine Sammlung von Textdateien, Binärdateien und Deployment-Manifesten, die in der Ziel-Deployment-Umgebung bereitgestellt werden. Jedes Artefakt hat einen Namen, der aus seinem Pfad erstellt wird: Version. Der Pfad ist eine Zeichenfolge zum Organisieren der Artefakte.
- OCI-Logging- und -Benachrichtigungsservices
OCI Logging Service speichert Logs für das Deployment. Die Laufzeitausgabe des Deployments und die endgültigen Ergebnisse des Deployments werden als Logeinträge angezeigt. Der OCI-Benachrichtigungsservice bietet Einblick in den aktuellen Status des Deployment-Projekts und seiner Ressourcen und führt alle erforderlichen Maßnahmen durch. Beispiel: Sie werden benachrichtigt, wenn ein wichtiges Ereignis, z.B. eine Phase in einer Bereitstellungs-Pipeline, die auf die Genehmigung wartet. Wenn Sie die Benachrichtigung erhalten, können Sie zu DevOps Deployment Pipelines gehen und die Phase genehmigen.
- Deployment-Umgebungen
Eine Umgebung ist eine Sammlung von Computing-Ressourcen eines Kunden, in denen Artefakte bereitgestellt werden. Umgebungen können eine Funktion, eine Compute Virtual Machine-(VM-) oder Bare-Metal-Instanz oder ein OKE-Cluster sein.
- Oracle Kubernetes-Cluster (OKE): Bei OCI Container Engine for Kubernetes handelt es sich um einen vollständig verwalteten, skalierbaren und hochverfügbaren Service, mit dem Sie Ihre containerisierten Anwendungen in der Cloud bereitstellen können.
- Compute-Instanzen: Mit dem OCI Compute-Service können Sie Compute-Hosts in der Cloud bereitstellen und verwalten. Sie können Compute-Instanzen mit Ausprägungen bereitstellen, die Ihren Ressourcenanforderungen für CPU, Arbeitsspeicher, Netzwerkbandbreite und Speicher entsprechen.
- Funktionen: Oracle Functions ist eine vollständig verwaltete, mehrmandantenfähige, hoch skalierbare, bedarfsgesteuerte Funktionen-as-a-Service-Plattform. Der Service basiert auf Oracle Cloud Infrastructure für Unternehmen und wird von der Open-Source-Engine Fn Project unterstützt.
Empfehlungen
- Compute-Ausprägungen
Diese Architektur verwendet ein Oracle Linux-BS-Image mit der Flex-Ausprägung E3 oder E4. Sie können mit den Mindestressourcen beginnen, die für Compute-Hosts in Ihrer Instanzgruppenumgebung und den OKE-Clusterknoten erforderlich sind. Wenn Ihre Anwendung mehr Speicher oder Kerne benötigt, können Sie eine andere Ausprägung auswählen.
- VCN
Bestimmen Sie beim Erstellen eines VCN die Anzahl der erforderlichen CIDR-Blöcke und die Größe jedes Blocks basierend auf der Anzahl der Ressourcen, die Sie an Subnetze im VCN anhängen möchten. Verwenden Sie CIDR-Blöcke, die sich im standardmäßigen privaten IP-Adressbereich befinden.
Nachdem Sie ein VCN erstellt haben, können Sie die zugehörigen CIDR-Blöcke ändern, hinzufügen und entfernen.
Diese Architektur verwendet ein öffentliches VCN, um Container Engine for Kubernetes zu hosten. Sie können auch ein privates VCN verwenden. Verwenden Sie in diesem Fall ein NAT-Gateway, um dem Cluster Zugriff über das öffentliche Internet zu gewähren.
- Oracle Container Engine for Kubernetes (OKE)
Diese Architektur stellt das OKE-Cluster als eine der Zielumgebungen bereit. Die Worker-Knoten werden auf einem E3- oder E4 Oracle Linux-BS bereitgestellt. Diese Architektur verwendet drei Worker-Knoten im Cluster. Sie können jedoch bis zu 1,000 Knoten in jedem Cluster erstellen.
- Container-Image-Registry
Diese Architektur stellt Registry zur internen Verwendung als private Docker-Registry bereit. Docker-Images werden in die Registry übertragen und daraus abgerufen. Sie können die Registry auch als öffentliche Docker Registry verwenden, sodass jeder Benutzer mit Internetzugriff und Wissen über die entsprechende URL Images aus öffentlichen Repositorys in OCI abrufen kann.
Überlegungen
Beachten Sie beim Deployment dieser Referenzarchitektur die folgenden Punkte:
- DevOps unterstützt Deployments in OKE, Compute-Hosts und Funktionen.
- Nur Linux-Hosts werden für Instanzgruppen-Deployments in Compute-Instanzen unterstützt.
- Artefakte, die mit DevOps bereitgestellt werden sollen, müssen sich in einer OCI-Artefakt-Registry oder einem Repository der Container-Image-Registry befinden.
- Als Best Practice wird empfohlen, jede Anwendung und alle zugehörigen Microservices in einem einzigen Projekt zu gruppieren.
Bereitstellen
Der Terraform-Code für das Erstellen und Bereitstellen der Pipeline mit OCI DevOps ist in GitHub verfügbar.
- Mit dem Beispielstack in Oracle Cloud Infrastructure Resource Manager bereitstellen:
- Klicken Sie auf
.
Wenn Sie noch nicht angemeldet sind, geben Sie den Mandanten und die Benutzerzugangsdaten ein.
- Wählen Sie die Region aus, in der der Stack bereitgestellt werden soll.
- Befolgen Sie die Prompts und Anweisungen zum Erstellen des Stacks auf dem Bildschirm.
- Nachdem Sie den Stack erstellt haben, klicken Sie auf Terraform-Aktionen, und wählen Sie Planen aus.
- Warten Sie, bis der Job abgeschlossen ist, und prüfen Sie den Plan.
Um Änderungen vorzunehmen, kehren Sie zur Seite "Stackdetails" zurück, klicken Sie auf Stack bearbeiten, und nehmen Sie die erforderlichen Änderungen vor. Führen Sie anschließend die Aktion Planen erneut aus.
- Wenn keine weiteren Änderungen erforderlich sind, kehren Sie zur Seite "Stackdetails" zurück, klicken Sie auf Terraform-Aktionen, und wählen Sie Anwenden.
- Klicken Sie auf
- Mit der Terraform-CLI bereitstellen:
- Gehen Sie zu GitHub.
- Klonen Sie das Repository, oder laden Sie es auf Ihren lokalen Computer herunter.
- Befolgen Sie die Anweisungen im README-Dokument.
Änderungslog
In diesem Log werden wichtige Änderungen aufgeführt:
| 27. Oktober 2021 | Thema Bereitstellen und Link zu Deployment-Code hinzugefügt. Außerdem wurde das Badge "Automatisierung verfügbar" hinzugefügt. |
| 5. August 2022 | Text ändert sich in Dokumentübersicht und Architekturthema.
Neuer Link zum Thema "Mehr entdecken" hinzugefügt. |