Escolar Documentos
Profissional Documentos
Cultura Documentos
observabilidade
para criar melhores
aplicações
O que é observabilidade?
elastic.co/pt
Índice
Introdução à observabilidade...........................................................................................3
Por que a observabilidade é importante no DevOps moderno..................................... 5
A evolução da arquitetura de software e das tecnologias de nuvem......................................6
O monitoramento e o logging também precisam evoluir...........................................................8
A observabilidade traz insights dos seus dados de telemetria das aplicações.....................9
Considerações para uma solução de observabilidade empresarial...........................10
Ingestão e armazenamento eficientes de todos os seus dados de observabilidade.............. 10
Como analisar todos os seus dados de observabilidade para ter insights práticos................ 17
Um caso para uma solução de observabilidade unificada e para evitar o uso .
de ferramentas isoladas..............................................................................................................22
O que a observabilidade unificada pode fazer por mim?................................................. 23
Lista de verificação da solução de observabilidade.................................................... 24
Como começar a trabalhar com o Elastic Observability.............................................. 25
Por fim, encerraremos com aspectos importantes a considerar ao pesquisar uma solução
de observabilidade e como começar.
Ainda estamos no meio de uma evolução do software. A fase atual inclui microsserviços e
tecnologias sem servidor, tanto locais quanto na nuvem. Essa transição para arquiteturas
de microsserviços remove as interfaces frágeis das implantações de SOA que costumam
afetar a iteração e a evolução do software.
Embora a virtualização tenha aberto o caminho para N camadas e SOA, ela não
era adequada para os microsserviços: as VMs ainda precisam ser provisionadas,
completas com um sistema operacional. A etapa seguinte no modelo de implantação
de hardware foi a containerização e a orquestração (geralmente com Kubernetes
ou um derivado), que era ideal para microsserviços e modelos nativos da nuvem.
A containerização e o Kubernetes permitem a implantação dinâmica de cargas de
trabalho e foram projetados para arquiteturas nativas da nuvem (balanceamento de
carga, redimensionamento, atualizações e muito mais).
SEM SERVIDOR
Não é mais apenas um ambiente cliente-servidor ou uma stack LAMP (Linux, Apache,
MySQL, PHP/Perl/Python) simples. As aplicações de software modernas são coisas
vivas e pulsantes, compostas de centenas ou mesmo milhares de serviços diferentes.
Qualquer um desses serviços pode quebrar o seu sistema, o que nos leva à
necessidade de observabilidade.
Logs
Mensagens de log (ou logs) são o texto que é gerado por uma aplicação ou serviço
quando a execução atinge um determinado ponto no código. Os logs podem ser
estruturados ou não estruturados e geralmente indicam que algo aconteceu: o banco
de dados foi iniciado, uma consulta demorou muito, ocorreu um erro ou o onipresente
got here quando você está quebrando a cabeça para depurar um código.
2017-07-31 13:36:42.585 CEST [4974] LOG: database system was shut down
pg_catalog.pg_get_userbyid(d.datdba) as "Owner",
pg_catalog.pg_encoding_to_char(d.encoding) as "Encoding",
d.datcollate as "Collate",
d.datctype as "Ctype",
privileges"
FROM pg_catalog.pg_database d
ORDER BY 1;
Métricas
É importante observar que os dados de log também podem incluir métricas; portanto,
certifique-se de que sua solução de monitoramento e observabilidade possa extrair
métricas prontamente dos seus dados de log sem perder informações contextuais.
Traces
Dados de segurança
Os logs e as métricas são úteis para observar a sua aplicação de fora para dentro.
Eles permitem que você capture dados que alguém considerou: métricas do sistema,
como utilização de CPU ou memória, KPIs específicos da aplicação, como o número
de acessos de uma página, ou logs, como “item enviado” ou “arquivo baixado: 758 KB”.
Mas eles não lhe dão nenhuma informação que você não sabia pedir ou não coletou.
A coleta de dados de telemetria deve ser tão dinâmica quanto o seu ecossistema
de aplicações. Se você estiver executando VMs, deverá ser capaz de configurar
o monitoramento em suas imagens de base para que todas as VMs que forem
criadas automaticamente sejam incluídas. Se estiver executando em containers,
certifique-se de que a solução escolhida possa detectar e monitorar novos pods ou
containers automaticamente conforme forem criados e que possa fornecer o contexto
necessário para determinar se os problemas são programáticos ou ambientais.
A fácil ingestão de dados não é a única parte da equação. Cada sistema, serviço
e infraestrutura gera dados de telemetria que podem ter um formato único. Se você
olhar para os dois exemplos de log mencionados anteriormente, o único datagrama
que está realmente em ambos é o carimbo de data/hora. Se você pensar sobre onde
esses dados estão armazenados e fingir que estão indo para um banco de dados
relacional, estaremos falando sobre uma tabela com um grande número de colunas
e linhas em sua maioria esparsas. Cada métrica é uma dimensão — CPU, memória,
disco — e cada uma dessas dimensões tem valores. Cada dimensão então produz
seu próprio conjunto de dados de série temporal.
Para que a sua solução de observabilidade funcione com eficácia, você precisa coletar
o máximo de dados possível no nível de detalhe necessário. E precisa conseguir
acessar seus dados da maneira que desejar. Em outras palavras, você deve possuir os
dados que coletou, e eles deverão estar disponíveis para serem analisados da maneira
que você escolher. Você pode remover dados desnecessários, mas é muito mais difícil
adicioná-los de volta após o fato.
Quando você está trabalhando em operações, provavelmente seu interesse maior está
na infraestrutura e nos serviços ao explorar a integridade geral do seu ecossistema.
Nesse caso, você provavelmente usaria métricas de infraestrutura como seu ponto de
partida. Essa postura requer uma visão geral dos sistemas, seja de um servidor real
ou do ponto de vista de uma instância de nuvem. Ou talvez você precise examiná-los
sob a ótica de um container ou pod. Precisamos conseguir olhar para a infraestrutura
de diferentes perspectivas. Se notar uma alta utilização da sua infraestrutura, você
precisará conseguir acessar diretamente um visualizador de log sem perder o contexto
para poder ver os logs exatamente daquilo que você está investigando.
Não é muito comum encontrar os detalhes de um problema no primeiro lugar que você
olha. Você precisará ver os logs de um contexto de aplicação e depois ir diretamente
para as métricas relevantes e ver o histórico do host ou container no qual a aplicação
com problema está sendo executada. Carregar esse contexto consigo ao longo do
caminho enquanto você investiga pode economizar muito tempo, cliques e dinheiro,
à medida que você desvenda o problema.
O AIOps, com tecnologia de machine learning, ajuda a reduzir a fadiga dos alertas
ao correlacionar diferenças, a fim de reduzir o tempo médio para detecção (MTTD)
e o tempo médio para resolução (MTTR). Ele ainda leva em consideração a natureza
cíclica dos negócios modernos enquanto é executado. Ser capaz de identificar
automaticamente coisas que estão fora do intervalo normal, em vez de limites
específicos, reduz o tempo gasto na análise manual dos relatórios do dashboard.
Alerta e notificações
Logs, métricas e traces são ótimos para encontrar problemas, lentidão ou erros
nas suas aplicações e serviços. Infelizmente, ao depender deles, isso geralmente
significa que seus usuários tiveram um problema. É importante testar de forma
proativa e contínua as principais jornadas do usuário — o processo de finalização da
compra, a busca de produtos ou até mesmo a ação de login. O monitoramento proativo
durante o desenvolvimento revela os problemas antes que afetem seus usuários.
Não são apenas suas aplicações e serviços internos que você deve monitorar. Use a
observabilidade e o teste proativamente para ficar de olho em qualquer serviço externo
do qual seu sistema dependa. Os serviços no backend podem estar violando acordos
de nível de serviço (SLAs) e afetando seus objetivos de nível de serviço (SLOs).
Embora não seja uma lista exaustiva, aqui estão alguns exemplos de perguntas para
profissionais de operações de TI, desenvolvedores e DevOps que você seria capaz
de responder com uma solução de observabilidade unificada.
• O que está fazendo com que o carregamento seja mais demorado para alguns
usuários do que para outros?
Além dessas perguntas do dia a dia, uma solução de observabilidade unificada pode
ajudar os proprietários de plataformas a consolidar custos com uma única plataforma
para comprar, aprender e manter. Escolha uma solução de observabilidade que
crescerá e se redimensionará com a sua organização no longo prazo.
Lista de verificação da
solução de observabilidade
Como um bônus, reunimos uma lista de verificação do que foi discutido
anteriormente, juntamente com alguns pontos para você incluir alguns serviços
comuns, enquanto deixamos espaço para você adicionar suas próprias tecnologias,
necessidades e preocupações. Customize a lista com base no seu ambiente
e nas ferramentas que você usa. Esperamos que a lista de verificação ajude na
compreensão do que considerar ao planejar uma iniciativa de observabilidade.
Para obter mais detalhes, baixe o documento Soluções de observabilidade: .
Uma lista de verificação interativa, disponível online.
Agora que você tem uma boa ideia de algumas considerações importantes para sua
solução de observabilidade, é hora de começar. O Elastic Observability é a única
solução de observabilidade construída sobre uma plataforma de busca que ingere todos
os dados de telemetria, adiciona contexto e faz correlações para uma análise de causa
raiz mais rápida, reduzindo significativamente o MTTR e aumentando a produtividade do
desenvolvedor. Você pode começar com uma avaliação gratuita do Elastic Observability,
iniciar o monitoramento e melhorar a experiência dos seus usuários hoje mesmo!
info@elastic.co