Mit OCI DevOps können Sie Helm-Diagramme mit Provenance- und Containerinstanzen über die Shell-Phase bereitstellen

Eine schnelle Bereitstellung von Software ist für die effiziente Ausführung Ihrer Anwendungen in der Cloud von wesentlicher Bedeutung. Der Oracle Cloud Infrastructure DevOps-(OCI DevOps-)Service bietet Entwicklern eine CI/CD-(Continuous Integration and Deployment-)Plattform.

Mit dem OCI DevOps-Service können Sie Software und Anwendungen einfach in Oracle Cloud erstellen, testen und bereitstellen. OCI DevOps-Pipelines zum Erstellen und Bereitstellen reduzieren Änderungsfehler und reduzieren die Zeit, die Sie für das Erstellen und Bereitstellen von Releases aufgewendet haben.

Der OCI DevOps-Service stellt außerdem private Git-Repositorys zur Speicherung Ihres Codes bereit und unterstützt Verbindungen zum externen Code repositories.Whether, mit dem Sie Workloads zu Oracle Cloud Infrastructure (OCI) migrieren, von On Premise oder anderen Clouds oder zur Entwicklung neuer Anwendungen auf OCI verwenden können, um den Lebenszyklus der Softwarebereitstellung zu vereinfachen.

Architektur

In dieser Referenzarchitektur stellen wir ein cloudnatives Anwendungs-Deployment mit OCI DevOps bereit. Oracle Container Engine for Kubernetes-(OKE-) und OCI-Containerinstanzen werden als Deployment-Ziel für OCI DevOps verwendet.

Die wichtigsten Funktionen dieser Referenzarchitektur sind:

  • Helm-Diagramm mit Provenance- und Integritätsprüfungen bereitstellen: Helm-Package signieren und die Integrität anhand von GNU Privacy Guard-Schlüsseln über Deployment-Pipelines validieren.
  • Shell-Phase für das Deployment der Anwendung in OCI-Containerinstanzen verwenden: Mit der Shell-Phase können Sie benutzerdefinierte Befehle in der Deployment-Pipeline ausführen. Diese Phase kann zu jedem Zeitpunkt in der Deployment-Pipeline hinzugefügt werden. In dieser Referenzarchitektur verwenden wir die Shell-Phase, um eine Anwendung in OCI-Containerinstanzen bereitzustellen.
  • Dateibasierte Ausführung der OCI-Build-Pipeline auslösen: In OCI DevOps kann eine Build-Ausführung automatisch ausgelöst werden, wenn Sie Ihre Änderungen in einem Code-Repository festschreiben. Hiermit können Sie das Ausschließen und Einbeziehen einer Gruppe von Dateien/Ordnern festlegen, an denen die Build Pipelines während einer Codeänderung ausgeführt werden.
  • Verwaltete Build-Phasen mit benutzerdefiniertem Build Runner ausführen: Mit dem benutzerdefinierten Build Runner können Sie die gewünschte OCPU und den gewünschten Arbeitsspeicher für den Build Runner festlegen, um die erforderlichen Ressourcen für die Ausführung von Build-Anweisungen zu unterstützen.
  • Terraform mit Remotestatus-Backend von der OCI-Build-Pipeline DevOps verwenden: Der mit S3 kompatible OCI Object Storage-Bucket wird als Remote-Backend zum Speichern der Terraform-Status verwendet. Das Terraform wird aus der OCI-Build-Pipeline ausgeführt, die mit dem Resource Principal aktiviert ist, sodass der Client den Ressourcenzugriff basierend auf Policys kontrollieren kann.

Das folgende Diagramm veranschaulicht diese Referenzarchitektur.



OCI-devops-helm-shell-oracle.zip

Die Architektur umfasst die folgenden Komponenten:

  • Mandant

    Ein Mandant ist eine sichere und isolierte Partition, die Oracle in Oracle Cloud einrichtet, wenn Sie sich für Oracle Cloud Infrastructure registrieren. Sie können Ihre Ressourcen in Oracle Cloud in Ihrem Mandanten erstellen, organisieren und verwalten. Ein Mandant ist synonym zu einem Unternehmen oder einer Organisation. In der Regel verfügt ein Unternehmen über einen einzelnen Mandanten und spiegelt dessen Organisationsstruktur in diesem Mandanten wider. Ein einzelner Mandant ist in der Regel mit einem einzelnen Abonnement verknüpft, und ein einzelnes Abonnement hat in der Regel nur einen Mandanten.

  • Region

    Eine Oracle Cloud Infrastructure-Region ist ein lokalisierter geografischer Bereich, der mindestens ein Data Center enthält, das als Availability-Domains bezeichnet wird. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie voneinander trennen (über Länder oder sogar Kontinente).

  • Compartment

    Compartments sind regionsübergreifende logische Partitionen in einem Oracle Cloud Infrastructure-Mandanten. Mit Compartments können Sie Ihre Ressourcen in Oracle Cloud organisieren, den Zugriff auf die Ressourcen kontrollieren und Nutzungsquoten festlegen. Um den Zugriff auf die Ressourcen in einem bestimmten Compartment zu kontrollieren, definieren Sie Policys, mit denen angegeben wird, wer auf die Ressourcen zugreifen kann und welche Aktionen sie ausführen können.

  • Code-Repository

    Private Git-Repositorys können vom OCI DevOps-Service gehostet werden. Sie können Quellcode mit den OCI DevOps-Code-Repositorys speichern, verwalten und entwickeln.

  • Build- Pipeline

    Die Build-Pipeline definiert eine Gruppe von Phasen für den Build-Prozess: Softwareartefakte erstellen, testen und kompilieren, Artefakte in OCI-Repositorys bereitstellen und optional ein Deployment auslösen.

  • Managed Build-Phase

    Die verwaltete Build-Phase erstellt und testet Ihre Software mit einem schnellen und skalierbaren, vom OCI DevOps-Service verwalteten Build Runner, der Build-Anweisungen ausführt. In dieser Referenzarchitektur verwenden wir eine Build-Phase mit Standardausprägungen (vordefinierte OCPUs und Arbeitsspeicher) und benutzerdefinierten Ausprägungen (benutzerdefinierte Werte von OCPUs und Arbeitsspeicher).

  • Artefaktphase übermitteln

    Die Phase "Artefakt übermitteln" ist eine der Build-Phasen, mit denen ein Artefakt oder Containerimage in die OCI-Container-Registry oder OCI-Artefakt-Registry übertragen werden kann, und die Phase des verwalteten Builds posten.

  • Pipeline bereitstellen

    Eine Sequenz von Schritten für das Deployment einer Gruppe von Artefakten in einer Zielumgebung. Eine Deployment-Pipeline enthält Phasen, die sequenziell oder parallel ausgeführt werden.

  • Bereitstellungsphase für Helm-Diagramm

    Helm ist ein Open-Source-Packagemanager für Kubernetes, der die Möglichkeit bietet, für Kubernetes entwickelte Software zu teilen, zu verpacken und bereitzustellen. Der OCI DevOps-Service unterstützt das Deployment von Helm-Diagrammen in Container Engine for Kubernetes-(OKE-)Clustern. Die Bereitstellungsphase des Helm-Diagramms prüft auch die Integrität des Helm-Diagramms vor dem Deployment.

  • Shell-Deployment-Phase

    Mit der Shell-Phase können Sie benutzerdefinierte Befehle in der Deployment-Pipeline ausführen. Diese Phase kann zu jedem Zeitpunkt in der Deployment-Pipeline hinzugefügt werden.

  • Containerinstanzen

    OCI Container Instances ist ein Serverless Compute Service, mit dem Sie Container schnell und einfach ausführen können, ohne Server zu verwalten. Containerinstanzen führen Ihre Container auf serverlosem Compute aus, das für Container-Workloads optimiert ist und dieselbe Isolation wie virtuelle Maschinen bietet.

  • Vault

    Mit Oracle Cloud Infrastructure Vault können Sie die Verschlüsselungsschlüssel, die Ihre Daten schützen, und die Secret-Zugangsdaten, mit denen Sie den Zugriff auf Ihre Ressourcen in der Cloud sichern, zentral verwalten. Mit dem Vault-Service können Sie Vaults, Schlüssel und Secrets erstellen und verwalten.

  • Objektspeicher

    Oracle Cloud Infrastructure Object Storage ist eine internetbasierte, leistungsstarke Speicherplattform, die eine zuverlässige und kostengünstige Dauerhaftigkeit von Daten bietet. Object Storage Service kann eine unbegrenzte Menge unstrukturierter Daten eines beliebigen Inhaltstyps speichern, darunter Analysedaten und umfangreiche Inhalte, wie Bilder und Videos.

  • Logging

    Der Oracle Cloud Infrastructure Logging-Service ist eine hoch skalierbare und vollständig verwaltete zentrale Stelle für alle Logs in Ihrem Mandanten. Logging bietet Zugriff auf Logs aus Oracle Cloud Infrastructure-Ressourcen. Diese Logs enthalten wichtige Diagnoseinformationen, die beschreiben, wie Ressourcen ausgeführt werden und wie auf sie zugegriffen wird.

  • Benachrichtigungen

    Mit dem Oracle Cloud Infrastructure Notifications-Service können Sie Kommunikationskanäle für das Veröffentlichen von Nachrichten mithilfe von Themen und Abonnements einrichten.

Empfehlungen

Verwenden Sie die folgenden Empfehlungen als Ausgangspunkt. Ihre Anforderungen können von der hier beschriebenen Architektur abweichen.
  • 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 innerhalb des standardmäßigen privaten IP-Adressraums.

    Wählen Sie CIDR-Blöcke aus, die sich mit keinem anderen Netzwerk (in Oracle Cloud Infrastructure, Ihrem On-Premise-Data Center oder einem anderen Cloud-Provider) überschneiden, zu dem Sie private Verbindungen einrichten möchten.

    Nachdem Sie ein VCN erstellt haben, können Sie die zugehörigen CIDR-Blöcke ändern, hinzufügen und entfernen.

    Berücksichtigen Sie bei der Entwicklung der Subnetze Ihren Verkehrsfluss und Ihre Sicherheitsanforderungen. Hängen Sie alle Ressourcen innerhalb einer bestimmten Ebene oder Rolle an dasselbe Subnetz an, das als Sicherheitsgrenze dienen kann.

  • Compute-Ausprägungen

    Diese Architektur verwendet ein Oracle Linux-BS-Image mit einer E4-Flex-Ausprägung mit Mindestressourcen zum Hosten von Compute-Hosts oder virtuellen Knoten in den OKE-Clusterknoten. Wenn Ihre Anwendung mehr Speicher oder Cores benötigt, können Sie eine andere Ausprägung auswählen.

  • Artifact Registry

    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.

  • Containerimage-Registry

    Diese Architektur stellt Registry als private Docker-Registry zur internen Verwendung 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.

  • Integrität und Sicherheit

    Hier gibt es mehrere Schwerpunkte, um die Sicherheit und Integrität der Anwendungssoftware sicherzustellen. OCI Vault wird verwendet, um die Helm-Diagrammverschlüsselung zu speichern und die Validierung des Diagramms vor dem Deployment sicherzustellen. Die Registrys (Artefakt und Container) stellen sicher, dass die Anwendungsimages und -artefakte gespeichert und mit der erforderlichen Sicherheit gespeichert werden. Mehrere Sicherheitsregeln und erforderliche Routingregeln werden über das virtuelle Cloud-Netzwerk von OCI erzwungen, um nur den erforderlichen Netzwerktraffic für Anwendung und Infrastruktur zuzulassen. Außerdem ist der Objektspeicher als privat markiert, sodass der Datenverkehr gesichert und kontrolliert wird.

  • Objektspeicher

    Mit Object Storage können Sie schnell auf große Mengen an strukturierten und unstrukturierten Daten eines beliebigen Inhaltstyps zugreifen, darunter Datenbankbackups, Analysedaten und umfangreiche Inhalte, wie Bilder und Videos. Sie können Daten sicher und geschützt speichern und dann direkt aus dem Internet oder aus der Cloud-Plattform abrufen. Sie können den Speicher nahtlos skalieren, ohne dass sich die Performance oder Servicezuverlässigkeit verschlechtert. Verwenden Sie Standardspeicher für "Hot"-Speicher, auf den Sie schnell, sofort und häufig zugreifen müssen. Verwenden Sie Archivspeicher für "kalten" Speicher, den Sie über lange Zeiträume aufbewahren und selten oder selten darauf zugreifen. Der Anwendungscode wird in einem privat gehosteten Repository festgelegt. Zusätzlich zu allen erforderlichen Ressourcen werden OCI Identity Policys entsprechend durchgesetzt.

