Do not speak Portuguese? Translate this site with Google or Bing Translator
Não se iluda com observabilidade

Posted on: March 18, 2024 10:18 AM

Posted by: Renato

Views: 162

Área de Observability na area de tecnologia!

Na área de tecnologia, o conceito de "área de Observability" refere-se à capacidade de compreender o estado interno de um sistema através da análise de seus sinais externos. Isso envolve monitorar e coletar dados sobre o desempenho, a saúde e o comportamento de sistemas complexos, como aplicativos, serviços em nuvem, infraestrutura de rede e muito mais.

A observabilidade é crucial para identificar problemas, diagnosticar falhas e otimizar o desempenho de sistemas distribuídos e escaláveis. Geralmente, envolve a coleta de métricas, logs e traces (rastreamentos) de diferentes componentes de um sistema para fornecer insights abrangentes sobre seu funcionamento.

Algumas das práticas comuns associadas à área de Observability incluem:

  1. Monitoramento de Métricas: Coleta de dados quantitativos sobre o desempenho e o estado dos sistemas, como tempo de resposta, uso de recursos, taxas de erro, entre outros.

  2. Registro de Logs: Captura de registros de eventos e atividades significativas que ocorrem nos sistemas, permitindo a análise retrospectiva e a solução de problemas.

  3. Tracing (Rastreamento): Rastreamento de solicitações através de sistemas distribuídos para identificar gargalos de desempenho e entender o fluxo de dados entre os componentes.

  4. Alertas e Notificações: Configuração de alertas para detectar e responder a eventos indesejados ou condições anômalas nos sistemas em tempo real.

  5. Análise de Dados e Visualização: Utilização de ferramentas analíticas e visualizações de dados para entender padrões, tendências e correlações nos dados coletados.

  6. Automação de Ações Corretivas: Implementação de sistemas automatizados para responder a problemas identificados, como escalonamento de recursos, migração de cargas de trabalho ou reinicialização de serviços.

A observabilidade é uma prática fundamental em ambientes modernos de computação em nuvem, microserviços e DevOps, onde a complexidade dos sistemas torna essencial entender seu comportamento e saúde em tempo real para garantir a confiabilidade e a eficiência operacional.

OBSERVABILIDADE APLICADA

observabilidade aplicada é uma técnica fundamental para garantir a eficiência, segurança e disponibilidade de sistemas digitais. Ela consiste em monitorar, coletar e analisar dados de diversas fontes (como logs, métricas, rastreamentos de transações e eventos) para identificar e solucionar problemas de forma rápida e eficiente. Seu objetivo final é aprimorar a visibilidade e o entendimento de como um sistema funciona em produção.

Com a crescente complexidade dos sistemas de tecnologia, é essencial monitorar, entender e solucionar problemas em tempo real para o sucesso das empresas. A observabilidade aplicada é composta por diversas ferramentas e técnicas, como monitoramento de aplicativos, análise de logs, rastreamento de transações e medição de desempenho. Ela surgiu como uma metodologia para oferecer maior visibilidade dos sistemas de tecnologia e possibilitar a identificação de problemas de forma mais rápida e eficiente. 

Considerada uma tendência, a observabilidade aplicada deve se tornar uma das prioridades de TI para as empresas nos próximos anos, pois é crucial para identificar problemas rapidamente e corrigi-los antes que causem interrupções ou falhas. 

 

 

Gartner – 2022

  

Fundamentos da Observabilidade aplicada 

A Observabilidade aplicada é uma metodologia que visa permitir que os desenvolvedores, engenheiros e operadores de sistemas de tecnologia possam entender e solucionar problemas em tempo real. Isso é feito por meio da coleta e análise de dados, que permitem uma visibilidade completa do sistema. 

A observabilidade é baseada em três fundamentos principais: 

 

 

Métricas referem-se a dados quantitativos que medem o desempenho e a utilização do sistema. Essas métricas são coletadas continuamente e podem ser analisadas para identificar tendências e anomalias, permitindo que os administradores de sistemas atuem proativamente para prevenir problemas antes que ocorram. 

Logs são registros detalhados de eventos que ocorrem no sistema. Eles podem ser usados para solucionar problemas específicos, identificar falhas de segurança e rastrear ações de usuários. Os logs são geralmente gerados por aplicativos e sistemas operacionais, e podem ser analisados em tempo real ou armazenados para análise posterior. 

Rastreamentos, também conhecidos como “traces”, são registros detalhados do caminho que uma solicitação de usuário segue por um sistema. Eles permitem que os administradores de sistemas vejam como as solicitações são processadas por diferentes componentes do sistema, desde o front-end até o back-end. Isso pode ser útil para identificar gargalos no desempenho e determinar onde ocorrem erros ou falhas. 

Ao utilizar métricas, logs e rastreamentos juntos, os administradores de sistemas e desenvolvedores podem obter uma visão mais completa e precisa do comportamento do sistema, identificar problemas mais rapidamente e tomar decisões assertivas baseadas em informações para melhorar a eficiência, segurança e disponibilidade do sistema. 

Por que a Observabilidade é Importante? 

 

 

A observabilidade é essencial para lidar com a crescente complexidade dos sistemas digitais atuais. À medida que os sistemas se tornam mais complexos, é mais difícil entender como eles funcionam e como solucionar problemas. A observabilidade aplicada fornece maior visibilidade e controle sobre sistemas complexos. 

Enquanto sistemas simples podem ser gerenciados com monitoramento básico, sistemas complexos exigem uma abordagem mais sofisticada. A observabilidade aplicada permite que os engenheiros monitorem cada componente do sistema e obtenham insights valiosos sobre como esses componentes interagem entre si. Dessa forma, é possível identificar problemas que podem estar ocorrendo em vários componentes do sistema e tomar medidas imediatas para corrigi-los antes que causem falhas ou interrupções. 

Com uma visão clara de como o sistema está funcionando em produção, os engenheiros podem identificar áreas de melhoria e fazer ajustes no código, arquitetura ou infraestrutura para tornar o sistema mais eficiente e confiável. 

 

Observabilidade X Monitoramento 

Observabilidade e monitoramento são duas práticas distintas que se complementam no processo de garantir a eficiência, segurança e disponibilidade de sistemas digitais. 

O monitoramento se concentra em coletar e analisar dados de métricas e logs para entender o estado de um sistema em tempo real. Por meio de ferramentas como dashboards e alertas, o monitoramento ajuda a identificar problemas rapidamente e tomar medidas corretivas. 

Já a observabilidade vai além do monitoramento, buscando fornecer uma visão completa do sistema em produção, desde a perspectiva do usuário até os detalhes de baixo nível da infraestrutura. Ela se concentra em coletar e analisar dados de várias fontes, como logs, métricas, rastreamentos de transações e eventos, para identificar problemas e solucioná-los de forma mais rápida e eficiente. 

Enquanto o monitoramento se preocupa principalmente com a coleta e análise de dados, a observabilidade é uma abordagem mais ampla que inclui a análise de dados, mas também envolve a compreensão da complexidade do sistema e a identificação de pontos cegos. A observabilidade busca tornar o sistema mais transparente, compreensível e fácil de gerenciar. 

 

Qual a sua aplicação? 

 

 

A aplicação da Observabilidade Aplicada é ampla, sendo utilizada em uma variedade de setores, incluindo tecnologia, finanças, saúde e varejo. Por exemplo, as empresas de tecnologia podem usar a Observabilidade Aplicada para monitorar o desempenho de seus aplicativos em nuvem, identificar problemas de escalabilidade e otimizar o desempenho do sistema. Já as empresas de saúde podem usar a Observabilidade Aplicada para monitorar a integridade de seus sistemas de informação, garantindo que os dados do paciente sejam mantidos com segurança e acessíveis apenas para pessoas autorizadas. 

Alguns exemplos de aplicações da Observabilidade aplicada são: 

Monitoramento e solução de problemas em tempo real: a Observabilidade aplicada permite monitorar e analisar dados em tempo real, identificando e solucionando problemas de forma rápida e eficiente, antes que eles causem interrupções ou falhas no sistema. 

Melhoria do desempenho do sistema: a Observabilidade aplicada possibilita o monitoramento e análise de métricas e dados de desempenho do sistema, permitindo identificar gargalos e otimizar o desempenho do sistema. 

Identificação de problemas de segurança: a Observabilidade aplicada pode ajudar a detectar e solucionar problemas de segurança em sistemas digitais, monitorando e analisando dados de logs e rastreamento de transações. 

Análise de dados e tomada de decisões: a Observabilidade aplicada permite a coleta e análise de dados de diversas fontes, possibilitando a identificação de tendências e padrões, além de fornecer insights para tomada de decisões estratégicas. 

Melhoria da experiência do usuário: a Observabilidade aplicada pode ajudar a melhorar a experiência do usuário em sistemas digitais, monitorando e analisando dados de uso e interação, e identificando pontos de melhoria. 

 

Considerações Finais

A Observabilidade Aplicada é uma abordagem que vem ganhando cada vez mais destaque na área de tecnologia, pois permite que as empresas operem sistemas complexos de forma mais eficiente e com menor risco de falhas. No entanto, é importante ressaltar que a Observabilidade Aplicada é uma abordagem que requer um investimento significativo em ferramentas e equipe especializada, além de uma cultura organizacional que valorize a colaboração e o aprendizado contínuo. Por isso, empresas que desejam adotar a Observabilidade Aplicada devem estar preparadas para investir em recursos e em uma mudança cultural. 

Em conclusão, a Observabilidade aplicada é uma técnica fundamental em sistemas digitais, permitindo a coleta, análise e interpretação de dados de diversas fontes para garantir a eficiência, segurança e disponibilidade do sistema em produção. Com a crescente complexidade dos sistemas de tecnologia, a capacidade de monitorar, entender e solucionar problemas em tempo real tornou-se fundamental para o sucesso das empresas. 

A Observabilidade aplicada é uma prática que deve ser considerada uma prioridade para as empresas nos próximos anos, pois permite identificar problemas rapidamente e corrigi-los antes que causem interrupções ou falhas. Além disso, pode ajudar a melhorar a experiência do usuário, otimizar o desempenho do sistema, detectar problemas de segurança e fornecer insights para tomada de decisões estratégicas. 

Para implementar a Observabilidade aplicada, é importante utilizar as ferramentas e técnicas adequadas, como monitoramento de aplicativos, análise de logs, rastreamento de transações e medição de desempenho. E é fundamental que as equipes de TI tenham habilidades e conhecimentos necessários para coletar e analisar os dados corretamente. 

Hoje é comum ver muitas empresas querendo implementar uma área de Observability, mas isso realmente só acontecer no papel.

Alguns dizem que observabilidade é muito complexo, que depende de muito código. Geralmente quem fala isso é do time de operações que tem pouco ou quase zero conhecimento em código.

E por esse e outros motivos muitas empresas adotam ferramentas de APM mas que ao longo prazo acabam percebendo que estão presos a um fornecedor e que não conseguem expandir o seu monitoramento devido ao custo de licenciamento e além disso percebem que seu monitoramento ainda existem gaps.

Alguns conceitos importantes

Monitoramento (tradicional)

O monitoramento tem como foco principal monitorar a disponibilidade e desempenho dos componentes de infraestruturas. Existem exceções onde é monitorado regras de negócio, mas geralmente isso só é feito em ambientes com um certo grau de maturidade ou por profissionais como uma visão estratégica sobre o negócio.

Esse tipo de monitoramento geralmente segue um fluxo:

Os times (Desenvolvedores, Administradores de redes e servidores, DBA e outros) criam um novo ambiente e enviam para o responsável do monitoramento.

Preciso monitorar esse novo ambiente

O responsável pelo monitoramento, recebe essa solicitação e geralmente questiona:

O que precisamos monitorar

A resposta geralmente é

Não sei exatamente, verifica o que o mercado está utilizando

Se o time de monitoramento tiver experiência irá trazer algumas métricas de monitoramento para avaliação, ou até mesmo dependendo da maturidade da empresa, o solicitante e o time de monitoramento vão trabalhar em conjunto para identificar o que é necessário monitorar.

Mas na grande maioria das vezes o solicitante não faz a mínima ideia do que é preciso monitorar e a responsabilidade fica para o time de monitoramento de como esse novo ambiente deve ser monitorado.

Observabilidade

Para implementar observabilidade é necessário seguir 3 pilares:

  • Logs
  • Métricas
  • Trace

Vamos analisar a realidade da grande maioria das empresas juntos? Vamos fazer esse exercício juntos.

