Mikrodienste

In diesem Dokument werden Mikrodienste vorgestellt und die von Cloud Monitoring unterstützten Mikrodienste beschrieben.

Der Begriff Mikrodienst hat für unterschiedliche Personen eine unterschiedliche Bedeutung. Für manche entspricht der Mikrodienst den "Feldern" auf einem Whiteboard, wenn es um die Systemarchitektur geht. Andere beziehen sich auf eine eher formale Definition. Diese beschreibt einen im Netzwerk adressierbaren Endpunkt mit einer Funktionalität, die durch seine externe API bestimmt wird und die unabhängig von anderen Mikrodiensten im System entwickelt, bereitgestellt und ausgeführt werden kann. Für wieder andere basiert das Verständnis auf dem Mikrodienstkonzept ihrer Entwicklungsplattform, wie etwa für die App Engine-Dienste oder den Cloud Service Mesh-Dienst.

Unser Ziel ist aber keine allgemeingültige Definition eines Mikrodienstes, die für alle verbindlich ist. Stattdessen möchten wir Ihnen helfen, Ihre Systeme bei der digitalen Transformation im großen Maßstab zu überwachen und dafür dienstorientierte Monitoring-Tools bereitzustellen, die Sie und Ihre Architektur unterstützen. Unser Ziel ist es, gemeinsam mit Ihnen Best Practices für Monitoring-Systeme zu entwickeln, ohne eine einzige Codezeile ändern zu müssen.

Zum Monitoring Ihrer Mikrodienste führt Cloud Monitoring folgende Schritte aus:

  • Erkennt nach Möglichkeit automatisch Mikrodienste
  • Bietet eine interaktive Benutzeroberfläche zum Definieren von Google Kubernetes Engine- und Cloud Run-basierten Mikrodiensten
  • Bietet eine vollständig benutzerdefinierte Lösung für maximale Flexibilität

Automatisch erkannte Mikrodienste

Einige moderne Entwicklungs-Frameworks bieten geprüfte Konzepte eines Mikrodiensts. In Architekturen mit solchen Frameworks erkennt Cloud Monitoring automatisch, wann Dienste bereitgestellt, aktualisiert oder gelöscht werden. Monitoring gelingt diese Erkennung durch eine konstante Analyse des Metadatenstreams, der von einem Projekt generiert wird.

Cloud Monitoring kann automatisch Mikrodienste erkennen, die mit den folgenden Entwicklungs-Frameworks erstellt wurden:

  • App Engine: App Engine ist ein gutes Beispiel für einen Mikrodienst. Dieser wird als App Engine-Dienst (ehemals App Engine-Modul) bezeichnet. Jeder Dienst unterscheidet sich durch seine spezielle Konfigurationsdatei app.yaml.

  • Cloud Service Mesh: Cloud Monitoring unterstützt Service Meshes, die in einem einzelnen GKE-Cluster erstellt wurden. In einer solchen Konfiguration entspricht ein Cloud Service Mesh-Dienst direkt einem GKE-Dienst. Alle Cloud Service Mesh-Dienste, sowohl solche, die von Nutzern als auch solche, die vom System verwaltet werden, werden automatisch erkannt.

Dashboards für automatisch erkannte Mikrodienste

Für alle automatisch erkannten Mikrodienste wird automatisch ein Dienst-Dashboard erstellt. Dieses Dashboard enthält die Metadatendetails des Dienstes, die Benachrichtigungszeitachse, den Status Ihrer Service Level Objectives (SLOs) und Logs, die sich auf den Dienst beziehen. Jede dieser Komponenten wird unter Mikrodienst-Dashboards verwenden noch ausführlicher beschrieben.

Dienst-Dashboard für automatisch erkannte Mikrodienste

GKE, Cloud Run und benutzerdefinierte Dienste

Cloud Monitoring kann potenzielle oder Kandidatendienste für die folgenden Typen identifizieren:

  • GKE-Namespaces
  • GKE-Dienste
  • GKE-Arbeitslasten
  • Cloud Run-Dienste

Es gibt jedoch viele mögliche Kandidaten, die nicht unbedingt für alle erstellt werden müssen. Monitoring erstellt eine Liste der Kandidatendienste und wählen Sie aus der Liste die Dienste aus, die Sie als Monitoringdienste behandeln möchten. Monitoring erstellt dann die Dienstinfrastruktur für Sie.

Wenn für eine Anwendung, für die Sie SLOs erstellen möchten, kein vorhandener Diensttyp in Frage kommt, können Sie einen benutzerdefinierten Dienst definieren.

Weitere Informationen zum Identifizieren von Kandidatendiensten und zum Erstellen benutzerdefinierter Dienste finden Sie unter Mikrodienst definieren.