Bereitstellung prüfen

In diesem Dokument wird beschrieben, wie Sie eine Cloud Deploy-Bereitstellung prüfen.

Sie können Cloud Deploy so konfigurieren, dass überprüft wird, ob eine Anwendung, die Sie auf einem beliebigen Ziel bereitgestellt haben, ordnungsgemäß funktioniert. Die Überprüfung erfolgt mit Ihren eigenen Testbildern. Sie konfigurieren Cloud Deploy so, dass diese Tests nach Abschluss der Bereitstellung ausgeführt werden.

Wie funktioniert die Bereitstellungsüberprüfung?

  1. Sie konfigurieren ein oder mehrere Ziele in Ihrer Bereitstellungspipeline für die Bereitstellungsüberprüfung, indem Sie Aufgaben definieren, die ausgeführt werden sollen.

  2. Nachdem eine Anwendung bereitgestellt wurde, führt Cloud Deploy die Prüfaufgaben in der Cloud Deploy-Ausführungsumgebung aus.

    Der Erfolg oder Misserfolg der ausgeführten Tests gibt den Erfolg oder Misserfolg der Überprüfung an:

    • Ob die Überprüfung erfolgreich ist, wird durch den Exit-Code des Containers bestimmt.

      0 weist auf einen Erfolg hin. Ein Exit-Code ungleich null weist auf einen Fehler hin. Damit das erwartete Bestätigungsergebnis generiert wird, muss der Container mit dem entsprechenden Exit-Code beendet werden. Wenn im Rahmen der Bestätigung mehrere Container ausgeführt werden, müssen alle erfolgreich ausgeführt werden, damit die Bestätigung erfolgreich ist.

    • Wenn die Überprüfung fehlschlägt, schlägt auch die Einführung fehl.

    • Wenn eine Bereitstellung während der Überprüfung fehlschlägt, können Sie das anhand der Einführung sehen:

      Details zum Roll-out in der Google Cloud Console, einschließlich des Bestätigungsstatus

  3. Sie können eine fehlgeschlagene Bestätigung ignorieren oder wiederholen.

    Sie können auch einen laufenden Überprüfungsjob beenden.

Für die Überprüfung verwendete Komponenten

Die Rollout-Ressource enthält die folgenden Objekte, die die Bereitstellungsüberprüfung unterstützen:

  • Phase

    Die Sammlung von Vorgängen (Jobs) in einem Rollout, die logisch gruppiert sind, z. B. ein Deployment oder ein Deployment und eine Überprüfung.

  • Job

    Der spezifische Vorgang, der für einen Roll-out ausgeführt werden soll, z. B. „deploy“ (bereitstellen) oder „verify“ (überprüfen).

  • Jobausführung

    Der Joblauf ist ein untergeordnetes Element der Rollout-Ressource und eine Instanz eines Jobs, z. B. ein Bereitstellungsversuch.

Weitere Informationen zu Cloud Deploy-Ressourcen finden Sie unter Cloud Deploy-Dienstarchitektur.

Cloud Deploy für die Bereitstellungsprüfung konfigurieren

Um die Bereitstellungsüberprüfung für ein Cloud Deploy-Ziel zu aktivieren, fügen Sie einer bestimmten Ziel- oder Zielgruppe in einer Delivery-Pipeline-Progression eine verify-Stanza hinzu, wie in diesem Beispiel gezeigt:

apiVersion: deploy.cloud.google.com/v1
kind: DeliveryPipeline
metadata:
 name: my-demo-app
description: main application pipeline
serialPipeline:
 stages:
 - targetId: dev
   profiles: []
   strategy:
     standard:
       verify:
         tasks:
         - type: container
           image: "VERIFY_IMAGE"
           command: [COMMANDS_TO_RUN]
           args: [LIST_OF_ARGS]
           env: {VERIFY_TASK_ENV_MAP}

In diesem YAML-Code:

  • VERIFY_IMAGE

    Ist der Name des Images, das Sie für den Prüfjob ausführen möchten. Beispiel: us-central1-docker.pkg.dev/gcp-project-id-12345/my-repository/my-app:v1.2 für ein Artifact Registry-Image.

  • COMMANDS_TO_RUN

    Eine Liste der Einstiegspunkte, die in diesem Container ausgeführt werden sollen. "/bin/sh" ist ein typischer Befehl, der hier angegeben wird, um eine Shell aufzurufen.

  • LIST_OF_ARGS

    Eine Liste von Argumenten, die dem Befehl übergeben werden sollen. Dies ist eine durch Kommas getrennte Liste, wobei jedes Argument in Anführungszeichen gesetzt ist. Wenn Ihr COMMAND_TO_RUN "/bin/sh" ist, wäre eines der Argumente hier "-c" und ein anderes Argument wäre der gesamte Befehl, den Sie in der Shell ausführen möchten, die Sie aufrufen.

    Beispiel:

    command: ["/bin/sh"]
    args: ["-c", `echo "This command ran!"`]
    
  • VERIFY_TASK_ENV_MAP

    Eine Zuordnung von Umgebungsvariablen, die im Format KEY:VAL an den Container übergeben werden.

Der Überprüfungsvorgang wird in einer eigenen Ausführungsumgebung ausgeführt. Diese Ausführungsumgebung kann für VERIFY genauso konfiguriert werden wie für RENDER und DEPLOY.

Überprüfung für den Anwendungscluster ausführen

Die Bereitstellungsprüfung wird standardmäßig in der Cloud Deploy-Ausführungsumgebung ausgeführt. Sie können Skaffold auch so konfigurieren, dass die Überprüfung im selben Cluster ausgeführt wird, in dem Ihre Anwendung ausgeführt wird.

Damit Ihre Verifizierungscontainer im Cluster ausgeführt werden können, müssen Sie die Verifizierungscontainer im verify-Abschnitt in Ihrer skaffold.yaml konfigurieren. Für jeden definierten Container müssen Sie auch executionMode.kubernetesCluster festlegen.

verify:
- name:
  container:
    name:
    image:
    command:
    args:
  executionMode:
    kubernetesCluster:

Das folgende Beispiel zeigt einen verify-Abschnitt, der executionMode enthält, um den Bestätigungscontainer im Anwendungscluster aufzurufen:

verify:
- name: integration-test-container
  container:
    name: integration-test-container
    image: integration-test-container
  executionMode:
    kubernetesCluster: {}

Außerdem müssen Sie die verify-Stanza in der Konfiguration Ihrer Bereitstellungspipeline auf true setzen.

Im Folgenden finden Sie ein Beispiel für die Definition einer Bereitstellungspipeline, bei der die Überprüfung für das Ziel dev aktiviert ist.

apiVersion: deploy.cloud.google.com/v1
kind: DeliveryPipeline
metadata:
 name: my-demo-app
description: main application pipeline
serialPipeline:
 stages:
 - targetId: dev
   profiles: []
   strategy:
     standard: