"Pensando" KPIs Ops em DevOps

“Pensando” KPIs Ops em DevOps

Recentemente passei por um processo seletivo e uma das questões que foram levantadas na entrevista técnica foi relacionada com a cultura de DevOps e as melhores estratégias para criação de métricas do processo.

Muito se tem falado sobre as métricas gerais para KPIs de DevOps (veja https://puppetlabs.com/blog/5-kpis-that-make-the-case-for-devops). Neste artigo, são citadas 5 KPIs:

  • Deployment frequency
  • Speed of deployment
  • Deployment success rate
  • How quickly service can be restored after a failed deployment
  • Culture, which actually can’t be measured

Porém, além destas (que eu considero de “Alto Nível”) há algumas essenciais, principalmente para mensurar o ítem 3, que é a taxa de sucesso de deploys.

Um dashboard de Operações deveria conter, para efeitos de métricas, os seguintes ítens:

Métricas Globais:

  • Número de erros 40x e 50x
  • Baseline do load/CPU dos servidores
  • Número de requisições 20x
  • Tempo de load/carga da página

Métricas Por Aplicação:

Além das métricas Globais, válidas para todas as aplicações (com direito a DrillDown nos gráficos e URLs), uma outra métrica muito importante a ser considerada é “Número de erros de Aplicação”.

Em ambientes Windows, estamos falando dos erros de Aplicação no Event Viewer; Em ambientes Linux, o Log da aplicação – cada framework possui um padrão.

Um deploy bem sucedido, deveria:

  • Reduzir o número de erros de aplicação (o objetivo seria sempre “erro zero”)
  • Diminuição do tempo de load de página (quanto mais rápida a carga, melhor posicionamento no ranking do Google/Bing)
  • Diminuição dos erros 40x e 50x
  • Dimuição do Load/CPU dos servidores (indicativo de um código bem depurado)

Montar um dashboard com estas informações é simples: em dois ou três dias este painel estaria pronto, usando o Stack ELK (ElasticSearch, Logstash e Kibana). Para quem deseja fazer um Lab, há um how to bem interessante neste link: http://www.networkassassin.com/elk-stack-for-network-operations-reloaded/.

Outras KPIs poderiam ser implementadas de uma forma simples, bastando filtro correto nos arquivos de LOG e o envio para o LogStash.

Para quem usa Windows, uma ferramenta fundamental é o NXLog (http://nxlog.org/), que pode realizar parse dos arquivos do Event View e direcionar para um Syslog (que facilitará o tratamento e gravação no ElasticSearch).

Qualquer coisa, mail-me!