Você está na página 1de 26

Como utilizar a

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

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 2


Introdução à observabilidade
O conceito de observabilidade remonta a meados do século XX, quando foi
originalmente usado na teoria de controle para descrever como os estados
internos de um sistema podem ser inferidos a partir do conhecimento do que
o sistema produz externamente. Embora o termo ainda seja usado no contexto
matemático, hoje é comumente usado no contexto das stacks de infraestrutura,
serviços e aplicações de software.

Os sistemas de software geralmente são projetados e descritos com certos


requisitos funcionais que especificam o que o software deve fazer. Eles podem
incluir uma interação específica ou histórias de usuários, como “quando um usuário
insere um par válido de identificação e senha, ele deve conseguir fazer o login”.
Ou podem ser um pouco mais específicos, como “se um item tem estoque zero,
não deve ser possível colocá-lo no carrinho”. Esses requisitos podem não ser todos
escritos da mesma maneira, o que acontecia quando o desenvolvimento de software
seguia uma abordagem estritamente em cascata, mas ser implementados como
testes em abordagens ágeis ou de desenvolvimento orientado por testes; no entanto,
eles ainda existem.

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 3


Adjacentes aos requisitos funcionais estão os requisitos não funcionais (NFRs). Os NFRs
tendem a ser o tipo de coisa que você não consegue definir com exatidão, mas sobre
a qual tem um entendimento mais básico — algo do tipo “Não sei o que é arte, mas sei
que é quando a vejo”. Requisitos não funcionais também são frequentemente chamados
de *-ilities em inglês: usability (usabilidade), availability (disponibilidade), scalability
(escalabilidade) e maintainability (capacidade de manutenção) são alguns exemplos.
Se o botão “finalizar a compra” se move por toda a página ou se os menus suspensos
tornam impossível clicar nos submenus porque eles somem, isso é um atentado contra
o NFR de usabilidade. Se o seu site trava com frequência, isso vai contra a disponibilidade.
Você provavelmente já notou que a observabilidade também é uma *-ility (de observability)
e pode realmente ajudar a avaliar alguns dos outros NFRs.

Para muitas organizações, a observabilidade está se tornando uma iniciativa crucial


à medida que as empresas partem cada vez mais para o mundo digital e adotam as
tecnologias de nuvem, o que aumenta drasticamente a complexidade do tempo de
execução das aplicações. Neste e-book, mostraremos alguns conceitos e considerações
a respeito da observabilidade:

Como a arquitetura de software e as tecnologias de nuvem evoluíram

Quem pode se beneficiar da observabilidade e por que ela é ainda mais


importante hoje

O que uma solução de observabilidade deve incluir

O que uma plataforma de observabilidade unificada pode fazer por você

Por fim, encerraremos com aspectos importantes a considerar ao pesquisar uma solução
de observabilidade e como começar.

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 4


Por que a observabilidade
é importante no DevOps
moderno
Durante a era dos datacenters e das aplicações monolíticas, alterações em produção
eram raras e planejadas. As dependências eram facilmente compreendidas,
e a integridade geral da aplicação podia ser determinada monitorando a variação
de algumas métricas conhecidas: as incógnitas desconhecidas.

Com a natureza distribuída das aplicações da atualidade, nenhuma equipe ou


indivíduo tem um panorama completo de todas as dependências. Os dados de
telemetria (métricas, logs e traces) muitas vezes ficam isolados em diferentes
ferramentas. As equipes de desenvolvedores e operações estão gastando muito
tempo na triagem dos problemas devido a investigações manuais, alongando
o tempo médio para resolução (MTTR). Para lidar com essa complexidade
cada vez maior das aplicações, você precisará de mais dados para entender
verdadeiramente o seu ambiente e a experiência dos seus usuários.

O primeiro passo rumo à observabilidade é o monitoramento: reunir os logs,


métricas e traces da sua infraestrutura, serviços e aplicações. Dados básicos
de monitoramento permitem responder a perguntas importantes sobre o
seu ecossistema de aplicações, como “quais dos meus servidores estão
sendo superutilizados?” ou “quais aplicações têm tempos de resposta altos?”
Uma solução de observabilidade pode ajudar a extrair ainda mais informações
dos seus dados de monitoramento, permitindo que você não apenas veja
o estado interno dos seus sistemas, mas também ajude a descobrir incógnitas
desconhecidas, ou seja, as coisas que podem estar dando errado e você nem
sabia o que procurar.

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 5


Por que a observabilidade é importante no DevOps moderno

A evolução da arquitetura de software e tecnologias de nuvem

MONOLÍTICAS N CAMADAS SOA MICROSSERVIÇOS

Os modelos de implantação de hardware e software evoluíram nas últimas décadas.


O que começou como aplicações monolíticas com código longo e frágil, migrou para
arquiteturas cliente-servidor e depois para N camadas. Esse foi o surgimento da
modularidade no desenvolvimento de software e na arquitetura de aplicações. Com o
advento do C++ e de linguagens de programação de terceira geração mais amigáveis
ao programador, os programas individuais nessas topologias se tornaram menores
e menos complexos do que seus antecessores monolíticos. A etapa seguinte, a da
arquitetura orientada a serviços (SOA), foi mais evolucionária do que revolucionária.
A SOA adicionou definição sobre como dividir as aplicações e introduziu o conceito
de agrupar unidades pequenas e distintas de funcionalidades (serviços) para
fornecer aplicações.

VIRTUALIZAÇÃO NUVEM ORQUESTRAÇÃO CONTAINERS

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 6


Por que a observabilidade é importante no DevOps moderno

A evolução do modelo de implantação de software realmente não poderia ter


acontecido sem avanços paralelos na utilização do hardware. As aplicações
monolíticas e até as primeiras cliente-servidor e de N camadas eram executadas em
bare metal. Um servidor tinha um único sistema operacional e executava uma única
aplicação — uma arquitetura que não era realmente escalável em comparação com
as SOAs, que podiam ter dezenas de serviços diferentes. Os hipervisores habilitavam
a virtualização nessas mesmas máquinas e possibilitavam a execução de várias
máquinas virtuais (VMs) em um único host, abrindo caminho para as SOAs.

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.

Na evolução das arquiteturas de software e dos modelos de implantação, a popularidade


dos microsserviços e o conceito de computação nativa da nuvem cresceram em paralelo.
“Nativo da nuvem” não significa pegar a sua aplicação e jogá-la em um provedor de
serviços em nuvem, mas sim uma evolução geral da filosofia de desenvolvimento
e implantação do software. O objetivo é um software que possa redimensionar a
capacidade dos usuários para mais ou para menos com base na demanda. Ser nativo
da nuvem também permite que uma organização seja mais ágil, possibilitando um ciclo
contínuo de integração e implantação.

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

As tecnologias sem servidor ou de função como um serviço (FaaS) levam as coisas


ainda mais longe, contando com operações efêmeras e de curta duração executadas
em resposta a eventos. Não há necessidade de ter as complexidades de um ambiente
de microsserviços. As tecnologias sem servidor têm surgido em um ritmo crescente,
oferecendo uma alternativa de menor custo e sob demanda para a infraestrutura mais
complexa exigida em ecossistemas de microsserviços completos.

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 7


Por que a observabilidade é importante no DevOps moderno

O monitoramento e o logging também precisam evoluir


O tamanho menor das aplicações monolíticas e de N camadas, combinado
com alterações pouco frequentes, as torna inerentemente mais fáceis de
monitorar. Embora as próprias aplicações fossem maiores e mais complexas
do que componentes de microsserviços distintos, só tínhamos de nos
preocupar com arquivos de log e métricas de algumas máquinas e serviços.

VIRTUALIZAÇÃO NUVEM ORQUESTRAÇÃO CONTAINERS

SEM SERVIDOR

MONOLÍTICAS N CAMADAS SOA MICROSSERVIÇOS

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 8


Por que a observabilidade é importante no DevOps moderno

A virtualização e a guinada do DevOps para a direita estão realmente mudando


o cenário do desenvolvimento de software. A maior utilização de recursos possibilitada
pela virtualização e pela containerização aumenta a complexidade do monitoramento.
Não só precisamos monitorar as máquinas de base que estão executando o hipervisor
ou o orquestrador, mas também precisamos monitorar os “hosts” individuais (containers
e VMs), bem como o próprio hipervisor e o orquestrador.

Devemos também monitorar as aplicações em execução neles. Devido à maior utilização


de recursos nos sistemas em containers, é muito mais provável que encontremos
“vizinhos folgados”: uma situação em que um container consome muita CPU ou memória
em detrimento de outros. Ao executar servidores gerenciados ou aplicações sem
servidor, não podemos monitorar a infraestrutura subjacente, mas podemos monitorar
as chamadas de serviço.

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.

A observabilidade traz insights dos seus dados de telemetria


das aplicações
Por exemplo, imagine um processo com um sistema de processamento de pedidos:
as transações estão falhando, mas não todas. O monitoramento seria capaz de
mostrar que algo está errado e até alertar você, mas a observabilidade permitiria
que você correlacionasse os problemas e descobrisse que, globalmente, apenas
quem está finalizando a compra usando libras britânicas para pagar está tendo
problemas. Esse insight operacional leva você diretamente a problemas com a API
de moeda. Ao investir em uma iniciativa de observabilidade, você pode solucionar
e correlacionar problemas em aplicações de maneira inteligente, independentemente
da complexidade do seu ambiente de aplicações.

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 9


Considerações para uma
solução de observabilidade
empresarial
Quando uma solução que agrega, correlaciona e inspeciona os dados de telemetria das
nossos aplicações e infraestrutura pode nos dizer o que está realmente acontecendo
no nosso ambiente de aplicações, podemos dizer que temos observabilidade.
Observabilidade é aquilo que a solução que você usa para avaliar esses dados de
monitoramento lhe fornece. Sem dados de telemetria das suas aplicações, serviços
e infraestrutura, não há observabilidade. E você precisará de todos os seus dados,
pelos motivos que discutiremos mais adiante.

Vamos examinar alguns recursos essenciais para uma solução de observabilidade.

Ingestão e armazenamento eficientes de todos os seus dados


de observabilidade
Em sistemas de software complexos, há ainda mais dados de aplicações para
monitorar e armazenar. Microsserviços, bancos de dados, barramentos de
mensagens, armazenamentos de valores-chave, camadas de abstração — devemos
capturar os dados de telemetria de todos esses componentes e armazená-los
para usar na solução de problemas futuramente. A ingestão de dados não envolve
apenas importadores e analisadores proprietários: também temos padrões abertos
emergentes, como OpenTelemetry, Zipkin e Jaeger, para nos apoiar. Ao analisar as
soluções de observabilidade, entenda como os modelos de preços podem afetar
a sua capacidade de instrumentar, ingerir e armazenar dados de todo o sistema
de aplicações nas fases de desenvolvimento, controle de qualidade e produção.

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 10


Considerações para uma solução de observabilidade empresarial

Tipos típicos de dados de telemetria de aplicações

É importante reunir tudo o que você puder no seu ecossistema de aplicações:


logs de infraestrutura e métricas dos hosts, servidores, VMs, containers, pods, bem
como os componentes que os orquestram (hipervisores e camadas de orquestração
de containers). Então, você precisará dos logs, métricas e dados de disponibilidade
dos serviços que produz (aplicações) e daqueles que consome (barramentos de
mensagem, armazenamentos de chave/valor e bancos de dados). E, quando possível,
dados de trace das aplicações que você gerencia.

Falamos sobre os dados de telemetria em mais detalhes em um e-book dedicado,


mas aqui está uma rápida análise dos diferentes tipos de dados de telemetria.

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.

Os logs podem ter uma linha só:

2017-07-31 13:36:42.585 CEST [4974] LOG: database system was shut down

at 2017-06-17 16:58:04 CEST

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 11


Considerações para uma solução de observabilidade empresarial

Ou podem abranger várias linhas:

2017-07-31 13:36:43.557 CEST [4983] postgres@postgres LOG: duration: 37.118

ms statement: SELECT d.datname as "Name",

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",

pg_catalog.array_to_string(d.datacl, E'\n') AS "Access

privileges"

FROM pg_catalog.pg_database d

ORDER BY 1;

Métricas

As métricas são valores numéricos que refletem alguma característica de um


sistema. Podem ser contadores que incrementam cada vez que algo acontece (por
exemplo, quando uma página é carregada), podem ser acumuladores (Sent Bytes
e Received Bytes) ou podem ser agregados ou calculados ao longo de um período
(carga do sistema).

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 12


Considerações para uma solução de observabilidade empresarial

É 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

Os traces mostram a atividade e os caminhos que as solicitações percorrem em uma


aplicação, bem como quais componentes estão chamando outros componentes ou
serviços. Eles geralmente são representados por uma visualização em cascata e
podem mostrar um trace de uma única operação ou um trace distribuído, que pode
representar uma transação inteira em vários serviços.

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 13


Considerações para uma solução de observabilidade empresarial

Um trace também pode ser representado como um mapa do serviço mostrando


a conectividade do serviço. Os traces costumam ser a primeira parada na depuração
de problemas ou interrupções. Eles ajudam a apontar onde nos logs ou quais métricas
pode ser melhor analisar.

Dados de segurança

As linhas entre observabilidade e segurança estão se confundindo, com dados


semelhantes sendo usados em ambas as disciplinas. Os dados de segurança devem
ser considerados parte de uma plataforma de observabilidade unificada. Afinal,
eles são simplesmente dados de telemetria adicionais analisados de uma perspectiva
diferente. A capacidade de fazer a triagem e identificar problemas de segurança
deve fazer parte da sua solução de observabilidade, bem como a capacidade de
agir e isolar a infraestrutura do problema.

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 14


Considerações para uma solução de observabilidade empresarial

Como simplificar a ingestão dos seus dados de observabilidade

Os sistemas e serviços geram dados de telemetria de muitas maneiras diferentes;


por isso, é importante que uma solução de observabilidade guie você pelo processo de
integração de todos os tipos de dados. O uso de assistentes, instruções passo a passo
ou até mesmo o gerenciamento central de coletores e agentes tornará a ingestão dos
dados mais intuitiva. Esse nível de suporte também ajuda a abstrair o processo; você
não deve precisar se tornar um especialista na API de métricas de um banco de dados
para extrair valor de seus principais indicadores de desempenho (KPIs).

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.

Os traces podem ajudar. Se os logs e as métricas fornecem uma visão da sua


aplicação de fora, os traces fornecem uma visão de dentro. E a coleta de dados de
trace das aplicações não deve ser um trabalho pesado. As ferramentas que você usa
para instrumentar seu código devem fornecem um caminho de introdução rápido,
mas dar também a capacidade de customizar o que é instrumentado. Você também
precisará enriquecer seus traces com seus próprios metadados, além dos metadados
que aprimoram o contexto e as informações de integração, conforme descrito abaixo.

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.

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 15


Considerações para uma solução de observabilidade empresarial

O desafio dos dados de alta dimensão, alta cardinalidade e alto volume

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.

Perpendicularmente aos dados de alta dimensão, temos dados de alta cardinalidade.


Alta cardinalidade significa ter muitas instâncias para cada uma das dimensões de
métricas acima (para cada host, servidor, pod ou container). Se continuarmos com
a analogia do banco de dados relacional, não apenas teremos uma tabela ampla, mas
também observaremos uma grande quantidade de linhas. A capacidade de buscar,
filtrar e agregar em um grande número de campos com um número ainda maior de
eventos torna-se fundamental para o sucesso das nossas metas de observabilidade.

O crescimento dos dados de observabilidade tende a ser exponencial; estamos


adicionando novos hosts, endpoints e serviços o tempo todo. Os sistemas devem
conseguir lidar com essa complexidade de crescimento e fornecer aos usuários a
capacidade de acessar e analisar seus dados. Junto com a capacidade de utilizar
dados de alta dimensão e alta cardinalidade está a necessidade de gerenciar
os dados de telemetria. Como muitos outros tipos de informação, os dados de
observabilidade perdem valor com o tempo. Mas dados com um ou dois anos ainda
podem ter valor. A capacidade de gerenciar por quanto tempo podemos manter os
dados e controlar como podemos acessá-los e analisá-los tem um impacto direto em
como podemos comparar as tendências com a semana, mês ou ano anterior. Uma vez
que a observabilidade trata de encontrar as incógnitas desconhecidas, ter o máximo
possível de seus dados de telemetria disponíveis é fundamental para encontrar
insights e melhorar o desempenho da aplicação.

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 16


Considerações para uma solução de observabilidade empresarial

Outras considerações adicionais em torno da sua plataforma de observabilidade incluem


como é feita a cobrança por ela e quem controla os dados. É por agente, por ingestão
de dados ou talvez por uso de recursos? À medida que você for instrumentando mais
o seu ambiente de aplicações ou se ele crescer substancialmente, suas despesas
operacionais também aumentarão. Você escolhe armazenar mais ou menos dados para
controlar as despesas em um modelo baseado em agente? Você ingere menos dados
para minimizar os custos?

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.

Como analisar todos os seus dados de observabilidade


para ter insights práticos
Logs, métricas e traces são, obviamente, tipos completamente diferentes de
dados de telemetria. Mas uma solução de observabilidade competente os colocará
em contexto e ajudará você a agir com base nessas informações. Para extrair o
máximo de valor de uma plataforma de observabilidade, sua solução deve fornecer
visualização e navegação intuitivas de dados: interfaces criadas especificamente
para permitir que você interaja com os dados de maneira fácil e flexível e ferramentas
com a possibilidade de filtrar e encontrar os logs de uma determinada aplicação
em um dia específico. Em outras palavras, a capacidade de criar agregações
de métricas customizadas rapidamente sem a necessidade de ser um cientista de
dados — porque, quando surge um problema de desempenho, você precisa pesquisar
e resolver o problema imediatamente.

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 17


Considerações para uma solução de observabilidade empresarial

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.

Na posição de desenvolvedor, você pode, em vez disso, começar pelo mapa do


serviço no monitoramento de performance de aplicação (APM), que mostra quais
serviços precisam de atenção. Essa visualização permite que você faça a triagem
dos problemas sem perder o contexto do que está examinando (como desenrolar
um novelo de lã, mas sem perder o fio da meada).

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 18


Considerações para uma solução de observabilidade empresarial

Qual é o objetivo? Observabilidade completa de ponta a ponta em seus ambientes de


aplicações com todos os seus dados de telemetria. A capacidade de ver as métricas
da sua infraestrutura, passando pela aplicação e por todo o caminho até a experiência
do usuário final. E a capacidade de agrupar e correlacionar dados de telemetria às
suas necessidades específicas em qualquer ponto e momento. Uma plataforma de
observabilidade abrangente lhe permitirá monitorar o desempenho das aplicações
no dia a dia, solucionar problemas conhecidos e até mesmo descobrir problemas que
você desconhecia totalmente.

Contexto e correlação no fluxo de trabalho para solução de problemas

Já mencionamos o contexto algumas vezes. A observabilidade consiste em usar logs,


métricas e traces juntos. E os metadados com os quais os eventos são enriquecidos
podem fazer toda a diferença na capacidade da solução de detectar e encontrar a
causa raiz — basicamente, uma maneira de gerenciar as incógnitas desconhecidas,
problemas que você desconhece no seu ambiente de aplicações.

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.

Como resolver possíveis problemas de desempenho com detecção de


anomalia, AIOps e alerta

Mencionamos anteriormente que a observabilidade ajuda a compreender a integridade


geral do sistema. Visualizadores e dashboards ajudam a fazer a triagem dos problemas
e a investigar erros. Mas o que realmente agrega valor é permitir que você saiba
proativamente onde pode haver um problema. Existem vários grupos de outros recursos
que uma solução de observabilidade deve incluir para aprimorar sua capacidade de
solução de problemas e auxiliar nas incógnitas desconhecidas — os pontos cegos no
monitoramento da performance de aplicação.

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 19


Considerações para uma solução de observabilidade empresarial

Detecte outliers e erros relativos ao desempenho de linha de base

Aplicações e serviços não recebem uma quantidade constante de tráfego. No mínimo,


é provavelmente cíclico, com base na hora do dia ou mesmo no dia da semana.
Sua solução de observabilidade deve ser capaz de detectar as tendências e padrões
e informar quando algo sair da janela normal.

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.

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 20


Considerações para uma solução de observabilidade empresarial

Alerta e notificações

Junto com a detecção de anomalia estão os alertas e as notificações. Quando


ocorrerem anomalias, você precisará saber sobre elas da maneira que
escolher. Não são apenas sobre as anomalias que você precisa receber alertas.
Frequentemente, o software nativo da nuvem é implantado usando um modelo
de DevOps: as equipes não são divididas em operações e desenvolvimento;
em vez disso, trabalham em múltiplas funções enquanto o código é desenvolvido
e implantado continuamente.

Monitoramento proativo para atender a SLOs e SLAs durante


o desenvolvimento

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

Compare, contraste e correlacione com consultas ad-hoc para


melhorar o desempenho

Uma solução de observabilidade robusta deve ser capaz de comparar e contrastar


dados: como está o desempenho hoje em comparação com ontem? A nova versão
está encontrando mais erros do que a versão anterior? Os usuários de dispositivos
móveis estão observando mais lentidão do que os usuários de computadores?
A capacidade de fazer perguntas ad-hoc sobre seus dados e depois dinamizar
e refinar sua investigação pode ajudar você a entender tendências e padrões. Esse
é um motivo adicional para ter um armazenamento de dados unificado e armazenar
dados de alta cardinalidade. Sua solução de observabilidade não deve apenas ajudar
a comparar e contrastar, mas deve guiar você ao longo do caminho e mostrar quais
diferenças podem estar contribuindo para uma experiência insatisfatória do usuário.

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 21


Considerações para uma solução de observabilidade empresarial

A observabilidade ajuda a encontrar incógnitas desconhecidas

Relacionada à detecção de outliers e erros está a capacidade de encontrar e resolver


problemas em áreas que você nem sabe que deve observar. Frequentemente,
os problemas mais difíceis de resolver são aqueles que são transitórios e raros. Eles
podem surgir devido a alterações no ambiente, na aplicação ou em uma combinação de
fatores. Esses são os tipos de problemas que solidificam a necessidade de capturar tudo
e qualquer coisa em termos de dados. Além de determinar o que estava acontecendo
no momento do problema, um armazenamento de dados unificado também ajuda
a entender quando eventos inesperados ocorrem, colocando diferentes sinais em
contexto e ao seu alcance quando você precisa explorar mais.

Um caso para uma solução de observabilidade


unificada e para evitar o uso de ferramentas isoladas
Muitas vezes, as organizações começam com a necessidade de agregação de logs.
Elas colocam isso em funcionamento e, em seguida, decidem que também devem
começar a coletar métricas de infraestrutura, então adicionam outra ferramenta.
Esse processo se repete novamente com o APM. Em pouco tempo, elas têm três
ou mais ferramentas para monitorar seu ecossistema de aplicações, junto com
armazenamentos de dados já isolados.

Embora seja definitivamente possível fazer a triagem e resolver problemas e erros


com ferramentas isoladas, a abordagem manual para diagnosticar problemas usando
várias ferramentas que só servem para uma coisa certamente torna isso mais difícil.
Você perde o contexto e os aspectos de integração de uma boa solução. Lembre-se
também de que, com várias ferramentas, todos os aspectos da sobrecarga também
são multiplicados: administração, treinamento e armazenamento, só para citar alguns.

Ter todos os dados de telemetria em um único armazenamento de dados com a


plataforma de observabilidade certa que se redimensiona e fornece cobertura nas fases
de desenvolvimento, preparação e produção é o ideal. Com a pesquisa e investigação
certas, encontrar uma solução de observabilidade que permita instrumentar e observar
tudo no seu ambiente de TI de uma maneira econômica é uma meta importante. E obter
um verdadeiro entendimento das características de desempenho dos seus sistemas,
aplicações e serviços é fundamental para aumentar a produtividade do desenvolvedor,
acelerar a inovação e garantir uma ótima experiência do cliente.

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 22


O que a observabilidade
unificada pode fazer por mim?
Os benefícios da observabilidade variam de acordo com a sua função: se você estiver
olhando da perspectiva de um desenvolvedor, verá as coisas de forma diferente do
que se estiver olhando de uma perspectiva de operações e diferente novamente se
você for o proprietário da empresa.

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.

• Quais servidores estão sobrecarregados?

• Qual é o nosso tempo médio de resposta para uma determinada operação?

• Quais serviços me custam mais na minha fatura da AWS?

• O que está fazendo com que o carregamento seja mais demorado para alguns
usuários do que para outros?

• Quais serviços que consumimos estão se aproximando de seus SLAs?

• Qual seria um bom SLO para esse serviço?

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 23


O que a observabilidade unificada pode fazer por mim?

• Quais serviços o serviço Z chama?

• Qual dos meus serviços não está íntegro?

• Qual serviço devo tentar ajustar primeiro?

• Qual é a experiência geral do usuário no meu website?

• Como a alteração mais recente afetou o desempenho?

• Como a última alteração afetou a estabilidade?

• Devo reverter a alteração mais recente?

• Qual versão tem o melhor desempenho?

• Quais logs seria interessante olhar?

• Algum serviço está se comportando de maneira anormal?

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.

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 24


Como começar a trabalhar
com o Elastic Observability
Conforme você embarca na sua jornada de observabilidade, definitivamente há muitas
considerações a fazer sobre o ambiente de aplicações e as necessidades. Embora
os recursos e as funções sejam importantes para sua plataforma de observabilidade,
a abertura e a extensibilidade, o acesso aos seus dados de telemetria e o custo total
de propriedade afetarão seu sucesso no longo prazo. E prepare-se para o fato de
que os limites entre observabilidade e segurança estão se confundindo. As mesmas
informações de telemetria que você está coletando para observar seu ambiente
também podem ser usadas para insights de segurança e detecção de intrusões.

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!

Experimente o Elastic Observability

elastic.co/pt Como utilizar a observabilidade para criar melhores aplicações | 25


© 2021 Elasticsearch B.V. Todos os direitos reservados.

A Elastic torna os dados utilizáveis em tempo real e em escala para busca


empresarial, observabilidade e segurança. As soluções da Elastic são
desenvolvidas sobre uma única stack de tecnologia aberta e gratuita que pode
ser implantada em qualquer lugar, possibilitando a obtenção de insights práticos
instantaneamente de qualquer tipo de dados — desde encontrar documentos até
monitorar a infraestrutura e caçar ameaças. Milhares de organizações em todo
o mundo, incluindo Cisco, Goldman Sachs, Microsoft, The Mayo Clinic, NASA,
The New York Times, Wikipédia e Verizon, usam a Elastic para operar sistemas
de missão crítica. Fundada em 2012, a Elastic tem suas ações negociadas
publicamente na NYSE sob o símbolo ESTC. Saiba mais no website elastic.co/pt.

ESCRITÓRIO DA EMPRESA PARA AS AMÉRICAS


800 West El Camino Real, Suite 350, Mountain View, Califórnia 94040
Telefones: +1 650 458 2620 (geral), +1 650 458 2625 (vendas)

info@elastic.co

Você também pode gostar