Panoramica di Service Directory

Service Directory è un servizio coperto dalle obbligazioni di Google stabilite nell'Addendum per il trattamento dei dati Cloud.

Service Directory è un unico posto in cui pubblicare, individuare e connetterti ai servizi in modo coerente e affidabile, indipendentemente dal loro ambiente. Service Directory supporta i servizi in ambienti Google Cloud, multi-cloud e on-premise e può scalare fino a migliaia di servizi ed endpoint per un singolo progetto.

Service Directory offre le seguenti funzionalità:

  • Un'API di registrazione e ricerca per creare e risolvere spazi dei nomi, servizi e endpoint
  • Integrazione con Cloud DNS. Le zone di 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 console Google Cloud per l'interazione con Service Directory
  • Integrazione di Cloud Monitoring e Cloud Logging per il monitoraggio, la verifica e il debug delle operazioni di Service Directory

Perché Service Directory

Man mano che le applicazioni adottano i servizi, la possibilità di risolvere la posizione di un servizio diventa più difficile man mano che cambiano gli endpoint di questi servizi. I servizi impiegati in ambienti ibridi presentano ostacoli aggiuntivi, 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 archiviarle 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 ed ambienti possono cambiare.

Service Directory senza un bilanciatore del carico (fai clic per ingrandire)
Diverse modifiche ai servizi (fai clic per ingrandire)

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

Esaminiamo di nuovo il diagramma precedente, ma questa volta aggiungendo Service Directory. Nel diagramma seguente, ogni istanza di servizio è registrata in Service Directory. Queste registrazioni vengono immediatamente applicate in DNS e possono essere sottoposte a query utilizzando HTTP/gRPC, indipendentemente dall'implementazione e dall'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 in più Google Cloud prodotti, come App Engine e GKE. Puoi rendere disponibili questi servizi tramite DNS. Puoi applicare controlli di 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 servizio per registrare e risolvere gli endpoint.
  2. Gestione dei servizi: Service Directory è un servizio gestito. La tua organizzazione non deve preoccuparsi di problemi di alta disponibilità, ridondanza, scalabilità o manutenzione per la gestione del proprio registry dei servizi.
  3. Controllo dell'accesso: con Service Directory puoi controllare chi può registrare e risolvere i tuoi servizi utilizzando IAM. Assegna i ruoli di Directory dei servizi a team, account di servizio e organizzazioni.
  4. Limiti del DNS puro: i resolver DNS possono non essere affidabili 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 fornire i metadati agli utenti. Oltre al supporto DNS, Directory dei servizi offre API HTTP e gRPC per eseguire query e risolvere i servizi.

Utilizzare Cloud DNS con Service Directory

Cloud DNS è un servizio Domain Name System (DNS) rapido, 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 su Google Cloud. Le zone DNS private ti consentono di assegnare nomi interni alle istanze di macchine virtuali (VM), ai bilanciatori del carico o ad altre risorse. Le query DNS per queste zone DNS private sono limitate alle tue reti private.

Il seguente diagramma mostra come utilizzare le zone del Directory dei servizi 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 in Service Directory utilizzando l'API Service Directory. Puoi registrare sia i serviziGoogle Cloud che quelli nonGoogle Cloud con Service Directory.
  2. I clienti sia esterni che interni possono cercare questi servizi all'indirizzo: https://servicedirectory.googleapis.com
  3. Per abilitare 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 nella 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 un'architettura di microservizi viene modellata in Directory dei servizi e resa disponibile utilizzando il DNS. Tieni presente che Service Directory gestisce interamente 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 (lato sinistro), il servizio payments è registrato a 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 privataexample.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