Service Directory ist ein Dienst, der den Verpflichtungen von Google im Zusatz zur Verarbeitung von Cloud-Daten unterliegt.
Service Directory ist ein zentraler Ort, an dem Sie Dienste unabhängig von der Umgebung auf einheitliche und zuverlässige Weise veröffentlichen, finden und mit ihnen verbinden 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 die folgenden Funktionen:
- Eine Registration and Lookup API zum Erstellen und Auflösen von Namespaces, Diensten und Endpunkten
- Integration mit Cloud DNS Mit Service Directory-Zonen können Dienste in einer Virtual Private Cloud (VPC) verfügbar gemacht werden.
- IAM-Integration zum Zuweisen und Steuern der Dienstsichtbarkeit und -berechtigungen
- Integrierte Unterstützung für die Interaktion mit Service Directory über die Google Cloud CLI und die Google Cloud -Konsole
- Integration von Cloud Monitoring und Cloud Logging für Monitoring, Audit-Logging und Debugging von Service Directory-Vorgängen
Vorteile von Service Directory
Wenn Anwendungen Dienste nutzen, wird es schwieriger, den Standort eines Dienstes aufzulösen, 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 Namenssystem verwenden, was die Auflösung und Verbindung von Diensten erschwert. Das folgende Beispiel veranschaulicht das Problem.
Angenommen, Sie entwickeln eine einfache API und Ihr Code muss eine andere Anwendung aufrufen. Wenn Endpunktinformationen statisch bleiben, können Sie diese Speicherorte fest in Ihren Code einfügen oder in einer kleinen Konfigurationsdatei speichern. Mit Mikrodiensten und Multi-Cloud wird dieses Problem jedoch viel schwieriger zu lösen, da sich Instanzen, Dienste und Umgebungen alle ändern können.
Mit Service Directory können Sie alle Ihre Dienste an einem Ort registrieren und über HTTP, gRPC und DNS auflösen.
Sehen wir uns das vorherige Diagramm noch einmal an, diesmal mit Service Directory. Im folgenden Diagramm ist jede Dienstinstanz bei Service Directory registriert. Diese Registrierungen werden sofort im DNS widergespiegelt und können unabhängig von ihrer Implementierung und Umgebung über HTTP/gRPC abgefragt werden.
Sie können einen universellen Dienstnamen erstellen, der für verschiedene Produkte wie App Engine und GKE funktioniert. Google CloudSie können diese Dienste über DNS verfügbar machen. Sie können die Zugriffssteuerung auf Dienste anwenden, die auf dem Netzwerk, dem Projekt und den IAM-Rollen von Dienstkonten basieren.
Service Directory löst die folgenden Probleme:
- Interoperabilität: Service Directory ist ein universeller Namensdienst, der in Google Cloud, Multi-Cloud-Umgebungen und lokalen Umgebungen funktioniert. Sie können Dienste zwischen diesen Umgebungen migrieren und trotzdem denselben Dienstnamen verwenden, um Endpunkte zu registrieren und aufzulösen.
- Dienstverwaltung: Service Directory ist ein verwalteter Dienst. Ihre Organisation muss sich keine Gedanken über die Hochverfügbarkeit, Redundanz, Skalierung oder Wartung einer eigenen Dienstregistrierung machen.
- Zugriffssteuerung: Mit Service Directory können Sie mit IAM steuern, wer Ihre Dienste registrieren und auflösen kann. Weisen Sie Teams, Dienstkonten und Organisationen Service Directory-Rollen zu.
- Einschränkungen von reinem DNS: DNS-Resolver sind in Bezug auf die Einhaltung von TTLs und das Caching möglicherweise nicht zuverlässig, können größere Datensatzgrößen nicht verarbeiten und bieten keine einfache Möglichkeit, Metadaten für Nutzer 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-Dienst (DNS), der auf der Infrastruktur von Google ausgeführt wird.
Zusätzlich zu ö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 veranschaulicht, wie Sie Service Directory-Zonen verwenden können, um Dienstnamen über DNS-Lookups verfügbar zu machen.
Übersicht über die einzelnen Komponenten:
- Die Endpunkte werden direkt bei Service Directory registriert, indem die Service Directory API verwendet wird. 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.
- Damit DNS-Anfragen möglich sind, erstellen Sie in Cloud DNS eine Service Directory-Zone, die mit einem Service Directory-Namespace verknüpft ist.
- Interne Clients können diesen Dienst über 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
Dienst über DNS bereitstellen
Das folgende Diagramm zeigt, wie eine Mikrodienstarchitektur in Service Directory modelliert und über DNS verfügbar gemacht wird. Beachten Sie, dass Service Directory die Dienste und Endpunkte vollständig verwaltet, die private Zone jedoch in Cloud DNS ist.
In diesem Diagramm (links) 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. Dieser wird in die Portnummern und Adressdatensätze für die Endpunkte des Zahlungsdienstes aufgelöst.
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 von Service Directory auftreten können, finden Sie unter Fehlerbehebung.