Blue/Green-Instanzgruppen-Deployment

Erstellen Sie die Deployment-Pipeline mit der Blue/Green-Releasestrategie für das Instanzgruppen-Deployment.

Voraussetzungen

Die Voraussetzungen lauten wie folgt:

  • Eine Deployment-Pipeline, zwei Instanzgruppenumgebungen für das Deployment (aktiv und Standby) und Artefakte. Artefakte müssen in der Artefakt-Registry gespeichert sein.

    Artefakte können eine Deployment-Konfigurationsdatei oder allgemeine Artefakte sein. Die Deployment-Konfigurationsdatei definiert die Befehle und Schritte, um das Anwendungspackageartefakt aus der angegebenen Artefakt-Registry herunterzuladen und im Dateisystem der Ziel-Compute-Instanz zu platzieren.

  • Ein in der Konsole konfigurierter Load Balancer und Listener für das Routing des Traffics. Sie können auch einen Test-Load-Balancer und -Listener nutzen, um die neue Version der Anwendung vor dem Wechsel des Produktionstraffics zu validieren.
  • Das Compute Instance Run Command-Plug-in muss auf der Instanz aktiviert sein, und das Plug-in muss ausgeführt werden. Um das Plug-in zu aktivieren, führen Sie die folgenden Schritte aus:
    1. Öffnen Sie in der Konsole das Navigationsmenü, und klicken Sie auf Compute. Klicken Sie unter Compute auf Instanzen.
    2. Wählen Sie eine Instanz in der Instanzgruppe aus, in der Artefakte bereitgestellt werden sollen.
      Hinweis

      DevOps unterstützt nur Instanzgruppen-Deployments in Oracle Linux und CentOS.
    3. Klicken Sie auf die Registerkarte Oracle Cloud Agent.
    4. Aktivieren Sie für das Compute Instance Run Command-Plug-in die Option Aktiviertes Plug-in (Status Aktiviert).

      Es dauert bis zu 10 Minuten, bis die Änderung wirksam wird.

      Achtung

      Vom Plug-in abhängige Funktionen, wie Monitoring, Autoscaling, Deployment oder BS-Management, sind nicht verfügbar, wenn das Plug-in deaktiviert ist.
      Achtung

      Um Anwendungen mit dem Compute Instance Run Command-Plug-in bereitzustellen, müssen Sie die Policys nach dem Least-Privilege-Prinzip ordnungsgemäß konfigurieren und verwalten. Weitere Informationen finden Sie unter Befehle auf einer Instanz ausführen.

      Informationen zum Verwalten von Plug-ins finden Sie unter Plug-ins mit Oracle Cloud Agent verwalten. Informationen zur Fehlerbehebung finden Sie unter Fehler in Oracle Cloud Agent beheben.

  • Berechtigung zum Ausführen von Befehlen auf der Instanz. Weitere Informationen finden Sie in der erforderlichen Identity and Access Management-(IAM-)Policy

Informationen zum Erstellen dynamischer Gruppen und Policys für Deployment-Pipelines finden Sie unter Deployment-Pipeline-Policys. Weitere Informationen finden Sie unter DevOps-IAM-Policys.

