Microsserviços

Este documento apresenta os microsserviços e descreve os tipos de microsserviços suportados pelo Cloud Monitoring.

O termo microsserviço significa coisas diferentes para pessoas diferentes. Para alguns, o microsserviço corresponde às "caixas" desenhadas no quadro branco quando se fala sobre a arquitetura do sistema. Outros referem-se a uma definição mais formal que descreve um ponto final endereçável na rede com funcionalidade determinada pela respetiva API virada para o exterior que pode ser desenvolvida, implementada e operada independentemente de outros microsserviços no sistema. Outros baseiam a respetiva compreensão no conceito de microsserviço fornecido pela respetiva plataforma de desenvolvimento, como os serviços do App Engine ou o serviço Cloud Service Mesh.

O nosso objetivo não é impor-lhe uma definição de microsserviço. Em alternativa, queremos ajudar a monitorizar os seus sistemas em grande escala durante a transformação digital, fornecendo ferramentas de monitorização orientadas para serviços que lhe ofereçam apoio técnico e à sua arquitetura. Queremos trabalhar consigo para adotar práticas recomendadas para sistemas de monitorização sem alterar uma única linha de código.

Para ajudar a monitorizar os seus microsserviços, o Cloud Monitoring faz o seguinte:

  • Deteta automaticamente microsserviços quando possível
  • Oferece uma experiência guiada para definir microsserviços baseados no Google Kubernetes Engine e no Cloud Run
  • Oferece uma solução totalmente personalizada para máxima flexibilidade

Microsserviços descobertos automaticamente

Algumas frameworks de desenvolvimento modernas oferecem conceitos opinativos de um microsserviço. Em arquiteturas que usam essas frameworks, o Cloud Monitoring deteta automaticamente quando os serviços são implementados, atualizados ou eliminados. A monitorização realiza esta deteção através da análise constante da stream de metadados produzida por um projeto.

O Cloud Monitoring pode detetar automaticamente microsserviços criados com as seguintes frameworks de desenvolvimento:

  • App Engine: o App Engine tem uma noção forte de microsserviço, denominado serviço do App Engine (e anteriormente módulo). Cada serviço distingue-se pelo seu próprio ficheiro de configuração app.yaml.

  • Cloud Service Mesh: o Cloud Monitoring suporta malhas de serviços criadas sobre um único cluster do GKE. Nesta configuração, um serviço do Cloud Service Mesh corresponde diretamente a um serviço do GKE. Todos os serviços do Cloud Service Mesh, geridos pelo utilizador e geridos pelo sistema, são detetados automaticamente.

Painéis de controlo para microsserviços descobertos automaticamente

É criado automaticamente um painel de controlo de serviços para todos os microsserviços descobertos automaticamente. O painel de controlo contém os detalhes dos metadados do serviço, a cronologia de alertas, o estado dos seus objetivos ao nível do serviço (SLOs) e registos relacionados com o serviço. Cada um destes componentes é descrito mais detalhadamente no artigo Usar painéis de controlo de microsserviços.

Painel de controlo de serviços para microsserviços detetados automaticamente.

GKE, Cloud Run e serviços personalizados

O Cloud Monitoring pode identificar serviços potenciais ou candidatos para os seguintes tipos:

  • Namespaces do GKE
  • Serviços do GKE
  • Cargas de trabalho do GKE
  • Serviços do Cloud Run

No entanto, pode haver muitos desses candidatos e não quer necessariamente criar SLOs em todos eles. A monitorização cria uma lista de serviços candidatos e identifica os serviços que quer tratar como serviços de monitorização selecionando-os na lista. A monitorização cria então a infraestrutura de serviços para si.

Quando nenhum tipo de serviço existente se adequa a uma aplicação para a qual quer criar SLOs, pode definir um serviço personalizado.

Para mais informações sobre como identificar serviços candidatos e criar serviços personalizados, consulte o artigo Definir um microsserviço.