Logs

  • Na sua empresa os desenvolvedores seguem um padrão para expor os logs?
  • Na sua empresa os desenvolvedores possuem logs configurados em todas as aplicações?

Observe que eu ainda não estou falando sobre ferramentas, estou falando sobre processos internos.

Métricas

  • O desenvolvedores sabem exatamente quais métricas são necessárias para identificar se a sua aplicação está com algum tipo de problema?

Trace

  • Existe algum tipo de instrumentação trabalhando em conjunto com os logs para identificar por onde passa as requisições da sua aplicação?

Conclusão

Bom, se você não obteve SIM para todas as perguntas anteriores, sua empresa tem um longo trabalho pela frente.

Observe que quando falamos de monitoramento tradicional, a responsabilidade de definir o que será monitorado é 100% do time de monitoramento. Quando falamos sobre os pilares da observabilidade dificilmente temos o que é necessário para garantir os pilares necessários.

Uma provocação

A disciplina gerencia de redes nos apresente um protocolo chamado SNMP, e junto com ele todo fabricante disponibiliza um documento chamado MIB que é um documento responsável por informar quais métricas estão disponíveis para o monitoramento e exatamente o que ela retorna.

Não se iluda.

Se o time de desenvolvimento não estiver disposto a instrumentar suas aplicações para expor logs e métricas possibilitando o trace, o tema obsevabilidade só vai estar implementado no papel.

Quando falamos sobre DevOps e SRE falamos de trabalho colaborativo e isso também contempla o monitoramento.

A responsabilidade deve ser compartilhada e tanto operação como desenvolvimento devem trabalhar em conjunto.

  • Time de observabilidade: Responsável por direcionar e apoiar na identificação de métricas necessárias para o monitoramento
  • Time de desenvolvimento: Responsável por implementar as mudanças necessárias no código para atender os requisitos de monitoramento.

Se nada disso for feito, estamos apenas seguindo o hype.

Espero que tenham gostado e até a próxima.

Referências 

https://www.gartner.com/en/articles/monetizing-observable-data-will-separate-the-winners-and-losers 

https://www.cisco.com/c/pt_br/solutions/full-stack-observability/what-is-observability.html 

https://www.iblueconsulting.com.br/post/tendencias-do-gartner-2023/     https://blog.algartelecom.com.br/tecnologia/observabilidade/?gclid=CjwKCAiArY2fBhB9EiwAWqHK6t1nV3RZp5rhoeV1z_APV6R5DeXEYGC1HDVnAGZQ8WhP_ZtxDdRQGRoCpT4QAvD_BwE    

https://www.nebrasil.com.br/post/observabilidade-x-monitoramento-quais-asdiferen%C3%A7as?gclid=CjwKCAiArY2fBhB9EiwAWqHK6qzbXwzjyoF_AGY68t4yjV4ZPL0oiiR6M7Aaus_t-sZAAyp2JGP2NxoCwkwQAvD_BwE  

https://www.opservices.com.br/diferenca-entre-monitoramento-e-observabilidade/ 

azion.com/pt-br/blog/beneficios-da-observabilidade/ 

https://www.splunk.com/en_us/data-insider/what-is-observability.html 

- https://medium.com/@robertsilvatech/n%C3%A3o-se-iluda-com-observabilidade-317515f156d1


1

Share

Donate to Site


About Author

Renato

Developer

Add a Comment

Blog Search


Categories