Informationen zum Zugriff auf DevOps über die Oracle Cloud-Konsole, die REST-API und die CLI finden Sie unter Auf DevOps zugreifen.

    1. Öffnen Sie das Navigationsmenü, und klicken Sie auf Entwicklerservices. Klicken Sie unter DevOps auf Projekte.
    2. Wählen Sie ein Projekt und eine Deployment-Pipeline aus.
    3. Um der Pipeline eine Phase hinzuzufügen, klicken Sie auf das Plussymbol, und wählen Sie Phase hinzufügen aus.
    4. Wählen Sie als Phasentyp Blue/Green-Strategie aus, und klicken Sie auf Weiter.
    5. Wählen Sie Instanzgruppe als Deployment-Typ aus.
    6. Geben Sie einen Namen und eine Beschreibung für die Phase ein. Das Hinzufügen einer Beschreibung ist optional.
    7. Wählen Sie unter Umgebung A die Instanzgruppe aus, in der die Anwendung bereitgestellt ist. Wählen Sie unter Umgebung B eine andere Instanzgruppe aus, die mit Umgebung A identisch ist.
    8. Klicken Sie auf Artefakt auswählen, und wählen Sie die verfügbaren Deployment-Konfigurationsartefakte für Instanzgruppen aus, die bereitgestellt werden sollen.

      Die Deployment-Konfigurationsdatei definiert die Artefakte, die in die Instanz heruntergeladen werden sollen, sowie den Speicherort, an den die Artefakte kopiert werden müssen. Weitere Informationen finden Sie unter Deployment-Konfigurationsdatei.

    9. (Optional) Klicken Sie auf Artefakt auswählen, um weitere Artefakte hinzuzufügen, die während des Deployments in die Compute-Instanzen heruntergeladen werden.

      Diese zusätzlichen Artefakte dürfen nicht inline definiert sein.

    10. Klicken Sie auf Load Balancer auswählen.
      1. Wählen Sie die Region und das Compartment des Load Balancers aus.
      2. Wählen Sie einen Load Balancer in der verfügbaren Liste aus.

      Der Load Balancer verlagert den Traffic während des Deployments zwischen der aktiven und der Standbyumgebung. Weitere Informationen finden Sie unter Load-Balancer-Verwaltung.

    11. Um dem Load Balancer einen Listener hinzuzufügen, klicken Sie auf Listener wählen.

      Listener prüfen die IP-Adresse und den Listener-Port des Load Balancers auf eingehenden Traffic. Weitere Informationen finden Sie unter Listener-Verwaltung.

    12. Geben Sie einen Wert für den Backend-Port ein.

      Das ist der Port der Instanzen, auf denen die Anwendung ausgeführt wird.

    13. (Optional) Wählen Sie einen Test-Load-Balancer, einen Listener und einen Backend-Port aus, um die neue Anwendung vor dem Wechsel des Produktionsdatenverkehrs zu testen.

      Dadurch vermeiden Sie das Risiko, dass während der Produktion ein Deployment-Fehler auftritt.

    14. Die Rollout-Policy steuert die Rate und das Verhalten des Instanz-Rollouts in der gesamten Zielumgebung. Wählen Sie eine der folgenden Optionen aus:
      • Rollout nach Prozentsatz: Geben Sie einen Prozentsatz zwischen 1 und 100 ein. Dieser Wert steuert den maximalen Prozentsatz von Instanzen, die gleichzeitig bereitgestellt oder nicht ausgeführt werden.
      • Rollout nach Anzahl: Geben Sie den Anzahlwert ein. Dieser Wert steuert die maximale Anzahl von Instanzen, die gleichzeitig bereitgestellt oder nicht ausgeführt werden.
    15. (Optional) Geben Sie unter Verzögerung zwischen Batches eine Dauer in Sekunden ein.
    16. (Optional) Um der Pipeline Tags hinzuzufügen, klicken Sie auf Taggingoptionen anzeigen. Tagging ist ein Metadatensystem, mit dem Sie die Ressourcen in Ihrem Mandanten organisieren und verfolgen können.

      Wenn Sie über Berechtigungen zum Erstellen von Ressourcen verfügen, sind Sie auch berechtigt, Freiformtags hinzuzufügen.

      Um ein definiertes Tag hinzuzufügen, benötigen Sie Berechtigungen zum Verwenden des Tag-Namespace.

      Weitere Informationen finden Sie unter Ressourcentags.

    17. Klicken Sie Weiter.
    18. Sie können die Deployment-Ausführung validieren oder die Validierung nicht durchführen, indem Sie Kein Wert auswählen.

      Wählen Sie Benutzerdefinierte Logik über eine Funktion ausführen aus, um die Anwendung durch Aufrufen einer Funktion zu validieren. Geben Sie folgende Werte ein:

      1. Geben Sie einen Namen und eine Beschreibung für die Phase ein. Das Hinzufügen einer Beschreibung ist optional.
      2. Wählen Sie unter Umgebung eine vorhandene Funktion aus, die aufgerufen werden soll.

        Im schreibgeschützten Feld Funktionsname wird die Funktion angezeigt, die in der Pipeline aufgerufen wird.

      3. (Optional) Um Artefakte auszuwählen und der Phase hinzuzufügen, klicken Sie auf Artefakt auswählen.

        Wählen Sie eine vorhandene Artefaktressource im DevOps-Projekt aus. Das Artefakt muss einen generischen Dateityp (Universal File) sein. Parameter im Artefakt müssen im JSON-Format vorliegen und können Platzhalter enthalten. Wählen Sie beim Konfigurieren der Artefaktressource DevOps die Option Parametrisierung zulassen aus. Wenn Sie dieses Kontrollkästchen aktivieren, wird sichergestellt, dass die Platzhalter während des Deployments durch den Argumentwert ersetzt werden. Weitere Informationen finden Sie unter Parameter konfigurieren.

        Hier ist ein Beispiel für den Inhalt des generischen Artefakts, um zwei benutzerdefinierte Parameter und die zugehörigen Werte zu übergeben:
        • Parameter: test_name, app_version
        • Werte: {"test_name":"verify_production", "app_version":"${app_version}"}
      4. Wählen Sie unter Phasenausführungsmodus die asynchrone oder synchrone Ausführung aus.

        Wenn Sie Asynchron ausführen auswählen, ruft der Service die Funktion auf, wartet jedoch nicht, bis die Funktion abgeschlossen ist. Wenn Sie Synchron ausführen auswählen, ruft der Service die Funktion auf und wartet, bis die Funktion abgeschlossen ist.

      5. Deaktivieren oder aktivieren Sie die Validierung.

        Wenn die Validierung aktiviert ist, prüft der Service den Rückgabewert der Funktion. Der Rückgabewert ist ein UTF-8-Zeichenfolgenliteral, true oder false. Wenn der Rückgabewert true lautet, wird die Phase als Erfolgr. markiert. Andernfalls wird die Phase als Nicht erfolgreich markiert.

        Wenn die Validierung deaktiviert ist, prüft der Service den Rückgabewert nicht.

        Die Validierung erfolgt nur, wenn Sie die Option "Synchron ausführen" für den Phasenlaufmodus ausgewählt haben.

      6. (Optional) Um der Pipeline Tags hinzuzufügen, klicken Sie auf Taggingoptionen anzeigen. Tagging ist ein Metadatensystem, mit dem Sie die Ressourcen in Ihrem Mandanten organisieren und verfolgen können.

        Sie können einen Tag-Namespace auswählen oder ein Freiformtag hinzufügen. Geben Sie den entsprechenden Tagschlüssel und Tagwert ein. Sie können mehrere Tags hinzufügen.

    19. Sie können eine manuelle Genehmigung für das Deployment aktivieren oder deaktivieren. Wenn Sie eine Genehmigung aktivieren, geben Sie folgende Werte ein:
      1. Geben Sie einen Namen und eine Beschreibung für die Phase ein. Das Hinzufügen einer Beschreibung ist optional.
      2. Geben Sie die Anzahl der Genehmiger ein.
      3. (Optional) Um der Pipeline Tags hinzuzufügen, klicken Sie auf Taggingoptionen anzeigen. Tagging ist ein Metadatensystem, mit dem Sie die Ressourcen in Ihrem Mandanten organisieren und verfolgen können.

        Sie können einen Tag-Namespace auswählen oder ein Freiformtag hinzufügen. Geben Sie den entsprechenden Tagschlüssel und Tagwert ein. Sie können mehrere Tags hinzufügen.

    20. Um der Pipeline die Phase hinzuzufügen, klicken Sie auf Hinzufügen.

      In einem modalen Fenster wird der Status verschiedener Phasenkonfigurationen angezeigt, die Teil der Blue/Green-Deployment-Strategie für die Instanzgruppe sind. Sie können die Phasen "Blue/Green-Instanzgruppen-Deployment", Funktion aufrufen", "Genehmigung" und "Trafficwechsel" umfassen. Wenn die Validierung nicht erfolgreich ist, können Sie die spezifische Fehlermeldung für jede nicht erfolgreiche Phase prüfen und Korrekturmaßnahmen ergreifen.

      Wenn die Validierung erfolgreich war, können Sie die Deployment-Pipeline ausführen oder bei Bedarf weitere Phasen nacheinander oder parallel zur Pipeline hinzufügen.

  • Um eine Blue/Green-Phase der Instanzgruppe zu erstellen, führen Sie den Befehl create-deploy-compute-instance-group-blue-green-stage aus:

    oci devops deploy-stage create-deploy-compute-instance-group-blue-green-stage

    Erforderliche Parameter:

    • --environment-id-a
    • --environment-id-b
    • --deployment-spec-artifact-id
    • --rollout-policy
    • --pipeline-id
    • --production-load-balancer-config
    • --stage-predecessor-collection

    So rufen Sie Hilfe zu diesem Befehl ab:

    oci devops deploy-stage create-compute-instance-group-blue-green-stage -h

    Um eine Blue/Green-Trafficwechselphase der Instanzgruppe zu erstellen, führen Sie den Befehl create-compute-instance-group-blue-green-traffic-shift-stage aus:

    oci devops deploy-stage create-compute-instance-group-blue-green-traffic-shift-stage

    Erforderliche Parameter:

    • --compute-instance-group-blue-green-stage-id
    • --pipeline-id
    • --stage-predecessor-collection

    So rufen Sie Hilfe zu diesem Befehl ab:

    oci devops deploy-stage create-compute-instance-group-blue-green-traffic-shift-stage -h

    Um die Phase "Funktion aufrufen" zu erstellen, führen Sie den Befehl create-invoke-function-stage aus:

    oci devops deploy-stage create-invoke-function-stage

    Erforderliche Parameter:

    • --function-environment-id
    • --is-async
    • --is-validation-enabled
    • --pipeline-id
    • --stage-predecessor-collection

    So rufen Sie Hilfe zu diesem Befehl ab:

    oci devops deploy-stage create-invoke-function-stage -h

    Um eine Load-Balancer-Trafficwechselphase zu erstellen, führen Sie den Befehl create-load-balancer-traffic-shift-stage aus:

    oci devops deploy-stage create-load-balancer-traffic-shift-stage

    Erforderliche Parameter:

    • --blue-backend-ips
    • --green-backend-ips
    • --load-balancer-config
    • --traffic-shift-target
    • --rollout-policy
    • --pipeline-id
    • --stage-predecessor-collection

    So rufen Sie Hilfe zu diesem Befehl ab:

    oci devops deploy-stage create-load-balancer-traffic-shift-stage -h

    Um eine Phase für die manuelle Genehmigung zu erstellen, führen Sie den Befehl create-manual-approval-stage aus:

    oci devops deploy-stage create-manual-approval-stage

    Erforderliche Parameter:

    • --approval-policy
    • --pipeline-id
    • --stage-predecessor-collection

    So rufen Sie Hilfe zu diesem Befehl ab:

    oci devops deploy-stage create-manual-approval-stage -h

    Um alle Befehle für deploy-stage abzurufen:

    oci devops deploy-stage -h
  • Um eine Phase zu erstellen, verwenden Sie den Vorgang CreateDeployStage. Wählen Sie, je nachdem, welche Phasen Sie der Pipeline hinzufügen möchten, die folgenden Werte für den Phasentyp aus:

    • Blue/Green-Deployment-Phase der Compute-Instanzgruppe: COMPUTE_INSTANCE_GROUP_BLUE_GREEN_DEPLOYMENT
    • Blue/Green-Trafficwechselphase der Compute-Instanzgruppe: COMPUTE_INSTANCE_GROUP_BLUE_GREEN_TRAFFIC_SHIFT
    • Phase "Funktion aufrufen": INVOKE_FUNCTION
    • Phase für manuelle Genehmigung: MANUAL_APPROVAL