Métricas DevOps – de onde pegar dados para cálculos

Para ser sincero, Ivan frequentemente ria dos esforços fúteis dos colegas do departamento de monitoramento. Eles se esforçavam imensamente para implementar as métricas que a alta administração solicitava. Estavam tão ocupados que mais ninguém queria fazer nada.

E a administração nunca estava satisfeita - estava constantemente pedindo novas e novas métricas, rapidamente deixando de usar as que já haviam sido feitas.

Ultimamente, todos só falavam sobre Lead Time - o tempo de entrega das funcionalidades de negócios. A métrica mostrou um número insano - 200 dias para entregar uma tarefa. Como todos se impressionaram, exclamando e levantando as mãos ao céu!

Depois de um tempo, o barulho gradualmente diminuiu e a administração pediu a criação de mais uma métrica.

Ivan tinha plena certeza de que a nova métrica também morreria silenciosamente em um canto escuro.

De fato, pensou Ivan, saber o número não diz nada a ninguém. 200 dias ou 2 dias - não há diferença, porque com o número não é possível determinar a causa e entender se isso é bom ou ruim.

Esta é a armadilha típica das métricas: parece que a nova métrica revelará a essência da existência e explicará algum segredo oculto. Todos esperam por isso, mas nada acontece. Justamente porque o segredo não deve ser procurado nas métricas!

Para Ivan, isso era um estágio já superado. Ele entendia que métricas são apenas uma régua de madeira comum para medições, e todos os segredos devem ser buscados em objeto de influência, ou seja, no que forma essa métrica.

Para uma loja online, o objeto de influência serão seus clientes, que trazem dinheiro, enquanto para o DevOps – as equipes que criam e implantam distribuições usando o pipeline.

Certa vez, acomodando-se no saguão em uma poltrona confortável, Ivan decidiu pensar cuidadosamente sobre como gostaria de ver as métricas do DevOps, considerando que o objeto de influência são as equipes.

Objetivo das métricas do DevOps

É claro que todos desejam reduzir o tempo de entrega. 200 dias - isso simplesmente não é aceitável.

Mas como, essa é a questão?

Na empresa, centenas de equipes trabalham, e milhares de distribuições passam diariamente pelo pipeline do DevOps. O tempo real de entrega se apresentará como uma distribuição. Cada equipe terá seu próprio tempo e características próprias. Como encontrar algo entre essa bagunça?

A resposta surgiu por si só – é necessário identificar as equipes problemáticas e entender o que está acontecendo com elas e por que demoram tanto, enquanto se aprende com as equipes "boas" como fazer tudo rapidamente. Para isso, é preciso medir o tempo que as equipes passaram em cada um dos ambientes DevOps:

Métricas DevOps – de onde pegar dados para cálculos

O objetivo do sistema será a seleção de equipes com base no tempo de passagem pelos ambientes, ou seja, no final devemos obter uma lista de equipes com tempos selecionados, e não apenas números.

Se soubermos quanto tempo foi gasto no total em cada ambiente e quanto tempo foi gasto em paralisações entre os ambientes, poderemos contatar as equipes, investigar mais detalhadamente as causas e resolvê-las", pensou Ivan.

Métricas DevOps – de onde pegar dados para cálculos

Como calcular o tempo de entrega para DevOps

Para fazer a contagem, era necessário se aprofundar no processo DevOps e suas entidades.

Na empresa, é utilizado um número limitado de sistemas, e as informações podem ser obtidas apenas a partir deles, e de mais nenhum outro lugar.

Todas as tarefas na empresa eram registradas no Jira. Quando uma tarefa era iniciada, um branch era criado, e após a implementação, era feito um commit no BitBucket e um Pull Request. Ao aceitar o PR (Pull Request), um pacote era automaticamente criado e salvo no repositório Nexus.

Métricas DevOps – de onde pegar dados para cálculos

Em seguida, o pacote era implantado em vários ambientes com o uso do Jenkins para verificar a correção do deploy, testes automáticos e manuais:

Métricas DevOps – de onde pegar dados para cálculos

Ivan detalhou quais informações poderiam ser extraídas de quais sistemas para calcular o tempo nos ambientes:

  • Do Nexus – Tempo de criação do pacote e nome da pasta que continha o código da equipe.
  • Do Jenkins – Hora de início, duração e resultado da execução de cada job, nome do ambiente (nos parâmetros da job), estágios (passos da job), link para o pacote no Nexus.
  • Ivan decidiu não incluir o Jira e o BitBucket no pipeline, pois eles estavam mais relacionados à fase de desenvolvimento, e não à implantação do pacote final nos ambientes.

Métricas DevOps – de onde pegar dados para cálculos

Com base nas informações disponíveis, um esquema foi elaborado:

Métricas DevOps – de onde pegar dados para cálculos

Sabendo quanto tempo é necessário para criar pacotes e quanto tempo é gasto em cada um deles, é possível calcular facilmente os custos totais para a passagem de todo o pipeline DevOps (ciclo completo).

Aqui estão as métricas de DevOps que Ivan obteve no final:

  • Número de pacotes criados
  • Percentual de pacotes que "entraram" no ambiente e "passaram" pelo ambiente
  • Tempo gasto no ambiente (ciclo do ambiente)
  • Ciclo completo (tempo total em todas as estações)
  • Duração das jobs
  • Inatividade entre as estações
  • Inatividade entre os lançamentos de jobs na mesma estação

Por um lado, as métricas caracterizavam muito bem o pipeline DevOps em termos de tempo, por outro, eram consideradas muito simples.

Satisfeito com o trabalho bem feito, Ivan preparou uma apresentação e foi apresentá-la à gerência.

Ele voltou com uma expressão carrancuda e os ombros caídos.

— É um fiasco, meu irmão — sorriu o colega irônico...

Leia a continuação no artigo "Como os resultados rápidos ajudaram Ivan».

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster