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.
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.
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:
- 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.
- 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.
- 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.
- 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.
Vista geral dos componentes individuais:
- 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.
- Os clientes externos e internos podem procurar esses serviços em: https://servicedirectory.googleapis.com
- 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.
- 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.
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.