In diesem Dokument wird beschrieben, wie Sie die Analyse für Ihre Bereitstellungspipeline konfigurieren, wenn Sie Google Cloud Observability als Monitoring-System verwenden.
Wenn Sie einen anderen Monitoring-Anbieter verwenden, müssen Sie eine benutzerdefinierte Analyse definieren. Dazu gehört auch das Erstellen eines Containers, um Messwerte und andere Daten von Ihrem Anbieter aufzunehmen und auszuwerten.
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 die Abrechnung für Ihr Google Cloud -Projekt aktiviert ist.
Aktivieren Sie die Compute Engine API und die Cloud Deploy API, falls sie noch nicht aktiviert sind:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. 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 die Abrechnung für Ihr Google Cloud -Projekt aktiviert ist.
Aktivieren Sie die Compute Engine API und die Cloud Deploy API, falls sie noch nicht aktiviert sind:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. 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) - Monitoring Alert Viewer (
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-Dienstkontonutzer (
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:
Konfigurieren Sie einen Analysejob in Ihrer Lieferpipeline.
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 Benachrichtigungsrichtlinie von Google Cloud Observability wird beschrieben, wann und wie Sie benachrichtigt werden möchten, wenn Monitoringdaten bestimmte Kriterien erfüllen.
Die Cloud Deploy-Analyse verwendet diese Benachrichtigungen, um basierend auf den Umständen, die die Benachrichtigungen angeben, Maßnahmen zu ergreifen.
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 des Release durchzuführen.
Ein weiteres Beispiel: Sie können eine ähnliche Benachrichtigungsrichtlinie für Ihre Anwendung erstellen, die in Ihrer Staging-Umgebung bereitgestellt wird. Wenn während der Dauer des Analysejobs keine Benachrichtigung ausgelöst wird, kann dieser Job eine promoteReleaseRule-Automatisierung auslösen, um den Release in die Produktion zu überführen.
Analyse erstellen
Wenn Sie einen Analysejob für die Lieferpipeline Ihrer Anwendung erstellen möchten, konfigurieren Sie diese Analyse in der Konfiguration für die Pipeline und wenden Sie dann diese Konfigurationsdatei an.
Analysejob konfigurieren
In diesem Abschnitt wird beschrieben, wie Sie einen Cloud Deploy-Analysejob für die Verwendung mit Google Cloud Observability konfigurieren.
Der Analysejob wird als Teil der Definition der Bereitstellungspipeline in einer strategy-Strophe 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:
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 Monitoringsystem 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 Benachrichtigungsrichtlinie von Google Cloud Observability viele Anwendungen überwachen kann, können wir mit diesen Labels die Prüfung auf eine oder mehrere bestimmte Anwendungen beschränken.
Beachten Sie, dass Sie hier Systemparameter als Schlüssel für Labels verwenden können.
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 Exitcode ungleich null zurück), wird der Job vor Ablauf der Dauer beendet (
FAILED).CHECK_IDIst die ID für eine einzelne Prüfung in Ihrer Analyse. Jede ID muss innerhalb dieses Analysejobs eindeutig sein. Ein Analysejob kann einen oder mehrere Checks enthalten.
ALERT_POLICY_IDDie Richtlinien-ID für die Google Cloud Observability-Benachrichtigungsrichtlinie, die Sie für die Prüfung verwenden. Sie können die ID der Benachrichtigungsrichtlinie mit dem Befehl
gcloud monitoring policies listabrufen. Sie benötigen die voll qualifizierte ID, die so aussieht:projects/project-redacted/alertPolicies/01234567890123456789Möglicherweise enthält die zurückgegebene Kennung
/conditions/13842666848149128276nach der Richtlinien-ID. Geben Sie dies nicht als Teil der Richtlinien-ID an.KEYundVALUEEin Schlüssel/Wert-Paar für ein Label, das verwendet wird, um nur bestimmte Benachrichtigungen zu berücksichtigen. Sie können beispielsweise ein Label verwenden, damit bei einer Prüfung nur Benachrichtigungen zu einer bestimmten 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 der Roll-out 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, es sei denn, Sie ignorieren den Jobfehler).
Konfigurationsdatei für die Lieferpipeline anwenden
Um eine Bereitstellungspipeline mit Ihrem Analysejob zu erstellen, 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 Bereitstellungspipeline,
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 Bereitstellungspipeline erstellen.
Sie haben jetzt eine Bereitstellungspipeline in Ihrem Projekt und einen Analysejob, der Teil der Pipeline ist, wenn Sie einen 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