Tudo sobre DevOps: o que é, como funciona e boas práticas

Neste artigo você vai ver:

Antes de entendermos como funciona e listar suas boas práticas, precisamos entender o que é, afinal, DevOps.

Podemos considerar que DevOps é um método de desenvolvimento de software, cujo principal objetivo é aprimorar a capacidade de distribuir em alta velocidade aplicativos e serviços.

A prática permite uma melhor comunicação e colaboração entre os departamentos para tornar a entrega de produtos mais segura e rápida.

Cenário: como surgiu o termo DevOps e quando?

Patrick Debois, conhecido como o fundador da DevOps Days, é considerado padrinho e criador do movimento DevOps.  

Era 2009 e o cenário exigia grandes mudanças. Aquele processo de entrega de software tradicional já não suportava essas mudanças rápidas e os clientes desejavam novos recursos e novos fluxos de receita o mais rápido possível, mas em um sistema estável e sem interrupções.

O problema da entrega de software tradicional é que ela não foi feita para suportar estes dois requisitos simultaneamente.

Consequentemente, as empresas têm que escolher entre:

  • entregar mudanças rápidas e acabar com um ambiente de produção confuso;
  • ou manter um ambiente estável, mas desatualizado.

Um grande desafio, certo? Devops chegou para resolver justamente esse problema.

Como funciona: entendendo os pilares de DevOps

1) Colaboração e apoio

O objetivo é mirar em um resultado específico com o máximo de colaboração possível, mesmo com a entrada de diversas pessoas com diferentes perfis.

2) Afinidade

Os objetivos organizacionais devem ser compartilhados e promover sempre empatia e aprendizado entre diferentes grupos de pessoas.

3) Ferramentas

O papel das ferramentas deve ser de acelerar e economizar custos, mas lembre-se: elas devem se encaixar nos métodos de trabalho e não o contrário.

4) Dimensionamento e escala

Os conceitos de DevOps podem ser aplicados em diversos tipos de organizações, independente de seu estágio, seja crescimento, amadurecimento ou até retração.

Como medir DevOps?

Embora existam várias métricas usadas para medir o desempenho do DevOps, a seguir estão quatro das principais que toda equipe deve medir.

1. Tempo de espera para mudanças (Lead time for changes)

Uma das métricas críticas de DevOps a serem rastreadas é o tempo de espera para mudanças, que representa o período de tempo entre quando uma mudança de código é aprovada numa branch e quando ela está pronta a ser deployada. Por exemplo: quando o código passa em todos os testes de pré-lançamento necessários.

2. Taxa de falha das mudanças (Change failure rate)

A taxa de falha de alteração é a porcentagem de alterações de código que requerem hot fixes ou outra correção após a produção. Isso não mede as falhas detectadas pelo teste e corrigidas antes da implantação do código.

3. Frequência de deploy (Deployment frequency)

Compreender a frequência com que o novo código é implantado em produção é fundamental para entender o sucesso do DevOps. Muitos profissionais usam o termo “entrega” para significar mudanças de código que são lançadas em um ambiente de teste de pré-produção e reservam “deploy” para se referir a mudanças de código que são liberadas para produção.

4. Tempo médio de recuperação (Mean time to recovery)

O tempo médio de recuperação mede quanto tempo leva para se recuperar de uma interrupção parcial do serviço ou falha total. Essa métrica precisa ser rastreada, independentemente da interrupção ser resultado de uma implantação recente, ou de uma falha isolada do sistema.

Assim como outros elementos do ciclo de vida do DevOps, uma cultura de melhoria contínua se aplica às suas métricas. 

A capacidade de receber feedback rápido em cada fase do desenvolvimento, juntamente com a habilidade e autoridade para implementar o feedback, são marcas registradas de equipes de alto desempenho. 

No livro de DevOps “Accelerate”, os autores observam que as quatro principais métricas listadas acima são suportadas por 24 recursos que as equipes de software de alto desempenho adotam.

Inclusive, quer saber mais sobre as métricas dentro do Accelerate? Então ouça esse zupcast sobre o tema:

O que DevOps definitivamente NÃO é:

  • Modinha;
  • Apenas um cargo;
  • Envolve apenas pessoas desenvolvedoras e administradoras de sistemas. Isso também não é verdade, podemos aplicar os princípios DevOps em todas as áreas.

Inclusive, recomendo a leitura do artigo DevOps vs SRE para você não confundir as duas coisas.

