Observabilidade: Rastreabilidade para Sistemas Distribuídos

Observabilidade: Rastreabilidade para Sistemas Distribuídos

Nó Fonte: 1990640

Você já esperou por aquele pacote caro que mostra “enviado”, mas não tem ideia de onde ele está? O histórico de rastreamento parou de atualizar cinco dias atrás e você quase perdeu a esperança. Mas espere, 11 dias depois, você o tem à sua porta. Você gostaria que a rastreabilidade pudesse ser melhor para aliviá-lo de toda a espera ansiosa. É aqui que a “observabilidade” entra em jogo.

Em um cenário técnico, você deseja evitar que isso aconteça com seu software ou sistemas de dados. E, assim, você adota ferramentas de monitoramento, que coletam os logs e métricas de seus sistemas e informam sobre o estado interno deles. O monitoramento funciona melhor quando você deseja que seus sistemas informem qual é o erro, onde e quando ocorreu, mas não informam como resolvê-lo.

Mais de uma década atrás, as ferramentas de monitoramento careciam de contexto e previsão dos problemas subjacentes do sistema e as equipes ficavam restritas à depuração de erros operacionais do dia-a-dia. Hoje, trabalhamos e vivemos em um mundo distribuído de microsserviços e pipelines de dados; mesmo empregar várias ferramentas de monitoramento não ajudará você a responder às suas perguntas de negócios, como "Por que meu aplicativo está sempre lento?" ou “Em que estágio ocorreu o problema e qual a profundidade dele na pilha?” ou “Como posso melhorar o desempenho geral do ambiente?” Torna-se necessário ser proativo na tomada dessas decisões e ter uma visibilidade geral de seus sistemas, aplicativos e dados.

Esta no blog por Etsy foi publicado há uma década, e afirma o próprio fato no segundo parágrafo:

“As métricas de aplicativos são geralmente as mais difíceis, mas as mais importantes das três. Eles são muito específicos para o seu negócio e mudam conforme seus aplicativos mudam (e o Etsy muda muito).”

Então, como medimos tudo e qualquer coisa? Começamos com a observabilidade.

O que é observabilidade?

O termo “observabilidade” foi cunhado por Rudolf Emil Kálmán em 1960 em seu trabalho de engenharia para descrever sistemas de controle matemático. Ele o definiu como uma medida de quão bem os estados internos de um sistema podem ser inferidos a partir do conhecimento de suas saídas externas. Mas não soa como monitoramento? Basicamente, sim, é monitoramento.

Hoje em dia, a observabilidade tornou-se um tópico bastante quente. De acordo com várias pesquisas de mercado, é uma plataforma bilionária. Muitas organizações adotaram o conceito e o empregaram como uma estrutura para visibilidade de ponta a ponta de seus sistemas e pipelines distribuídos. No entanto, observabilidade é confundida com monitoramento. Por enquanto, posso dizer que monitoramento é um subconjunto de observabilidade, onde observabilidade é um grande termo abrangente. 

A observabilidade permite o rastreamento distribuído por meio da coleta e agregação de rastreamentos, logs e métricas. Vamos ver o que eles inferem:

  • Traços: Quando um sistema recebe uma solicitação, os rastreamentos informam como essa solicitação flui, ao longo de seu ciclo de vida, da origem ao destino. Os rastreamentos são representados por "spans". Um trace é uma árvore de spans, e um span é uma única operação dentro de um trace. Eles ajudam a localizar erros, latência ou gargalos no sistema.
  • Registros: Esses são eventos com registro de data e hora gerados por máquina que informam sobre as operações ou alterações que ocorreram no sistema. Os logs costumam ser usados ​​para consultar esses erros ou alterações no sistema.
  • Métricas: Eles fornecem insights quantitativos sobre CPU, memória, uso de disco e como o sistema está funcionando durante um período de tempo.

Esses atributos aprimoram a estrutura de monitoramento com rastreabilidade. A rastreabilidade fornece as lentes para rastrear uma solicitação que faz uma chamada ao seu sistema, quanto tempo leva para passar de um componente para outro, quais outros serviços ele invoca, se lança algum erro, quais logs produz, qual estado está, quando começou e terminou, qual é a linha do tempo em que permaneceu em seu sistema etc. , quanto tempo eles levaram para procurar um produto, quanto tempo eles visualizaram o produto, a página HTML carregou os detalhes completos, como imagens ou vídeos incorporados, quanto tempo o sistema levou para autenticar e processar o pagamento, etc.

O que alcançamos com a observabilidade em um ambiente distribuído?

A evolução dos sistemas distribuídos começou quando as organizações começaram a mudar de sua arquitetura monolítica centralizada para uma arquitetura de microsserviços distribuída e descentralizada. E este ainda é um trabalho em andamento, onde muitas organizações estão adotando a natureza de microsserviços de sistemas e aplicativos. E tudo isso pode ser atribuído dados grandes e dimensionamento. Gerenciar um ambiente distribuído requer aprendizado contínuo, força de trabalho adicional, mudanças em estruturas e políticas, gerenciamento de TI e assim por diante. É de fato uma grande mudança.

Anteriormente, no ambiente monolítico limitado, o hardware, o software, os dados e os bancos de dados viviam sob o mesmo teto. Com o advento do big data nos anos 2000, os sistemas de monitoramento e dimensionamento começaram a se tornar uma grande preocupação. Freqüentemente, as organizações empregavam diferentes ferramentas de monitoramento para atender às necessidades de seus diversos aplicativos. Como resultado, logo se tornou uma sobrecarga operacional com pouca resiliência, visibilidade e confiabilidade.

Todas essas questões deram origem à adoção da observabilidade. Hoje, existem várias ferramentas de observabilidade para pipelines de segurança, rede, aplicativos e dados para rastreamento distribuído em um ambiente complexo. Eles coexistem com seu primo, as ferramentas de monitoramento, e aproveitam a coleta de informações de seu primo e agregam informações adicionais de seus próprios dados de rastreamento.

Existem muitos componentes móveis em todos esses sistemas, cujos traços, quando capturados, podem ilustrar a história dos 5 Ws: quando, onde, por que, o quê e como. Por exemplo, você acessa o site da DATAVERSITY às 1h43 para ler alguns posts do blog. Quando você acessa dataversity.net, a solicitação HTTP é registrada no sistema. Você começa a procurar uma postagem no blog e vai para uma postagem de Governança de Dados, onde passa 17 minutos lendo essa postagem e fecha a guia às 2h.

Também haverá outras chamadas feitas ao sistema de rede para captura de pacotes de rede. As ferramentas de observabilidade coletam todos os spans e os unificam em um trace ou traces, permitindo que você veja o caminho que ele formou durante seu ciclo de vida. Se você tiver um problema como latência de rede ou defeito no sistema, agora é mais fácil dissecar (descascar a cebola) e depurar o problema (erro em qual camada).

Agora, em um grande ambiente distribuído, quando seus aplicativos recebem milhões de solicitações, os dados de rastreamento crescem em grande volume. Coletar e analisar esses rastreamentos é caro para consumo de armazenamento e transferência de dados. Assim, para economizar custos, os dados de rastreamento são amostrados, porque na maioria dos casos, as equipes de engenharia precisam apenas de algumas das peças para investigar o que deu errado ou qual é o padrão de erro.

Com esse pequeno exemplo, entendemos que obtemos insights muito mais profundos sobre nossos sistemas. Assim, considerando uma escala maior de sistemas, as equipes de engenharia podem capturar e trabalhar nos dados amostrados para melhorar a estrutura atual do sistema, aplicar ou retirar novos componentes, adicionar outra camada de segurança, remover gargalos e assim por diante. 

As organizações devem escolher a observabilidade?

Todos nós devemos entender que os objetivos finais são uma melhor experiência do usuário e maior satisfação do usuário. E o caminho para atingir esses objetivos pode ser facilitado com uma estrutura de observabilidade automatizada e proativa. Estabelecer uma cultura de melhoria contínua e otimização é considerada a abordagem ideal de negócios e liderança. 

Nesta era de transformação digital, a observabilidade tornou-se um item obrigatório para que uma empresa seja bem-sucedida em sua jornada digital. Fornecendo a você rastreamentos perspicazes, a observabilidade também manobra você para ser informado por dados, em vez de apenas orientado por dados.

Conclusão

Embora tenhamos usado os termos monitoramento e observabilidade de forma intercambiável, vimos que, embora o monitoramento o ajude com informações sobre a integridade do sistema e os eventos que ocorrem nele, a observabilidade facilita que você faça inferências com base em evidências coletadas de camadas mais profundas de um ambiente de ponta a ponta.

A observabilidade é e também pode ser percebida como um componente da estrutura de Governança de Dados. Nesta geração, em que o volume cada vez maior de dados reside em uma rede de hardware comum, é vital manter as arquiteturas o mais simples possível. E, evidentemente, torna-se uma tarefa impossível gerenciar o ambiente no futuro. Assim, a implementação de políticas e regras de governança apropriadas e automatizadas para manter sua grande malha de sistemas, pipelines e dados organizados exige ação mais cedo ou mais tarde.

Carimbo de hora:

Mais de DATAVERSIDADE