OUTROS (15) Variados (109) PHP (130) Laravel (158) Black Hat (3) front-end (28) linux (113) postgresql (39) Docker (27) rest (5) soap (1) webservice (6) October (1) CMS (2) node (7) backend (13) ubuntu (54) devops (25) nodejs (5) npm (2) nvm (1) git (8) firefox (1) react (6) reactnative (5) collections (1) javascript (6) reactjs (7) yarn (0) adb (1) Solid (2) blade (3) models (1) controllers (0) log (1) html (2) hardware (3) aws (14) Transcribe (2) transcription (1) google (4) ibm (1) nuance (1) PHP Swoole (5) mysql (31) macox (4) flutter (1) symfony (1) cor (1) colors (2) homeOffice (2) jobs (3) imagick (2) ec2 (1) sw (1) websocket (1) markdown (1) ckeditor (1) tecnologia (14) faceapp (1) eloquent (14) query (4) sql (40) ddd (3) nginx (9) apache (4) certbot (1) lets-encrypt (3) debian (11) liquid (1) magento (2) ruby (1) LETSENCRYPT (1) Fibonacci (1) wine (1) transaction (1) pendrive (1) boot (1) usb (1) prf (1) policia (2) federal (1) lucena (1) mongodb (4) paypal (1) payment (1) zend (1) vim (4) ciencia (6) js (1) nosql (1) java (1) JasperReports (1) phpjasper (1) covid19 (1) saude (1) athena (1) cinnamon (1) phpunit (2) binaural (1) mysqli (3) database (42) windows (6) vala (1) json (2) oracle (1) mariadb (4) dev (12) webdev (24) s3 (4) storage (1) kitematic (1) gnome (2) web (2) intel (3) piada (1) cron (2) dba (18) lumen (1) ffmpeg (2) android (2) aplicativo (1) fedora (2) shell (4) bash (3) script (3) lider (1) htm (1) csv (1) dropbox (1) db (3) combustivel (2) haru (1) presenter (1) gasolina (1) MeioAmbiente (1) Grunt (1) biologia (1) programming (22) performance (3) brain (1) smartphones (1) telefonia (1) privacidade (1) opensource (3) microg (1) iode (1) ssh (3) zsh (2) terminal (3) dracula (1) spaceship (1) mac (2) idiomas (1) laptop (2) developer (37) api (4) data (1) matematica (1) seguranca (2) 100DaysOfCode (9) hotfix (1) documentation (1) laravelphp (10) RabbitMQ (1) Elasticsearch (1) redis (2) Raspberry (4) Padrao de design (4) JQuery (1) angularjs (4) Dicas (40) Kubernetes (3) vscode (2) backup (1) angular (3) servers (2) pipelines (1) AppSec (1) DevSecOps (4) rust (1) RustLang (1) Mozilla (1) algoritimo (1) sqlite (1) Passport (1) jwt (4) security (2) translate (1) kube (2) iot (1) politica (2) bolsonaro (1) flow (1) podcast (1) Brasil (1) containers (3) traefik (1) networking (1) host (1) POO (2) microservices (2) bug (1) cqrs (1) arquitetura (2) Architecture (3) sail (3) militar (1) artigo (1) economia (1) forcas armadas (1) ffaa (1) autenticacao (1) autorizacao (2) authentication (4) authorization (2) NoCookies (1) wsl (4) memcached (1) macos (2) unix (2) kali-linux (1) linux-tools (5) apple (1) noticias (2) composer (1) rancher (1) k8s (1) escopos (1) orm (1) jenkins (4) github (5) gitlab (3) queue (1) Passwordless (1) sonarqube (1) phpswoole (1) laraveloctane (1) Swoole (1) Swoole (1) octane (1) Structurizr (1) Diagramas (1) c4 (1) c4-models (1) compactar (1) compression (1) messaging (1) restfull (1) eventdrive (1) services (1) http (1) Monolith (1) microservice (1) historia (1) educacao (1) cavalotroia (1) OOD (0) odd (1) chatgpt (1) openai (3) vicuna (1) llama (1) gpt (1) transformers (1) pytorch (1) tensorflow (1) akitando (1) ia (1) nvidia (1) agi (1) guard (1) multiple_authen (2) rpi (1) auth (1) auth (1) livros (2) ElonMusk (2) Oh My Zsh (1) Manjaro (1) BigLinux (2) ArchLinux (1) Migration (1) Error (1) Monitor (1) Filament (1) LaravelFilament (1) replication (1) phpfpm (1) cache (1) vpn (1) l2tp (1) zorin-os (1) optimization (1) scheduling (1) monitoring (2) linkedin (1) community (1) inteligencia-artificial (2) wsl2 (1) maps (1) API_KEY_GOOGLE_MAPS (1) repmgr (1) altadisponibilidade (1) banco (1) modelagemdedados (1) inteligenciadedados (4) governancadedados (1) bancodedados (2) Observability (1) picpay (1) ecommerce (1) Curisidades (1) Samurai (1) KubeCon (1) GitOps (1)

New Articles



Get Latest Updates by Email