In diesem Dokument wird beschrieben, wie Sie die Analyse für Ihre Bereitstellungspipeline konfigurieren, wenn Sie Google Cloud Observability als Überwachungssystem verwenden.
Wenn Sie einen anderen Monitoring-Anbieter verwenden, müssen Sie eine benutzerdefinierte Analyse definieren. Dazu gehört das Erstellen eines Containers zum Aufnehmen und Auswerten von Messwerten und anderen Daten von Ihrem Anbieter.
Hinweis
-
Melden Sie sich in Ihrem Google-Konto an.
Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Prüfen Sie, ob Sie die Berechtigungen haben, die für diese Anleitung erforderlich sind.
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
Aktivieren Sie die Compute Engine API und die Cloud Deploy API:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollengcloud services enable clouddeploy.googleapis.com
compute.googleapis.com -
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Prüfen Sie, ob Sie die Berechtigungen haben, die für diese Anleitung erforderlich sind.
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
Aktivieren Sie die Compute Engine API und die Cloud Deploy API:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollengcloud services enable clouddeploy.googleapis.com
compute.googleapis.com
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Konto für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Verwenden von Analysejobs benötigen:
- Cloud Deploy Runner (
roles/clouddeploy.jobRunner) - Betrachter von Monitoring-Benachrichtigungen (
roles/monitoring.alertPolicyViewer) - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Bitten Sie Ihren Administrator, dem Cloud Deploy-Dienstkonto die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, damit das Cloud Deploy-Dienstkonto die erforderlichen Berechtigungen zum Erstellen und Verwenden von Automatisierungen hat:
- IAM Service Account User (
roles/iam.serviceAccountUser) - Cloud Deploy-Releaser (
roles/clouddeploy.releaser) - Cloud Deploy-Operator (
roles/clouddeploy.operator)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Ihr Administrator kann dem Cloud Deploy-Dienstkonto möglicherweise auch die erforderlichen Berechtigungen über benutzerdefinierte Rollen oder andere vordefinierte Rollen erteilen.
Analyse in Cloud Deploy einrichten
Die Konfiguration der Bereitstellungsanalyse umfasst die folgenden Schritte:
Führen Sie Ihre Pipeline aus, um die Analyse durchzuführen.
Benachrichtigungsrichtlinien definieren
Sie definieren Benachrichtigungsrichtlinien, um Messwerte von Google Cloud Observability zu erhalten. In einer Google Cloud Observability-Benachrichtigungsrichtlinie wird beschrieben, wann und wie Sie benachrichtigt werden möchten, wenn Überwachungsdaten bestimmte Kriterien erfüllen.
Bei der Cloud Deploy-Analyse werden diese Benachrichtigungen verwendet, um auf die Umstände zu reagieren, die durch die Benachrichtigungen angegeben werden.
Sie können beispielsweise eine Benachrichtigungsrichtlinie für Ihre Anwendung in der Produktion einrichten, um eine Benachrichtigung zu senden, wenn die HTTP-Antwortlatenz zu hoch ist. Basierend auf dieser Benachrichtigung kann Ihr Analysejob eine repairRolloutRule-Automatisierung auslösen, um ein Rollback der Version durchzuführen.
Sie können beispielsweise eine ähnliche Benachrichtigungsrichtlinie für Ihre Anwendung erstellen, die in Ihrer Staging-Umgebung bereitgestellt wird. Wenn während der Ausführung des Analysejobs keine Benachrichtigung ausgelöst wird, kann dieser Job eine promoteReleaseRule-Automatisierung auslösen, um den Release in die Produktion zu übertragen.
Analyse erstellen
Wenn Sie einen Analysejob für die Bereitstellungspipeline Ihrer Anwendung erstellen möchten, konfigurieren Sie die Analyse in der Konfiguration für die Pipeline und wenden Sie dann die Konfigurationsdatei an.
Analysejob konfigurieren
In diesem Abschnitt wird beschrieben, wie Sie einen Cloud Deploy-Analysejob für die Verwendung mit Google Cloud Observability konfigurieren.
Ihr Analysejob wird als Teil der Definition der Bereitstellungspipeline in einem strategy-Abschnitt konfiguriert. Das kann in jeder Strategie, canary oder standard, der Fall sein. Wenn Sie die Analyse pro Phase konfigurieren möchten, verwenden Sie ein benutzerdefiniertes Canary-Release (strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis).
Ein Analysejob besteht aus den folgenden Elementen:
Eine Dauer
Diese Dauer gibt an, wie lange der Analysejob ausgeführt wird. Wenn der Zeitraum abläuft und keine Benachrichtigungen von Google Cloud Observability erkannt werden, gilt die Analyse als erfolgreich und der Roll-out wird fortgesetzt.
Eine oder mehrere Prüfungen, die den Benachrichtigungsrichtlinien in Ihrem Monitoring-System entsprechen
Jede Prüfung umfasst Folgendes:
Eine ID
Eine oder mehrere Benachrichtigungsrichtlinien
Das heißt, Verweise auf eine oder mehrere Google Cloud Observability-Benachrichtigungsrichtlinien.
- Ein oder mehrere Labels, mit denen eine bestimmte Benachrichtigungsrichtlinie identifiziert wird. Da eine Google Cloud Observability-Benachrichtigungsrichtlinie viele Anwendungen überwachen kann, können wir mit diesen Labels die Prüfung auf eine oder mehrere bestimmte Anwendungen beschränken.
Sie können Systemparameter als Schlüssel für Labels verwenden.
Im Folgenden finden Sie die Syntax zum Konfigurieren eines Analysejobs bei Verwendung einer standard-Bereitstellungsstrategie:
strategy:
standard:
analysis:
duration: DURATION
googleCloud:
alertPolicyChecks:
- id: CHECK_ID
alertPolicies:
- [ALERT_POLICY_ID]
labels:
[KEY: VALUE]
Wobei:
DURATIONGibt an, wie lange der Analysejob ausgeführt werden soll (in Sekunden). Nach Ablauf der Dauer ist der Job abgeschlossen. Wenn die Analyse fehlschlägt (der Container gibt einen Exit-Code ungleich null zurück), wird der Job vor Ablauf der Dauer beendet (
FAILED).CHECK_IDDie ID für einen einzelnen Check in Ihrer Analyse. Jede ID muss innerhalb dieses Analysejobs eindeutig sein. Ein Analysejob kann einen oder mehrere Checks enthalten.
ALERT_POLICY_IDDie Richtlinien-ID der Google Cloud Observability-Benachrichtigungsrichtlinie, die Sie für die Prüfung verwenden. Sie finden die ID der Benachrichtigungsrichtlinie, indem Sie
gcloud monitoring policies listausführen. Sie benötigen die vollständig qualifizierte ID, die so aussieht:projects/project-redacted/alertPolicies/01234567890123456789Möglicherweise enthält die zurückgegebene ID nach der Richtlinien-ID
/conditions/13842666848149128276. Sie darf nicht Teil der Richtlinien-ID sein.KEYundVALUEEin Schlüssel/Wert-Paar für ein Label, mit dem nur bestimmte Benachrichtigungen berücksichtigt werden. Sie können beispielsweise ein Label verwenden, damit bei einer Prüfung nur Benachrichtigungen für eine bestimmte Arbeitslast berücksichtigt werden.
Sie können hier Systemparameter für Werte verwenden.
Hier ein Beispiel mit einem Systemparameter:
labels: service_name: '${{render.metadata.cloud_run.service.name}}'
Mit dieser Konfiguration wird ein Analysejob erstellt. Obwohl es mehrere Prüfungen gibt, wird mit dieser Konfiguration nur ein Job erstellt.
Wenn keine der konfigurierten Benachrichtigungsrichtlinien Benachrichtigungen sendet, wird dieser Job erfolgreich abgeschlossen und die Einführung wird fortgesetzt. Wenn eine Richtlinie eine Benachrichtigung auslöst, wird der Job mit dem Status FAILED angehalten und das Roll-out schlägt fehl (mit dem Status FAILED, sofern Sie den Jobfehler nicht ignorieren).
Konfigurationsdatei für die Bereitstellungspipeline anwenden
Wenn Sie eine Bereitstellungspipeline mit Ihrem Analysejob erstellen möchten, wenden Sie die Konfigurationsdatei mit dem folgenden Befehl an:
gcloud deploy apply FILE \
--region=REGION \
--project=PROJECT_ID
Ersetzen Sie Folgendes:
FILEMit dem Namen Ihrer Konfigurationsdatei für die Lieferpipeline,
clouddeploy.yamloder dem Namen, den Sie ihr gegeben haben.REGIONMit der Region, in der Sie die Bereitstellungspipeline erstellen.
PROJECT_IDMit der ID des Projekts, in dem Sie diese Lieferpipeline erstellen.
Sie haben jetzt eine Lieferpipeline in Ihrem Projekt und einen Analysejob, der Teil der Pipeline ist, wenn Sie ein Release erstellen.
Nächste Schritte
Das Konfigurationsschema für die Analyse finden Sie in der Cloud Deploy-Konfigurationsreferenz.
Weitere Informationen zu Google Cloud Observability-Benachrichtigungsrichtlinien