Panoramica di Service Directory

Service Directory è un servizio coperto dagli obblighi di Google stabiliti nell'Addendum per il trattamento dei dati Cloud.

Service Directory è un unico posto in cui pubblicare, individuare e connettersi ai servizi in modo coerente e affidabile, indipendentemente dall'ambiente. Service Directory supporta servizi in Google Cloud, ambienti multi-cloud e on-premise e può fare lo scale up fino a migliaia di servizi ed endpoint per un singolo progetto.

Service Directory ha le seguenti funzionalità:

  • Un'API Registration and Lookup per creare e risolvere spazi dei nomi, servizi ed endpoint
  • Integrazione con Cloud DNS. Le zone Service Directory consentono di rendere disponibili i servizi su Virtual Private Cloud (VPC).
  • Integrazione IAM per assegnare e controllare la visibilità e le autorizzazioni del servizio
  • Supporto integrato di Google Cloud CLI e della consoleGoogle Cloud per l'interazione con Service Directory
  • Integrazione di Cloud Monitoring e Cloud Logging per il monitoraggio, il controllo e il debug delle operazioni di Service Directory

Perché Service Directory

Man mano che le applicazioni adottano i servizi, la risoluzione della posizione di un servizio diventa più difficile man mano che gli endpoint di questi servizi cambiano. I servizi di cui è stato eseguito il deployment in ambienti ibridi presentano ulteriori ostacoli, in quanto nessuno dei due può condividere lo stesso sistema di denominazione, il che rende difficile la risoluzione e la connessione dei servizi. Per illustrare il problema, prendi in considerazione quanto segue.

Immagina di creare un'API semplice e che il tuo codice debba chiamare un'altra applicazione. Quando le informazioni sugli endpoint rimangono statiche, puoi codificare queste posizioni nel codice o memorizzarle in un piccolo file di configurazione. Tuttavia, con i microservizi e il multi-cloud, questo problema diventa molto più difficile da risolvere, poiché istanze, servizi e ambienti possono cambiare.

Service Directory senza bilanciatore del carico (fai clic per ingrandire)
Servizi di modifica diversi (fai clic per ingrandire)

Con Service Directory puoi registrare tutti i tuoi servizi in un'unica posizione e risolverli utilizzando HTTP, gRPC e DNS.

Rivediamo il diagramma precedente, ma questa volta aggiungendo Service Directory. Nel seguente diagramma, ogni istanza di servizio è registrata in Service Directory. Queste registrazioni vengono immediatamente riflesse nel DNS e possono essere interrogate utilizzando HTTP/gRPC indipendentemente dalla loro implementazione e dal loro ambiente.

Service Directory con un bilanciatore del carico (fai clic per ingrandire)
Service Directory con un bilanciatore del carico (fai clic per ingrandire)

Puoi creare un nome di servizio universale che funzioni su tutti i prodotti, come App Engine e GKE. Google CloudPuoi rendere disponibili questi servizi tramite DNS. Puoi applicare i controlli dell'accesso ai servizi in base ai ruoli di rete, progetto e IAM degli account di servizio.

Service Directory risolve i seguenti problemi:

  1. Interoperabilità: Service Directory è un servizio di denominazione universale che funziona su Google Cloud, multi-cloud e on-premise. Puoi eseguire la migrazione dei servizi tra questi ambienti e continuare a utilizzare lo stesso nome del servizio per registrare e risolvere gli endpoint.
  2. Service Management: Service Directory è un servizio gestito. La tua organizzazione non deve preoccuparsi di alta affidabilità, ridondanza, scalabilità o manutenzione della gestione del proprio registro di servizi.
  3. Controllo dell'accesso: con Service Directory, puoi controllare chi può registrare e risolvere i tuoi servizi utilizzando IAM. Assegna i ruoli Service Directory a team, service account e organizzazioni.
  4. Limitazioni del DNS puro: i resolver DNS possono essere inaffidabili in termini di rispetto dei TTL e della memorizzazione nella cache, non possono gestire dimensioni dei record più grandi e non offrono un modo semplice per pubblicare i metadati per gli utenti. Oltre al supporto DNS, Service Directory offre API HTTP e gRPC per eseguire query e risolvere i servizi.

Utilizza Cloud DNS con Service Directory

Cloud DNS è un servizio Domain Name System (DNS) veloce, scalabile e affidabile in esecuzione sull'infrastruttura di Google.

Oltre alle zone DNS pubbliche, Cloud DNS fornisce anche una soluzione DNS interna gestita per le reti private suGoogle Cloud. Le zone DNS private consentono di denominare internamente le istanze di macchine virtuali (VM), i bilanciatori del carico o altre risorse. Le query DNS per queste zone DNS private sono limitate alle tue reti private.

Il seguente diagramma mostra come utilizzare le zone Service Directory per rendere disponibili i nomi dei servizi utilizzando le ricerche DNS.

Utilizzo di Cloud DNS con Service Directory (fai clic per ingrandire)
Utilizzo di Cloud DNS con Service Directory (fai clic per ingrandire)

Panoramica dei singoli componenti:

  1. Gli endpoint vengono registrati direttamente con Service Directory utilizzando l'API Service Directory. Puoi registrare serviziGoogle Cloud e nonGoogle Cloud con Service Directory.
  2. I client esterni e interni possono cercare questi servizi all'indirizzo: https://servicedirectory.googleapis.com
  3. Per attivare le richieste DNS, crea una zona Service Directory in Cloud DNS associata a uno spazio dei nomi Service Directory.
  4. I client interni possono risolvere questo servizio utilizzando DNS, HTTP e gRPC. I client esterni (client non presenti sulla rete privata) devono utilizzare HTTP o gRPC per risolvere i nomi dei servizi.

Configurazione di esempio

Come esporre un servizio tramite DNS

Il seguente diagramma illustra come viene modellata un'architettura di microservizi in Service Directory e resa disponibile tramite DNS. Tieni presente che Service Directory gestisce completamente i servizi e gli endpoint, ma la zona privata si trova in Cloud DNS.

Esposizione di un servizio tramite DNS (fai clic per ingrandire)
Esposizione di un servizio tramite DNS (fai clic per ingrandire)

In questo diagramma (a sinistra), il servizio payments è registrato in uno spazio dei nomi con il nome backend-namespace, la regione us-east1 e il progetto gcp-project. Lo spazio dei nomi è collegato alla zona privata example.com.

Per eseguire una ricerca DNS, il client richiede il record SRV per il nome di dominio _payments._tcp.payments.example.com, che si risolve nei numeri di porta e nei record di indirizzo per gli endpoint del servizio di pagamento.

Passaggi successivi

  • Per scoprire come configurare uno spazio dei nomi Service Directory, creare un servizio nello spazio dei nomi e assegnare endpoint a un servizio, consulta Configurare Service Directory.
  • Per scoprire come creare una zona Service Directory che sfrutti uno spazio dei nomi esistente, consulta Configurare una zona DNS di Service Directory.
  • Per scoprire come eseguire una query in una zona Service Directory esistente utilizzando DNS, consulta Query utilizzando DNS.
  • Per trovare soluzioni ai problemi comuni che potresti riscontrare durante l'utilizzo di Service Directory, consulta la pagina Risoluzione dei problemi.