Os benefícios de uma mentalidade DevOps

Sim, eu poderia escrever um livro só compilando as vantagens de adotar essa prática, mas vou enumerar algumas delas:

  • Entregar versões frequentes e automatizadas, de alto valor e qualidade, onde cada mudança dispara um processo de feedback rápido;
  • Entrega confiável, previsível e passível de repetição;
  • Maior rendimento e alto desempenho;
  • Melhora da experiência do usuário (UX);
  • Capacidade de inovação;
  • Tempo de valorização otimizado;
  • Aumento da capacidade de inovação.

Boas práticas implementando integração contínua

Esse é o momento em que você anota todos esses pontos em um post-it bem visível para lembrar todos os dias.

  • Não faça commit se o processo de compilação estiver quebrado;
  • Sempre rode os testes unitários localmente antes de um commit (ou use o servidor para isso);
  • Espere que os testes obtenham sucesso antes de continuar;
  • Não comente testes falhando;
  • Limite o tempo antes de reverter;
  • Esteja sempre preparado para voltar à revisão anterior.
Imagem reflete uma rota voltada para o símbolo do infinito representando DevOps. Do lado esquerdo está a palavra “Dev” com teste, construção, código e plano em seu caminho. Se unindo ao lado direito,  tem a palavra “OPS”, com lançamento, implantação, operação e monitoramento.

Modelo de maturidade

A teoria é interessante, mas como aplicamos isso na prática? Bem, além das métricas comentadas acima, existe uma ferramenta bacana para ajudar a identificar em que ponto uma organização (ou um projeto) está em termos da maturidade de seus processos e práticas DevOps e ainda define uma progressão para melhorar. 

Essa ferramenta é o modelo de maturidade. Esse modelo é composto de 5 níveis:

Nível 4: Foco na melhoria contínua

Nível 3: Processos medidos e controlados

Nível 2: Processos automatizados

Nível 1: Parcialmente automatizada

Nível 0: Falta de Controle

Como usar esse modelo?

1 – Use o modelo para classificar a maturidade da gerência de configuração e entrega de versão da sua empresa (ou projeto) em diferentes partes;

2 – Escolha uma área de foco em que a imaturidade é particularmente complicada (mapeamento de cadeia de valor pode ajudar nessa escolha);

3 – Crie um plano de implementação e realize as mudanças;

4 – Uma vez que as mudanças tenham sido feitas, use os critérios de aceitação que criou para medir se elas tiveram os efeitos desejados;

5 – Repita esses passos e construa seu conhecimento.

Resumindo, DevOps é uma maneira de pensar, uma saída inteligente para integrar ao máximo os times de desenvolvimento e operações.

Tabela que representa o modelo de maturidade dos processos e práticas do DevOps. No lado esquerdo vertical possui os níveis de 4 a 0 e na horizontal os níveis de gestão.

Conclusão

Antes de finalizarmos, recomendo também a leitura do artigo no Blog do Fernando Ike sobre se “DevOps é cultura ou ferramentas?

Com os pilares muito bem estruturados, o DevOps pode ter os seus princípios aplicados em diversas áreas. DevOps é uma maneira de pensar, uma saída inteligente para integrar ao máximo os times de desenvolvimento e operações. 

Para saber ainda mais sobre o tema, sugiro um conteúdo cheio de qualidade do Zup Tech Hour: 

É profissional da área? Acessando este link você encontra as nossas vagas abertas! 

Ainda ficou com alguma dúvida sobre o assunto ou quer compartilhar a sua experiência com a metodologia? Conta pra gente nos comentários!

Mulher sentada em uma mesa de frente para o seu notebook com as mãos em cima do teclado. Na imagem, há uma ilustração sobre o conceito DevOps.
foto Guillaume Falourd
Back-end Developer
Zupper tentando transformar o complexo em simples através de conteúdos diversificados, com intuito de impactar o mercado de TI e as pessoas ao seu redor da melhor forma possível.

Artigos relacionados

Capa do artigo sobre Docker, com um homem negro programando.
DevOps
Postado em:
Capa do artigo "Operator Pattern em aplicações Kubernetes" em que vemos as mãos de uma pessoa negra enquanto usa o mouse do computador.
DevOps
Postado em:

Este site utiliza cookies para proporcionar uma experiência de navegação melhor. Consulte nossa Política de Privacidade.