Iniciando uma jornada em observabilidade - O11y.
Tags: observabilidade, prometheus, kubernetes, cloudnative
Published: 2021-05-17 21:38:13

No início do ano, tive a oportunidade de fazer parte da equipe de observabilidade e sem dúvida, aceitei o desafio.

E hoje, vou começar algo diferente, a ideia principal é escrever algo como um diário de bordo descrevendo meus desafios durante meu trabalho como Engenheiro de Software em um projeto de observabilidade.

Eu me inspirei em dois de meus companheiros de equipe, [schulzwill](https://twitter.com/SchulzWill), que é o pioneiro nessa jornada ao meu lado, e [el_luis_parada](https://twitter.com/el_luis_parada), que está fazendo a mesma coisa ao descrever sua jornada de estudo sobre o Site Reliability Engineer e você pode verificar este conteúdo clicando [aqui](https://luisparada.com/sre-how-im-learning-a-brand-new-concept/).

Agora que você já sabe quem me inpirou e qual é o objetivo dos posts sobre O11y, vamos começar.

Mas primeiro, deixe-me dar um spoiler: não vou mostrar nada relacionado a código ou ferramentas hoje, só porque precisamos começar do início, entendendo o que significa observabilidade e alguns conceitos principais que eu precisei entender ao longo dessa jornada.

## O que significa observabilidade?

Observabilidade é a nova criança no grupinho de palavras da moda que ronda a indústria de TI, e você verá muitas empresas usando isso para vender seus produtos e mostrar como são boas desenvolvendo software.

Mas a verdade é que a observabilidade não é nada novo. Como podemos ver [nesta](https://en.wikipedia.org/wiki/Observability) página da Wikipedia, a observabilidade vem da teoria de controle, com o propósito de medir o quão bem um sistema está funcionando com dados externos.

Agora você deve estar se perguntando algo assim:

- O que significa observabilidade para um profissional de TI
- Como tirar proveito da observabilidade
- Como criar plataformas observáveis?

Bem, se isso te relaxar, eu fiz as mesmas perguntas quando ouvi sobre O11y pela primeira vez, então vamos responder essas perguntas.

## Observabilidade para profissionais de TI

Todos os profissionais de TI precisam operar sistemas de produção para garantir que esses sistemas funcionem conforme o esperado. Quando esses sistemas não estão funcionando bem, devemos saber por que e como solucionar os problemas de maneira adequada.

Vamos usar o antigo exemplo de e-commerce e uma simples jornada do usuário para comprar sapatos novos em sua plataforma de e-commerce favorita.

Para simplificar, não irei cobrir todos os fluxos existentes relacionados a transporte, estoques, etc.

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8q2ph858fl8xxb3t8730.png)

Olhando para o exemplo acima, podemos verificar se existem algumas interações entre o usuário e a plataforma de e-commerce.

Agora imagine a jornada do usuário em uma grande plataforma de e-commerce, quando eles estão enfrentando eventos significativos, como:

- Black Friday
- Singles Day
- Saldos

Durante esses eventos, as interações do usuário podem criar centenas ou milhares de chamadas de rede com muitos fluxos de requisições diferentes.

Solucionar problemas de sistemas no cenário descrito sem observabilidade certamente será um trabalho árduo. Por isso, os profissionais de TI devem ter plataformas observáveis para operar esses sistemas com base em dados, procurando **Métricas**, **Logs** e **Trace**.

## Como criar plataformas observáveis?

Bem, desculpe, mas não é um trabalho fácil, mas posso garantir que é um trabalho satisfatório.

Se você é uma pessoa atenta aos detalhes, viu que marquei três palavras em negrito no último tópico: **Métricas**, **Logs** e **Trace**, que são considerados os três pilares da observabilidade.

Olhando para esses três pilares, você pode estar pensando que é bastante simples ter plataformas observáveis, mas não se apresse em tirar conclusões tão rápido. Se você tiver métricas, logs e rastreios, isso não significa que haja capacidade de observação em seu sistema.

Mais do que ferramentas e padrões, a observabilidade é a capacidade de relacionar todas as informações coletadas para responder a perguntas como:

- Por que “y” está quebrado?
- O que deu errado durante o lançamento do recurso “x”?
- Por que o desempenho do sistema diminuiu nos últimos meses?
- Como estava meu serviço no ponto “x”?
- Este problema de sistema está afetando usuários específicos ou todos eles?

Muitas ferramentas o ajudarão a coletar as informações adequadas sobre métricas, registros e rastreamentos, como:

- DataDog - (Requer uma licença comercial)
- Splunk - (requer uma licença comercial)
- New Relic - (Requer uma licença comercial)
- ElasticSearch - (gratuito e de código aberto)
- Prometheus - (gratuito e de código aberto)
- Jaeger - (gratuito e de código aberto)

Existe um oceano de possibilidades para ter sistemas observáveis, para que você possa construir sua plataforma O11y ou comprar uma solução de fornecedor.

## Como tirar proveito da observabilidade

Começamos a tirar proveito de plataformas observáveis quando começamos a responder às questões mencionadas acima.

Os sistemas observáveis nos fornecerão dados que ajudarão as áreas de tecnologia e os negócios a tomar boas decisões, como:

- Prever como dimensionar sua infraestrutura com base em eventos anteriores.
- Descobrir qual é o caminho da solicitação dentro do seu sistema?
- Criar alertas com base em comportamento inesperado

São apenas exemplos de coisas que podem ser melhoradas ou implementadas quando temos sistemas observáveis. Como podemos ver, tanto a área de tecnologia quanto a área de negócios podem tirar proveito disso e fornecer soluções genuínas aos seus clientes.

## Conclusão

Observabilidade é de fato uma criança nova no grupinho, então todas as outras crianças querem brincar com a observabilidade, especialmente quando podem brincar com brinquedos como Kubernetes e Arquitetura de Microsserviços.

Como você pode imaginar, observabilidade é um tópico vasto e não posso resumir tudo em uma único blog post. Mas já temos os conhecimentos básicos para avançar para as seguintes disciplinas.

Espero que você goste.
Deixe-me saber o que você acha disso.
A observabilidade é um processo crucial para as empresas?