Service Directory – Übersicht

Service Directory ist ein Dienst, der den Verpflichtungen von Google im Zusatz zur Verarbeitung von Cloud-Daten unterliegt.

Service Directory ist eine zentrale Schnittstelle, über die Dienste unabhängig von der jeweiligen Umgebung auf einheitliche und zuverlässige Weise veröffentlicht, gefunden und verbunden werden können. Service Directory unterstützt Dienste in Google Cloud-, Multi-Cloud- und lokalen Umgebungen und kann auf Tausende von Diensten und Endpunkten für ein einzelnes Projekt skaliert werden.

Service Directory bietet folgende Funktionen:

  • Eine Registrierungs- und Such-API zum Erstellen und Auflösen von Namespaces, Diensten und Endpunkten
  • Integration mit Cloud DNS Mit Service Directory-Zonen können Dienste in der Virtual Private Cloud (VPC) verfügbar gemacht werden.
  • IAM-Integration zum Zuweisen und Steuern der Sichtbarkeit und Berechtigungen von Diensten
  • Unterstützung für die Interaktion mit dem Unternehmensverzeichnis über die integrierte Google Cloud CLI und die Google Cloud Console
  • Einbindung von Cloud Monitoring und Cloud Logging zum Überwachen, Prüfen und Entwickeln von Service Directory-Vorgängen

Vorteile von Service Directory

Wenn Anwendungen Dienste nutzen, wird es immer schwieriger, den Standort eines Dienstes zu ermitteln, da sich die Endpunkte dieser Dienste ändern. Dienste, die in hybriden Umgebungen bereitgestellt werden, stellen zusätzliche Hindernisse dar, da sie möglicherweise nicht dasselbe Benennungssystem verwenden. Das erschwert die Auflösung und Verbindung von Diensten. Zur Veranschaulichung des Problems:

Angenommen, Sie erstellen eine einfache API und Ihr Code muss eine andere Anwendung aufrufen. Wenn die Endpunktinformationen unveränderlich bleiben, können Sie diese Standorte in Ihren Code hartcodieren oder in einer kleinen Konfigurationsdatei speichern. Bei Mikrodiensten und Multi-Cloud-Umgebungen wird dieses Problem jedoch viel schwieriger zu lösen, da sich Instanzen, Dienste und Umgebungen ändern können.

Dienstverzeichnis ohne Load Balancer (zum Vergrößern klicken)
Verschiedene wechselnde Dienste (zum Vergrößern anklicken)

Mit Service Directory können Sie alle Ihre Dienste an einem Ort registrieren und mithilfe von HTTP, gRPC und DNS auflösen.

Sehen wir uns das vorherige Diagramm noch einmal an, diesmal mit dem Dienstverzeichnis. Im folgenden Diagramm ist jede Dienstinstanz bei Service Directory registriert. Diese Registrierungen werden sofort im DNS berücksichtigt und können unabhängig von ihrer Implementierung und Umgebung mit HTTP/gRPC abgefragt werden.

Serviceverzeichnis mit Load Balancer (zum Vergrößern klicken)
Service Directory mit einem Load Balancer (zum Vergrößern anklicken)

Sie können einen universellen Dienstnamen erstellen, der für Google Cloud Produkte wie App Engine und GKE funktioniert. Sie können diese Dienste über DNS verfügbar machen. Sie können Zugriffssteuerungen auf Dienste basierend auf Netzwerk-, Projekt- und IAM-Rollen von Dienstkonten anwenden.

Mit Service Directory lassen sich folgende Probleme lösen:

  1. Interoperabilität: Service Directory ist ein universeller Benennungsdienst, der für Google Cloud, Multi-Cloud-Umgebungen und On-Premises-Umgebungen funktioniert. Sie können Dienste zwischen diesen Umgebungen migrieren und weiterhin denselben Dienstnamen verwenden, um Endpunkte zu registrieren und aufzulösen.
  2. Dienstverwaltung: Service Directory ist ein verwalteter Dienst. Ihre Organisation muss sich keine Gedanken über Hochverfügbarkeit, Redundanz, Skalierung oder Wartung machen, die bei der Verwaltung einer eigenen Dienstregistrierung anfallen.
  3. Zugriffssteuerung: Mit dem Dienstverzeichnis können Sie mit IAM steuern, wer Ihre Dienste registrieren und auflösen kann. Weisen Sie Teams, Dienstkonten und Organisationen Rollen im Verzeichnisdienst zu.
  4. Einschränkungen von reinem DNS: DNS-Resolver können beim Einhalten von TTLs und beim Caching unzuverlässig sein, können größere Datensatzgrößen nicht verarbeiten und bieten keine einfache Möglichkeit, Nutzern Metadaten bereitzustellen. Neben der DNS-Unterstützung bietet Service Directory HTTP- und gRPC-APIs zum Abfragen und Auflösen von Diensten.

