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.
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.
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:
- 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.
- 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.
- 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.
- 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.
Übersicht über die einzelnen Komponenten:
- 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.
- Sowohl externe als auch interne Clients können diese Dienste unter https://servicedirectory.googleapis.com aufrufen.
- 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.
- 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.
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.