A Aplicação da Estatística na Ciência de Dados
24 de maio de 2021Lançadas as Atualizações do PostgreSQL13.3, 12.7, 11.12, 10.17 e 9.6.22
24 de junho de 2021Por volta de 2018, começou-se a falar sobre a evolução do monitoramento, sendo utilizado o termo “Observabilidade”, nos círculos de engenheiros de software. Com a intenção de criar aplicativos melhores e mais estáveis, a observabilidade já é considerada como um dos pontos vitais para estes engenheiros.
A capacidade de observação ou observabilidade, pode ser vista como um grande conjunto do monitoramento, onde é enriquecido com diversas informações para realizar a depuração e criação de perfis por meio de contextos reunindo métricas brutas, rastreamento de dados, eventos e logs. Os desenvolvedores podem começar a obter em tempo real o comportamento de seus sistemas, e quais são os possíveis problemas que podem estar ocorrendo.
Atualmente, com a mudança de sistemas para software distribuído por meio de microsserviços e contêineres, a história de ‘‘não ser capaz de gerenciar o que não pode medir’’ nunca foi tão relevante.
-
Tripé da Observabilidade
Existem três pontos que sustentam a observabilidade, que são: métricas, rastreamento e registros.
Ao separarmos cada um, estes representam a capacidade do desenvolvedor a monitorar e orquestrar seus sistemas. Então, ao associá-los e apresentá-los em tempo real, é possível tornar esses sistemas totalmente observáveis.
“Não se trata de logs, métricas ou rastreamento, mas de ser orientado pelos dados durante a depuração, e usar o feedback para iterar e melhorar o produto” escreveu a desenvolvedora de software Cindy Sridharan.
Greg Ouillon, o CTO para a Europa, Oriente Médio e África no fornecimento da ferramenta de monitoramento ‘New Relic’, vê a observabilidade como uma junção das tendências de monitoramento e engenharia de software que moldaram a era da nuvem.
“A capacidade de observação aborda esses desafios repensando o monitoramento e se adaptando ao novo paradigma da tecnologia.”, disse Ouillon. “Ao fornecer a você uma visão totalmente conectada de todos os dados de telemetria de software em um só lugar, a observabilidade em tempo real permite que você domine proativamente o desempenho de sua arquitetura digital, acelere a inovação e a velocidade do software e reduza os custos operacionais e de trabalho.
-
Observabilidade X Monitoramento
Muitos entendem que a capacidade da observabilidade será apenas como uma conveniente reformulação do termo ‘‘monitoramento de Aplicações’’. Porém todo e qualquer ceticismo em torno disso é justificável. Há uma diferença básica nas palavras Monitorar (Verbo, algo que você faz) e observabilidade (substantivo, o atributo de um sistema).
Ernest Muller, engenheiro e blogueiro técnico escreveu em 2018 que “a observabilidade é uma propriedade de um sistema. Você pode monitorar um sistema usando vários instrumentos, mas se o sistema não externalizar seu estado bem o suficiente para que você possa descobrir o que realmente está acontecendo lá, então você está preso.”
Conforme os aplicativos são divididos em ‘‘blocos menores’’, chamados de microsserviços, e estes são hospedados em contêineres nos servidores em nuvem distribuída e os implantam continuamente sob os olhares da equipe de devops, acaba se tornando uma necessidade crítica de implementar ferramentas de observabilidade.
Cindy Sridhan escreveu em seu livro ‘Distributed Systems Observability’ que “Observabilidade é um superconjunto de monitoramento. […] À medida que os sistemas se tornam mais distribuídos, os métodos para construí-los e operá-los estão evoluindo rapidamente – e isso torna a visibilidade de seus serviços e infraestrutura mais importante do que nunca.”, escreveu Sridharan. “Ela [observabilidade] fornece não apenas visões gerais de alto nível da integridade do sistema, mas também percepções altamente granulares sobre os modos de falha implícitos do sistema. Além disso, um sistema observável fornece amplo contexto sobre seu funcionamento interno, desbloqueando a capacidade de descobrir problemas sistêmicos mais profundos.”
-
Próximos Passos
Para os usuários e fornecedores de soluções no mundo da observabilidade, automatizar a averiguação do processo até o ponto em que todos os problemas sejam automaticamente identificados e, em seguida, serem resolvidos antes mesmo de possíveis impactos que possam ser causados no ambiente, é considerado como um passo crucial. Implementar possibilidades de correção de falhas automaticamente diretamente no software antes mesmo dos desenvolvedores tenham conhecimento nos painéis é considerado como uma espécie de ‘Santo Graal’.
Existem comunidades e startups, bem como projetos de código aberto, olhando diretamente para esta nova ‘carga’ de desafios relacionados à observabnilidade. A Elastic, por exemplo, possui a ferramenta ‘Elastic Observability’, onde é possível reunir logs, métricas e traces de APM escalados em um único lugar, que permite monitorar e reagir a eventos que ocorram em qualquer lugar do seu ambiente.
Já com o WSO2, atualmente a observabilidade é utilizada de uma maneira em que é possível medir o estado interno de um aplicativo com base nas saídas acessíveis externamente. A observabilidade no WSO2 ajuda a evitar falhas no sistema de produção, notifica os usuários a tomarem as medidas necessárias com antecedência e permite que os usuários isolem os problemas em um sistema de produção ativo.
Tanto a Elastic, quando a WSO2 detém tecnologias que estão constantemente evoluindo conforme vão surgindo as necessidades/dificuldades no mercado. Fornecedores como Dynatrace, Datadog, New Relic, SolarWinds, Scalyr, e o recém-chegado Honeycomb, também buscam fornecer instrumentação pronta para uso e capacidade de observação como um serviço para equipes de engenharia.
A observabilidade não deve ser o objetivo em si, mas sim ser utilizada como um meio de construir e operar um software mais confiável para os clientes. “O valor da observabilidade de um sistema deriva principalmente do valor comercial e organizacional dele derivado […] Ser capaz de depurar e diagnosticar problemas de produção rapidamente não só contribui para uma ótima experiência do usuário final, mas também abre caminho para a operabilidade humana e sustentável de um serviço, incluindo a experiência de plantão.”, escreveu Sridharan.
Bibliografia –
https://www.infoworld.com/article/3607980/what-is-observability-software-monitoring-on-steroids.html
https://www.elastic.co/pt/observability