Erstellen Sie eine kontinuierliche Deployment-Pipeline mit Oracle Cloud Infrastructure DevOps
Die schnelle Bereitstellung von Software ist entscheidend für die effiziente Ausführung von Anwendungen in der Cloud. Oracle Cloud Infrastructure (OCI) DevOps bietet Entwicklern eine durchgängige End-to-End-Deployment-Erfahrung. OCI DevOps umfasst das Bereitstellen von Pipelines, um Ihren kontinuierlichen Software-Deployment-Prozess (CD) auf OCI-Plattformen zu automatisieren: Container Engine for Kubernetes (OKE), Functions und Compute-Instanzen.
Durch die Automatisierung von Software-Releases mit Pipeline-Bereitstellung wird die Entwicklerproduktivität gesteigert und Sie können Features häufiger und mit weniger Fehlern freigeben. Sie trägt dazu bei, Ausfallzeiten bei der Bereitstellung zu vermeiden und die Komplexität der Aktualisierung von Anwendungen zu automatisieren. OCI DevOps kann von beiden Kunden verwendet werden, die Workloads von On Premise oder anderen Clouds zu OCI migrieren und Kunden neue Anwendungen auf OCI entwickeln.
Architektur
In dieser Referenzarchitektur wird eine Beispielanwendung "Hello World" mit OCI DevOps bereitgestellt. Die Anwendung Hello World ist bereits erstellt und bereit für die Bereitstellung. Die Anwendung wird in drei verschiedenen Zielumgebungen bereitgestellt: OKE, Compute-Instanzen und Funktionen. Zur Vereinfachung des Prozesses wird Terraform für die Infrastrukturautomatisierung verwendet.
Das folgende Diagramm veranschaulicht diese Referenzarchitektur.

Beschreibung der Abbildung dev-ops-deployment-pipeline.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.
- DevOps project
Ein DevOps-Projekt ist eine logische Gruppierung von Ressourcen, die zur Implementierung Ihrer CI/CD-Workload (Continu Integration and Deployment) erforderlich sind. DevOps-Ressourcen können Artefakte, Deployment-Pipelines und Umgebungen sein. DevOps-Projekte erleichtern die Aktivierung von Logging, Überwachung und Benachrichtigungen für alle DevOps-Ressourcen.
- Deployment-Pipeline
Eine Deployment-Pipeline enthält die Anforderungen, die erfüllt sein müssen, um eine Reihe von Artefakten für eine Umgebung bereitzustellen. Pipelines enthalten Phasen, die die Bausteine einer Pipeline sind. Eine Pipeline kann mehrere Phasen haben, die seriell oder parallel ausgeführt werden, sodass Sie den Ablauf und die Logik Ihres Software-Release steuern können.
- BereitstellungsphasenPhasen 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: Benutzerdefinierte Aufgaben und Integration ausführen, 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. Beim Erstellen eines Artefakts müssen Sie Oracle DevOps über den Quellspeicherort des eigentlichen Artefakts informieren. DevOps unterstützt Repositorys der OCI Container Image Registry und der OCI Artifact Registry.
- Artefakt-Repository
Mit dem Artefakt-Repository werden Repositorys erstellt, um ähnliche Artefakte zu gruppieren. Nachdem das Repository erstellt wurde, können Artefakte in sie hochgeladen werden. Diese Artefakte sind eine Sammlung von Textdateien, Binärdateien und Deployment-Manifesten, die an die Ziel-Deployment-Umgebung geliefert 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): Oracle Container Engine for Kubernetes ist 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 starten, die Ihren Ressourcenanforderungen für CPU, Arbeitsspeicher, Netzwerkbandbreite und Speicher entsprechen.
- Funktionen: Oracle Functions ist eine vollständig verwaltete, mehrmandantenfähige, hochskalierbare, bedarfsgesteuerte Functions-as-a-Service-Plattform. Sie basiert auf OCI der Unternehmensklasse 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 mit minimalen Ressourcen, um Compute-Hosts in den OKE-Clusterknoten zu hosten. 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 Oracle 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.
- OKE
Diese Architektur wird als Zielumgebung im OKE-Cluster bereitgestellt. 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.
- Funktionen
Wenn Sie die Architektur für das Deployment in einer OCI-Funktion auswählen, werden in Ihrem Mandanten eine neue Functions-Anwendung und -Funktion erstellt.
- Instanzgruppe
Wenn Sie sich für die Architektur entscheiden, die in einer Instanzgruppe bereitgestellt werden soll, haben Sie neue Compute-Instanzen Ihrer Wahl zur Ausprägung, die in Ihrem Mandanten erstellt wurden.
- 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 Registry auch als öffentliche Docker-Registry verwenden, sodass jeder Benutzer mit Internetzugriff und Kenntnis der entsprechenden URL Images aus öffentlichen Repositorys in Oracle Cloud abrufen kann.
- Artefaktregistrierung
Diese Architektur erstellt ein Artefakt für die Software und Konfiguration, die von einem Instanzgruppen-, OKE- und Functions-Deployment verwendet werden. Die Architektur erstellt ein Artefakt-Registry-Repository zur internen Verwendung. Softwarebinärdateien, Text- und Deployment-Konfigurationen werden in das Artefakt-Registry-Repository hochgeladen und daraus heruntergeladen.
Überlegungen
Beachten Sie beim Deployment dieser Referenzarchitektur die folgenden Punkte.
- DevOps-unterstützte Deployments
DevOps unterstützt Deployments in OKE, Compute-Hosts und Funktionen. Diese Architektur wird in einem OKE-Cluster bereitgestellt. Sie sollten das Deployment für andere Endpunkte basierend auf den Anforderungen in Erwägung ziehen.
- Linux-Support
Nur Linux-Hosts werden für Instanzgruppen-Deployments in Compute-Instanzen unterstützt.
- Bereitgestellte Artefakte
Artefakte, die mit DevOps bereitgestellt werden sollen, müssen in einer OCI-Artefakt-Registry oder einem Repository der Container-Image-Registry enthalten sein.
- Anwendungen gruppieren
Als Best Practice gruppieren Sie jede Anwendung und alle zugehörigen Microservices in einem einzelnen Projekt.
Bereitstellen
Der Terraform-Code für diese Referenzarchitektur ist als Beispielstacks in Oracle Cloud Infrastructure Resource Manager verfügbar. Sie können den Code auch aus GitHub herunterladen und an Ihre spezifischen Anforderungen anpassen.
- Mit dem Beispielstack in Oracle Cloud Infrastructure Resource Manager bereitstellen:
- Klicken Sie auf die Schaltfläche "Bereitstellen", um auf den Resource Manager zuzugreifen:
Oracle Container Engine for Kubernetes 
Instanzgruppe 
Funktionen 
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 die Schaltfläche "Bereitstellen", um auf den Resource Manager zuzugreifen:
- Mit dem Terraform-Code in GitHub bereitstellen:
- Gehen Sie zu GitHub.
- Klonen Sie das Repository, oder laden Sie es auf Ihren lokalen Computer herunter.
- Befolgen Sie die Anweisungen im Dokument
README.