Cloud DNS mit Service Directory verwenden

Cloud DNS ist ein schneller, skalierbarer und zuverlässiger Domain Name System (DNS)-Dienst, der in der Google-Infrastruktur ausgeführt wird.

Neben öffentlichen DNS-Zonen bietet Cloud DNS auch eine verwaltete interne DNS-Lösung für private Netzwerke aufGoogle Cloud. Mit privaten DNS-Zonen können Sie Ihre VM-Instanzen, Load Balancer oder andere Ressourcen intern benennen. DNS-Abfragen für diese privaten DNS-Zonen sind auf Ihre privaten Netzwerke beschränkt.

Das folgende Diagramm zeigt, wie Sie mit Service Directory-Zonen Dienstnamen über DNS-Suchanfragen verfügbar machen können.

Cloud DNS mit Service Directory verwenden (zum Vergrößern anklicken)
Cloud DNS mit Service Directory verwenden (zum Vergrößern klicken)

Übersicht über die einzelnen Komponenten:

  1. Die Endpunkte werden über die Service Directory API direkt bei Service Directory registriert. Sie können sowohlGoogle Cloud - als auch Nicht-Google Cloud -Dienste bei Service Directory registrieren.
  2. Sowohl externe als auch interne Clients können diese Dienste unter https://servicedirectory.googleapis.com aufrufen.
  3. Wenn Sie DNS-Anfragen aktivieren möchten, erstellen Sie eine Service Directory-Zone in Cloud DNS, die mit einem Service Directory-Namespace verknüpft ist.
  4. Interne Clients können diesen Dienst mit DNS, HTTP und gRPC auflösen. Externe Clients (Clients, die sich nicht im privaten Netzwerk befinden) müssen HTTP oder gRPC verwenden, um Dienstnamen aufzulösen.

Konfigurationsbeispiel

Einen Dienst über DNS bereitstellen

Das folgende Diagramm zeigt, wie eine Mikrodienstarchitektur im Serviceverzeichnis modelliert und über DNS verfügbar gemacht wird. Beachten Sie, dass die Dienste und Endpunkte vollständig in Service Directory verwaltet werden, die private Zone jedoch in Cloud DNS ist.

Dienst über DNS freigeben (zum Vergrößern klicken)
Dienst über DNS bereitstellen (zum Vergrößern klicken)

In diesem Diagramm (linke Seite) ist der Dienst payments in einem Namespace mit dem Namen backend-namespace, der Region us-east1 und dem Projekt gcp-project registriert. Der Namespace ist mit der privaten Zone example.com verknüpft.

Für einen DNS-Lookup fordert der Client den SRV-Eintrag für den Domainnamen _payments._tcp.payments.example.com an, der zu den Portnummern und Adresseinträgen für die Endpunkte des Zahlungsdienstes aufgelöst wird.

Nächste Schritte

  • Informationen zum Einrichten eines Service Directory-Namespace, zum Erstellen eines Dienstes im Namespace und zum Zuweisen von Endpunkten zu einem Dienst finden Sie unter Service Directory konfigurieren.
  • Informationen zum Erstellen einer Service Directory-Zone, die einen vorhandenen Namespace nutzt, finden Sie unter Service Directory-DNS-Zone konfigurieren.
  • Informationen zum Abfragen einer vorhandenen Service Directory-Zone mit DNS finden Sie unter Abfragen mit DNS.
  • Informationen zu Lösungen für häufige Probleme, die bei der Verwendung des Diensteverzeichnisses auftreten können, finden Sie unter Fehlerbehebung.