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.
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.