O que é o Google Service Control?

O Google Service Control é um serviço de infraestrutura do Google Cloud Platform. Com ele, os serviços gerenciados têm a funcionalidade de plano de controle, como geração de registros, monitoramento e verificação de status. O Google Service Control é muito utilizado pelas APIs do Google e pelo Google Cloud Endpoints. Nesta página, você encontra uma visão geral do que ele faz e como ele funciona.

Por que usar o Service Control?

Para desenvolver um serviço na nuvem, é preciso começar pelos requisitos dos negócios e pelo design da arquitetura e, depois, prosseguir para a definição e a implantação da API. Antes de colocar o serviço em produção, é necessário resolver problemas do plano de controle. Veja alguns deles abaixo:

  • Como controlar o acesso ao serviço.
  • Como validar as chaves de API.
  • Como enviar dados de registros e monitoramento a consumidores e produtores.
  • Como criar e gerenciar painéis para visualizar esses dados.
  • Como dimensionar os componentes do plano de controle ao seu serviço.

O Service Control é um provedor de plano de controle que atende a essas necessidades com alta eficiência, escalabilidade e disponibilidade. Ele oferece uma API pública simples que pode ser acessada a partir de qualquer lugar por meio dos clientes JSON REST e gRPC. Assim, quando você move o seu serviço local para um provedor de nuvem, ou de um provedor de nuvem para outro, não é necessário alterar o provedor de plano de controle.

Serviços desenvolvidos com o Google Cloud Endpoints já se integram com o Service Control. O Cloud Endpoints envia os dados de registros e monitoramento pelo Service Control para cada solicitação que chega no proxy. Se você precisar gerar relatórios para quaisquer dados de registros e monitoramento para o serviço do Cloud Endpoints, chame a Service Control API diretamente do seu serviço.

A Service Control API tem o código aberto e está disponível no GitHub. Altere o nome DNS para usar implementações alternativas da Service Control API.

Arquitetura

O Google Service Control funciona com um grupo de serviços gerenciados e as operações ou atividades deles, verifica se uma operação tem permissão para continuar e gera relatórios de operações concluídas. Ele utiliza, em segundo plano, outros serviços do Google Cloud, como o Google Service Management, o Stackdriver Logging e o Stackdriver Monitoring. Dessa forma, a complexidade deles não é mostrada para os produtores de serviço. Ele usa armazenamento em cache, operações em lote, agregação e repetições para fornecer desempenho e disponibilidade melhores que os de sistemas de back-end individuais encapsulados por ele.

A arquitetura geral de um serviço que usa o Google Service Control.
Figura 1: como usar o Google Service Control.

Serviços gerenciados

Um serviço gerenciado é um serviço de rede gerenciado pelo Google Service Management. Cada serviço gerenciado tem um nome de serviço exclusivo como example.googleapis.com, que precisa ser um nome DNS válido e totalmente qualificado de acordo com a RFC 1035.

Por exemplo:

  • Google Cloud Pub/Sub (pubsub.googleapis.com)
  • Google Cloud Vision (vision.googleapis.com)
  • Google Cloud Bigtable (bigtable.googleapis.com)
  • Google Cloud Datastore (datastore.googleapis.com)

O Google Service Management gerencia o ciclo de vida de cada serviço e a configuração deles para personalizar o comportamento do Google Service Control. Configurações de serviço também são usadas pelo console do Google Cloud Platform para exibir APIs e as configurações delas, ativar/desativar APIs, dentre outras coisas.

Operações

O Google Service Control utiliza o conceito genérico de uma operação para representar as atividades de um serviço gerenciado, como chamadas de API e uso de recursos. Cada operação é associada a um serviço gerenciado e a um consumidor de serviço específico e tem um grupo de propriedades que a descreve, como o nome do método da API e a quantidade de uso de recursos. Para mais informações, consulte Definição de operação.

Verificação

A Service Control API fornece o método services.check para determinar se uma operação tem a permissão de continuar para um serviço gerenciado.

Por exemplo:

  • Verificar se o consumidor ainda está ativo.
  • Verificar se o consumidor ativou o serviço.
  • Verificar se a chave de API ainda é válida.

Executar múltiplas verificações em uma única chamada de API em vez de verificar muitos sistemas de back-end melhora o desempenho, aumenta a confiabilidade e reduz os custos de desenvolvimento para os produtores de serviço.

Geração de relatórios

A Service Control API fornece o método services.report para gerar relatórios de operações concluídas de um serviço gerenciado para vários sistemas de back-end, como Stackdriver Logging e Stackdriver Monitoring. Veja os dados dos relatórios no console do Google Cloud Platform e recupere-os com as APIs apropriadas, como a Stackdriver Logging API e a Stackdriver Monitoring API.

Próximas etapas