Vista geral do diretório de serviços

O Service Directory é um serviço abrangido pelas obrigações da Google estabelecidas na Alteração ao Tratamento de Dados do Cloud.

O diretório de serviços é um único local para publicar, descobrir e estabelecer ligação a serviços de forma consistente e fiável, independentemente do respetivo ambiente. O Service Directory suporta serviços em ambientes Trusted Cloud by S3NS, de várias nuvens e nas instalações, e pode ser dimensionado até milhares de serviços e pontos finais para um único projeto.

O diretório de serviços tem as seguintes funcionalidades:

  • Uma API Registration and Lookup para criar e resolver namespaces, serviços e pontos finais
  • Integração com o Cloud DNS. As zonas do Service Directory permitem que os serviços sejam disponibilizados na nuvem virtual privada (VPC).
  • Integração do IAM para atribuir e controlar a visibilidade e as autorizações dos serviços
  • Suporte integrado da CLI gcloud e da Trusted Cloud consola para interagir com o Service Directory
  • Integração do Cloud Monitoring e do Cloud Logging para monitorizar, auditar e depurar operações do Service Directory

Porquê o diretório de serviços

À medida que as aplicações adotam serviços, a capacidade de resolver a localização de um serviço torna-se mais difícil à medida que os pontos finais desses serviços mudam. Os serviços implementados em ambientes híbridos apresentam obstáculos adicionais, uma vez que nenhum deles pode partilhar o mesmo sistema de nomenclatura, o que dificulta a resolução e a ligação de serviços. Para ilustrar o problema, considere o seguinte.

Imagine que está a criar uma API simples e que o seu código tem de chamar outra aplicação. Quando as informações dos pontos finais permanecem estáticas, pode codificar estas localizações no seu código ou armazená-las num pequeno ficheiro de configuração. No entanto, com os microsserviços e a multinuvem, este problema torna-se muito mais difícil de resolver, uma vez que as instâncias, os serviços e os ambientes podem mudar.

Diretório de serviços sem um balanceador de carga (clique para ampliar)
Diferentes serviços de câmbios (clique para aumentar)

Com o Service Directory, pode registar todos os seus serviços num único local e resolvê-los através de HTTP, gRPC e DNS.

Vamos rever o diagrama anterior, mas desta vez adicionando o diretório de serviços. No diagrama seguinte, cada instância de serviço está registada no Service Directory. Estes registos refletem-se imediatamente no DNS e podem ser consultados através de HTTP/gRPC, independentemente da respetiva implementação e ambiente.

Service Directory com um balanceador de carga (clique para ampliar)
Diretório de serviços com um equilibrador de carga (clique para aumentar)

Pode criar um nome de serviço universal que funcione em vários Trusted Cloud produtos, como o App Engine e o GKE. Pode disponibilizar estes serviços através de DNS. Pode aplicar controlos de acesso a serviços com base na rede, no projeto e nas funções de IAM das contas de serviço.

O diretório de serviços resolve os seguintes problemas:

  1. Interoperabilidade: o Service Directory é um serviço de nomenclatura universal que funciona em várias nuvens e nas instalações. Trusted Cloud Pode migrar serviços entre estes ambientes e continuar a usar o mesmo nome do serviço para registar e resolver pontos finais.
  2. Gestão de serviços: o Service Directory é um serviço gerido. A sua organização não tem de se preocupar com a elevada disponibilidade, a redundância, o dimensionamento ou as preocupações de manutenção de manter o seu próprio registo de serviços.
  3. Controlo de acesso: com o Service Directory, pode controlar quem pode registar e resolver os seus serviços através da IAM. Atribuir funções do Service Directory a equipas, contas de serviço e organizações.
  4. Limitações do DNS puro: os resolvedores de DNS podem não ser fiáveis em termos de respeitar os TTLs e o armazenamento em cache, não conseguem processar tamanhos de registos maiores e não oferecem uma forma fácil de disponibilizar metadados aos utilizadores. Além do suporte de DNS, o Service Directory oferece APIs HTTP e gRPC para consultar e resolver serviços.

Use o Cloud DNS com o Service Directory

O Cloud DNS é um serviço de Sistema de Nomes de Domínio (DNS) rápido, escalável e fiável executado na infraestrutura da Google.

Além das zonas de DNS públicas, o Cloud DNS também oferece uma solução de DNS interno gerida para redes privadas noTrusted Cloud by S3NS. As zonas DNS privadas permitem-lhe atribuir internamente nomes às instâncias de máquinas virtuais (VMs), aos balanceadores de carga ou a outros recursos. As consultas DNS para essas zonas DNS privadas estão restritas às suas redes privadas.

O diagrama seguinte ilustra como pode usar zonas do Service Directory para disponibilizar nomes de serviços através de pesquisas de DNS.

Usar o Cloud DNS com o Service Directory (clique para aumentar)
Usar o Cloud DNS com o Service Directory (clique para aumentar)

Vista geral dos componentes individuais:

  1. Os pontos finais são registados diretamente no Service Directory através da API Service Directory. Pode registar serviçosTrusted Cloud e nãoTrusted CloudTrusted Cloud Trusted Cloud no diretório de serviços.
  2. Os clientes externos e internos podem procurar esses serviços em: https://servicedirectory.googleapis.com
  3. Para ativar os pedidos DNS, crie uma zona do Service Directory no Cloud DNS que esteja associada a um espaço de nomes do Service Directory.
  4. Os clientes internos podem resolver este serviço através de DNS, HTTP e gRPC. Os clientes externos (clientes que não estão na rede privada) têm de usar HTTP ou gRPC para resolver nomes de serviços.

Exemplo de configuração

Como expor um serviço através de DNS

O diagrama seguinte ilustra como uma arquitetura de microsserviços é modelada no Service Directory e disponibilizada através do DNS. Tenha em atenção que o Service Directory mantém os serviços e os pontos finais na totalidade, mas a zona privada está no Cloud DNS.

Expor um serviço através de DNS (clique para aumentar)
Expor um serviço através de DNS (clique para aumentar)

Neste diagrama (lado esquerdo), o serviço de pagamentos está registado num espaço de nomes com o nome backend-namespace, a região us-east1 e o projeto gcp-project. O espaço de nomes está associado à zona privada example.com.

Para fazer uma pesquisa DNS, o cliente pede o registo SRV para o nome do domínio _payments._tcp.payments.example.com, que é resolvido para os números das portas e os registos de endereços dos pontos finais do serviço de pagamentos.

O que se segue?

  • Para saber como configurar um espaço de nomes do Service Directory, criar um serviço no espaço de nomes e atribuir pontos finais a um serviço, consulte o artigo Configurar o Service Directory.
  • Para saber como criar uma zona do Service Directory que tira partido de um espaço de nomes existente, consulte o artigo Configurar uma zona DNS do Service Directory.
  • Para saber como fazer uma consulta a uma zona do Service Directory existente através do DNS, consulte o artigo Consultar através do DNS.
  • Para encontrar soluções para problemas comuns que pode encontrar ao usar o Service Directory, consulte a secção Resolução de problemas.