Browsing Category

Transformação digital

Transformação digital

O que é telemetria, porque é importante e como começar!

December 17, 2017

A estabilidade de aplicações tem sido uma preocupação frequente para companhias, especialmente quando falamos sobre aplicações de alto valor agregado. Toda vez em que uma aplicação vital para de funcionar, muito dinheiro é perdido ou muito dinheiro deixa de ser feito. Por causa disso, muito tem sido dito sobre telemetria para aplicações cada vez mais frequentemente. Mas o que realmente é telemetria para software e como obter benefícios desta prática?

 

O que é telemetria?

Telemetria é o ato de medir algo de forma remota, a distância e automaticamente.

Falando sobre arquitetura de software, a telemetria é fácil de se encontrar. Alguns exemplos simples são a plataforma Chrome, os sistemas operacionais do Windows, OSX, Android, iOS e Playstation, e também aplicativos mobile e desktop, como Spotify e Microsoft Office. O que estes softwares fazem é operar e reunir todos os dados que importam para seu funcionamento. Então eles enviam, naturalmente apenas caso o usuário permita, para seus fabricantes (Google, Microsoft, Apple, etc). O próximo passo, quando eles estão agrupados, é analisar os dados e mudar o que for necessário. A intenção principal é melhorar os sistemas para que eles possam operar em diferentes ambientes sob seu devido esperado comportamento.

Então a questão principal sobre telemetria é operar, obter dados, analisar, e então melhorar o código do sistema para alcançar um comportamento melhor.

 

Porque telemetria?

A telemetria pode trazer muito valor ao negócio. Vamos explorar um exemplo. Imagine que você possui um aplicativo que possui um FAQ não interativo com seus usuários. Uma vez que seus usuários chegam ao FAQ, eles pararão de usar seu call center porque já encontraram o que estavam procurando. Isto significa MENOS DINHEIRO GASTO para sua companhia. Agora imagine que uma das respostas (um vídeo rápido de how-to), por alguma razão, para de ser mostrado (deixa de funcionar). Se você não possuir algo verificando a saúde desta tela, será muito difícil para identificar esta falha, pois não temos pessoas navegando nos sistemas 24/7. Então você dependerá da boa vontade de algum usuário de lhe INFORMAR que aquela tela parou de funcionar. Isto acontecerá em algum momento, mas antes disto, seu call center começará a ser mais e mais acionado. Isto é desperdício de dinheiro devido a mal funcionamento de software.

A telemetria pode ser usada para verificar muitos níveis de operação de serviço:

  • Informações técnicas e profundas, como CPU e memória. Estão verdes?
  • O número de máquinas ativas coincide com o conhecimento histórico que você possui sobre quantas deveriam estar ativas para suportar 1, 2 ou 3 mil usuários ao mesmo tempo?
  • Os web-services core que seus clientes acessam a todo tempo estão de pé?
  • A tela que seus usuários usam para logar está funcionando?

Então quando uma prática de telemetria estiver olhando para as partes importantes da sua aplicação, você será capaz de tomar ações e prevenir que problemas aconteçam.

 

Como começar?

Uma boa implementação dependerá do tamanho da informação que você armazenará e analisará. Quanto mais informações tiver, mais infraestrutura e conhecimento você precisará ter para processar tudo. Pode significar inclusive usar ferramentas bigdata. Mas vamos usar um novo exemplo simples, como um sistema que recebe dados de segurança sobre veículos, de uma companhia que vende cartas de seguro. Uma boa forma de iniciar pode ser como abaixo:

  • Identifique porque medir: vamos medir porque é um serviço vital que diz aos nossos clientes como suas cargas estão sendo transportadas pelas estradas;
  • Identifique os objetivos relacionados: o objetivo principal é manter o sistema inteiro funcionando sem down time, porque toda vez que a aplicação para, o contrato permite aos clientes que não paguem por aquele down time;
  • Identifique o que medir: vamos verificar se todas as nossas entradas de dados estão funcionando. Vamos também verificar se elas estão enviando a mesma quantidade de dados que estamos acostumados a receber;
  • Defina uma estratégia para medição: vamos atingir todo end-point das várias entradas de dados. Se elas estão disponíveis, significa verde. Se não estiverem, significa que há problemas. Então vamos ler a quantidade de dados recebidos no último minuto. Se estiver próximo do número conhecido, o serviço está saudável;
  • Defina uma estratégia de análise: podemos automatizar algo? Se um dos endpoints estiver down, é útil reiniciar o sistema operacional, container ou servidor de aplicações do load balancer ou dos micro serviços? Ou deverá ser mostrado em um dashboard para que um humano analise?
  • Implemente formas de coletar os dados: vamos criar o código para reunir os dados e tomar ações, ou para mostrá-las;
  • Mostre as informações! Agora é a hora de mostrar as informações coletadas. É útil criar um gráfico? Vamos mostrar usando cores, para que as pessoas possam identificar facilmente quando houver um problema. Se precisamos de resultados rápidos, um bom MVP poderia ser abrir um ticket no sistema da infraestrutura;
  • Analise: esta é a hora mais importante. É hora de ser crítico e identificar a causa raiz do problema. Não foque no problema, mas no porque ele está acontecendo. Porque está acontecendo? Temos problemas com as partes que enviam dados? O problema está em nossa aplicação? Se sim, nossa aplicação está operando da forma esperada? Temos que mudar algo em nosso processo de desenvolvimento?
  • Tome ações: através de código ou não, resolva as coisas que encontrou em todos os passos acima;

 

A telemetria pode trazer muito valor ao negócio. Ela lhe dará inteligência para agir antes das coisas acontecerem. Se seu negócio é crítico, telemetria pode significar muito dinheiro facilmente. Esta é uma prática comum a muitas coisas em nossas áreas administrativas, como o mindset PDCA ensinou. Porque não fazer para nosso software?