Überlegungen

Berücksichtigen Sie diese Faktoren, wenn Sie den OCI DevOps-Service für das Deployment einer Plattform für kontinuierliche Integration und Bereitstellung (CI/CD) verwenden.

  • Von DevOps unterstützte Deployments

    DevOps unterstützt Deployments in Oracle Container Engine for Kubernetes (OKE), Compute-Hosts und OCI Functions. Diese Architektur wird in einem OKE-Cluster bereitgestellt und verwendet eine Shellphase für andere mögliche Ziele. Sie sollten das Deployment auf Basis Ihrer spezifischen Anforderungen an andere Endpunkte durchführen.

  • Bereitgestellte Artefakte

    Die Artefakte, die mit DevOps bereitgestellt werden sollen, müssen sich in einer OCI Artifacts Registry oder einem Containerimage-Registry-Repository befinden.

  • Anwendungen gruppieren

    Als Best Practice sollten Sie jede Anwendung und alle zugehörigen Microservices in einem einzigen Projekt zusammenfassen.

Bereitstellen

Der Terraform-Code für diese Referenzarchitektur ist als Beispiel-Stack in Oracle Cloud Infrastructure Resource Manager verfügbar. Sie können den Code auch von GitHub herunterladen und an Ihre spezifischen Anforderungen anpassen.

  • Mit dem Beispielstack in Oracle Cloud Infrastructure Resource Manager bereitstellen:
    1. Klicken Sie auf In Oracle Cloud bereitstellen

      Wenn Sie noch nicht angemeldet sind, geben Sie die Mandanten- und Benutzerzugangsdaten ein.

    2. Wählen Sie die Region aus, in der Sie den Stack bereitstellen möchten.
    3. Befolgen Sie die Anweisungen auf dem Bildschirm, um den Stack zu erstellen.
    4. Nachdem Sie den Stack erstellt haben, klicken Sie auf Terraform-Aktionen, und wählen Sie Planen aus.
    5. 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 dann die Aktion Planen erneut aus.

    6. Wenn keine weiteren Änderungen erforderlich sind, kehren Sie zur Seite "Stackdetails" zurück, klicken Sie auf Terraform-Aktionen, und wählen Sie Anwenden aus.
  • Mit dem Terraform-Code in GitHub bereitstellen:
    1. Gehen Sie zu GitHub.
    2. Klonen Sie das Repository, oder laden Sie es auf den lokalen Rechner herunter.
    3. Befolgen Sie die Anweisungen im Dokument README.

Mehr erfahren

Weitere Informationen zu den Features dieser Referenzarchitektur finden Sie in diesen zusätzlichen Ressourcen.

Bestätigungen

  • Author: Rahul M R