Monitoramento de Microsserviços: conheça 5 princípios básicos

O monitoramento de microsserviços é um requisito fundamental quando o assunto é arquitetura de microsserviços. Conforme já abordamos em outros artigos aqui no blog, eles proporcionam uma nova maneira de construir, entregar e gerenciar aplicativos corporativos. No entanto, o monitoramento do seu sistema.


Isso porque à medida que as empresas adotam microsserviços, é preciso repensar suas práticas de observabilidade. Portanto, neste artigo traremos alguns dos princípios do monitoramento de microsserviços para te ajudar a garantir um bom desempenho. Acompanhe.

Por que fazer o monitoramento de microsserviços

A princípio, os sistemas de monitoramento de microsserviços são essenciais em um sistema de alta disponibilidade. Afinal, eles identificam e reportam a ocorrência de erros e falhas. Portanto, listamos os princípios que vão tornar o monitoramento de microsserviços mais inteligente e eficiente.

Afinal, quais são os 5 princípios do monitoramento de microsserviços?

  1. Monitore os containers e tudo o que é executado dentro deles

Como blocos de construção de microsserviços, os containers são caixas pretas que abrangem o laptop do desenvolvedor até a nuvem. Mas é difícil executar funções básicas como, por exemplo, monitorar ou solucionar problemas de um serviço. Portanto, é necessário saber o que está sendo executado no contêiner. É preciso também saber como o aplicativo e o código estão sendo executados e se estão gerando métricas personalizadas importantes.


Outro problema é o crescimento da organização. Ao executar milhares de hosts com dezenas de milhares de containers, as implantações podem ficar muito caras. Para um monitoramento de microsserviços correto, há algumas opções.

Você pode instrumentar o código diretamente, executar containers secundários (sidecars) aproveitar a instrumentação universal no nível do kernel para ver todos os aplicativos e atividades do contêiner. É importante observar que cada abordagem tem vantagens e desvantagens. Logo, você precisará revisar qual delas atende aos seus objetivos mais importantes.

  1. Utilize sistemas de orquestração

No monitoramento de microsserviços, a orquestração automatiza a implantação, o gerenciamento, a escala e a rede dos containers. Ela é ideal para as empresas que precisam implantar e gerenciar centenas de milhares de hosts.


Para se ter ideia, um dos processos mais críticos que você pode executar é rastrear informações agregadas de todos os containers associados a uma função ou serviço.


Se você faz parte de uma equipe de desenvolvimento, pode usar um sistema de orquestração como Kubernetes, Mesosphere DC / OS ou Docker Swarm para orquestrar seus microsserviços. Entretanto, se você trabalha numa equipe devops, recomendamos a redefinição dos alertas do sistema para chegar o mais perto possível do monitoramento da experiência do serviço.


Leia mais: Metodologia DevOps: como as empresas fazem para acompanhar um mundo disruptivo de startups

  1. Prepare-se para a expansão dos serviços

Todo ambiente nativo de contêiner muda de maneira dinâmica. Isso expõe as vulnerabilidades de qualquer sistema de monitoramento. Ajustar as métricas pode funcionar bem para uma média de 30 containers. Contudo, o monitoramento de microsserviços deve ser capaz de expandir e contrair junto com os serviços, sem ação humana numa espécie de descoberta de serviço (service discovery).


Logo, caso você defina de forma manual, em qual serviço um contêiner é incluído para monitoramento, pode ser que você perca novos containers criados durante o dia pelo Kubernetes ou Mesos.

  1. Monitore APIs

As APIs são os únicos elementos de um serviço aparente para outras equipes e o seu monitoramento deve ir além das verificações binárias up-down padrão.


Isso significa que é importante entender os endpoints usados com mais frequência. Descobrir os terminais de serviços mais lentos também mostra áreas que precisam de otimização.

Ser capaz de rastrear chamadas de serviço através do sistema ainda ajudará a empresa a entender a experiência do usuário. Esse aspecto do monitoramento de API também dividirá as informações em visualizações baseadas em infraestrutura e aplicativos do ambiente de microsserviços.


Leia também: Arquitetura de microsserviços e API

  1. Mapeie o monitoramento para a estrutura da sua empresa

Sobre o monitoramento de microsserviços, é fundamental considerar os aspectos pessoais do monitoramento de software. Isso significa uma mudança abrangente na cultura da empresa.


Ou seja, equipes menores e com muita autonomia, mas focadas em objetivos estratégicos. Primeiramente, cada equipe mantém mais controle do que nunca sobre os idiomas usados, resolução de bugs ou responsabilidades operacionais.

Logo depois, você pode criar uma plataforma de monitoramento que permite que cada equipe de microsserviço isole seus alertas, métricas e painéis, ao mesmo tempo em que fornece às operações uma visão global do sistema.

Principais ferramentas


No monitoramento de microsserviços, o logging ajuda a fornecer dados que permitem a identificação de falhas nos serviços e na comunicação entre eles, mesmo que seja um problema de negócio. Veja agora as principais ferramentas em log e monitoramento:


• FluentD: é um coletor de dados de código aberto que possibilita unificar a coleta de dados e seu consumo para melhor entendimento dos dados.


• Prometheus: uma aplicação para monitoramento de eventos e alertas. Ele captura métricas em tempo real em um banco de dados temporal. No entanto o Prometheus não conta com uma ferramenta de exibição dos seus dados.


• Grafana: é uma ferramenta que gera gráficos. Geralmente é utilizado juntamente com o Prometheus, fornecendo um dashboard para as métricas colhidas por ele.


• Dynatrace: funciona como ferramenta de monitoramento de aplicações bemcomo ferramenta de gerenciamento de aplicações. Ela oferece uma excelente visão de todo o ambiente, além de suas dependências, a partir da instalação de um agente (Dynatrace OneAgent).


• Stack Prometheus + Istio + Envoy: trata-se de um service mesh, ou seja, uma forma de controlar como diferentes formas de uma aplicação comunicam entre si. Basicamente ele utiliza containers sidecars acoplados em cada pod, funcionlando como um proxy de cada serviço.

Figura: Stack Prometheus + Istio + Envoy em conjunto com Kubernetes com a capacidade de cada ferramenta. Fonte: InfoQ Brasil

Enfim, ao mudar para a arquitetura de microsserviços, é fundamental que a empresa rastreie falhas na integração e encontre a raiz do problema.

A eficiência e economia, bem como a velocidade proveniente dos microsserviços só dependem de simples mudanças no monitoramento de software. Ao mesmo tempo, o monitoramento de microsserviços é responsável por uma maior satisfação do usuário e, por isso devem funcionar corretamente para uma excelência na entrega do serviço.


Quer saber mais sobre monitoramento de microsserviços?


Não deixe de ler: Microsserviços: como monitorar e rastrear falhas.