O que é DevOps, e por que não é um cargo

O muro que ele derruba não é técnico. É de incentivo: uma área é medida por mudança e a outra por estabilidade.

· 10 min de leitura
Revisado em

DevOps é uma forma de organizar o trabalho para que software chegue a produção com frequência e com segurança, aproximando quem constrói de quem opera. O nome vem da junção de development e operations, e a prática se sustenta em automatizar e monitorar todas as etapas entre o código escrito e o serviço funcionando.

Antes de entrar no como, vale eliminar três leituras erradas, porque elas são a causa da maioria das adoções frustradas.

Não é um cargo. Contratar uma pessoa DevOps não cria DevOps.

Não é uma ferramenta. Pipeline, contêiner e orquestrador ajudam. Nenhum deles decide como duas áreas trabalham juntas.

E não é um time novo. Esse é o erro mais comum e o mais silencioso: criar uma equipe DevOps entre desenvolvimento e operação recria exatamente o muro que a prática existe para derrubar, agora com nome moderno e mais uma fila de espera.

De onde veio

A origem tem data e palestra.

Em 2009, no evento Velocity, John Allspaw e Paul Hammond apresentaram "10+ Deploys Per Day: Dev and Ops Cooperation at Flickr", contando como a aproximação entre desenvolvimento e operação no Flickr permitiu mais de dez implantações por dia. Na época isso soava impossível para a maior parte do mercado.

Patrick Debois assistiu à palestra e organizou, no mesmo ano, o primeiro DevOpsDays, em Gante, na Bélgica. A abreviação usada para divulgar o evento acabou virando o nome do movimento, e os eventos se espalharam por vários países, inclusive o Brasil.

Repare no que a palestra tratava: não era ferramenta, era cooperação entre duas áreas.

O muro que ele derruba não é técnico

Aqui está o ponto que mais importa para quem lidera, e ele é sobre incentivo, não sobre tecnologia.

Em boa parte das organizações, desenvolvimento, infraestrutura e operação são áreas separadas, com metas diferentes e, muitas vezes, opostas.

Desenvolvimento é medido por entrega. Quanto mais mudança sobe, melhor.

Infraestrutura responde por segurança, integridade, confiabilidade e disponibilidade. Cada mudança é um risco a ser controlado.

Operação vive de plantão. Cada implantação malsucedida cai no colo dela, à noite e no fim de semana.

Nenhuma das três está errada. Elas estão respondendo aos incentivos que receberam. E é por isso que a conversa entre elas degenera no padrão conhecido: cada um empurra o problema para o outro lado.

Na minha visão, é aqui que a maioria das iniciativas de DevOps morre. A organização compra ferramenta e treinamento, mas mantém intactas as metas que colocam as áreas em lados opostos. Ferramenta nenhuma resolve conflito de incentivo.

O que muda o jogo é fazer as áreas responderem pelo mesmo resultado: o serviço funcionando para o cliente. Não a entrega de um lado e a estabilidade do outro, mas as duas coisas juntas, para todos.

Integração, entrega e implantação contínua

A fronteira entre integração contínua, entrega contínua e implantação contínua Integração contínua vai do commit até o build e os testes automatizados passarem. Entrega contínua acrescenta as etapas que deixam um artefato pronto para ir a produção a qualquer momento, mas quem decide publicar é uma pessoa. Implantação contínua remove esse botão: o que passa por todas as etapas vai a produção sozinho. commit build testes artefato homolog. produção INTEGRAÇÃO CONTÍNUA ENTREGA CONTÍNUA IMPLANTAÇÃO CONTÍNUA alguém aprova ou não existe botão A diferença entre entrega e implantação contínua é uma decisão de negócio, não de engenharia. Quem não tem integração contínua não tem nenhuma das outras duas.
As três são camadas, não sinônimos. Cada uma só existe se a anterior existir, e é por isso que começar pela automação de deploy costuma frustrar.

Esses três termos são usados como sinônimo e não são. A confusão custa dinheiro, porque leva organizações a começar pela etapa errada.

Integração contínua é integrar código com frequência, com build e teste automatizados a cada mudança. O objetivo é descobrir conflito e defeito em horas, não em semanas. É a base, e sem ela as outras duas não existem.

Entrega contínua acrescenta as etapas que deixam um artefato pronto para ir a produção a qualquer momento. O código está testado, o pacote está montado, o ambiente está preparado. Quem decide publicar é uma pessoa.

Implantação contínua remove essa decisão. O que passa por todas as etapas vai a produção sozinho.

A diferença entre as duas últimas é de negócio, não de engenharia. Existe contexto regulado, com janela de mudança acordada em contrato, em que entrega contínua é o teto razoável. Isso não é imaturidade técnica, é restrição legítima.

O que não dá é pular a primeira. Automatizar deploy sem teste automatizado não acelera entrega, acelera a chegada de defeito em produção.

O que os ambientes têm a ver com isso

Um detalhe operacional que decide o resultado: os ambientes de teste, homologação e produção precisam ser equivalentes.

Ambiente configurado à mão fica igual no primeiro dia e diverge em três meses. A partir daí, "funciona no meu ambiente" deixa de ser piada e passa a ser a explicação real de metade dos incidentes.

A saída é tratar infraestrutura como código: configuração, script e definição de ambiente versionados no mesmo repositório, no mesmo fluxo de revisão do código da aplicação. Isso torna o ambiente auditável, reproduzível e reversível.

E vale a mesma disciplina para o resto: provisionamento automatizado, política de rollback definida antes de precisar dela, e monitoramento que avisa antes do cliente avisar.

Como medir, sem inventar métrica

As quatro métricas DORA, em vazão e estabilidade Vazão é medida por frequência de implantação e lead time para mudança. Estabilidade é medida por taxa de falha em mudança e tempo para restaurar serviço. A pesquisa mostra que times de alto desempenho são bons nas duas dimensões ao mesmo tempo, ou seja velocidade e estabilidade não são uma troca. VAZÃO Frequência de implantação com que frequência vai para produção Lead time para mudança do commit até estar em produção ESTABILIDADE Taxa de falha em mudança quanto do que sobe causa problema Tempo para restaurar quanto demora para voltar ao normal Time de alto desempenho é bom nas quatro ao mesmo tempo. Velocidade e estabilidade não são uma troca. É o achado central da pesquisa.
As quatro métricas da pesquisa DORA. Medir só as duas da esquerda produz time rápido e instável; só as duas da direita produz time estável e parado.

Esta é a parte que mais evoluiu desde a primeira versão deste texto, e vale substituir a lista de indicadores que eu tinha aqui por algo com base em pesquisa.

O programa de pesquisa DORA, conduzido por Nicole Forsgren, Jez Humble e Gene Kim e publicado no livro Accelerate, identificou quatro métricas que se correlacionam com desempenho organizacional:

  • Frequência de implantação. Com que frequência o time coloca mudança em produção.
  • Lead time para mudança. Quanto tempo leva do commit até estar em produção.
  • Taxa de falha em mudança. Que percentual das implantações causa problema.
  • Tempo para restaurar serviço. Quanto demora para voltar ao normal depois de uma falha.

As duas primeiras medem vazão. As duas últimas medem estabilidade.

E aqui está o achado que muda a conversa executiva: times de alto desempenho são bons nas quatro ao mesmo tempo. Velocidade e estabilidade não são uma troca em que se escolhe um lado.

Isso desmonta o argumento mais comum contra acelerar entrega, o de que ir mais rápido quebra mais. Na prática, quem implanta com frequência implanta mudança pequena, e mudança pequena falha menos e é mais fácil de reverter. Quem implanta a cada três meses acumula risco em um único evento.

Um aviso de uso: essas quatro medem o sistema de entrega, não pessoas. Usá-las para comparar indivíduos garante que elas parem de dizer a verdade em duas semanas.

Onde isso encosta no Lean

A linha até o Lean é direta, e reconhecê-la ajuda a entender por que essas práticas funcionam.

Lote pequeno em vez de lote grande é o mesmo princípio de fluxo contínuo. Implantação frequente é reduzir estoque de trabalho pronto e não entregue, que é desperdício. E parar o pipeline quando o teste falha é literalmente Jidoka, o pilar da Toyota de interromper a linha ao detectar defeito em vez de seguir produzindo.

Vale também a ligação com o Kanban: limitar trabalho em progresso reduz o tempo de ciclo, que é o mesmo que o lead time para mudança tenta medir do outro lado do processo.

E com o ágil a relação é de complemento, não de sobreposição. Os métodos ágeis encurtaram o ciclo entre decidir e construir. DevOps encurta o caminho entre construir e estar em produção, e o alvo aqui é frequência: implantar muitas vezes, em lotes pequenos, sem que a implantação seja um evento.

Sem essa segunda parte, o time fecha a Sprint rápido e o incremento fica na fila esperando janela. A velocidade existe até a porta da operação e para ali.

O que realmente precisa mudar

Automação é a parte visível e a mais fácil de comprar. O que sustenta o resultado é menos vistoso.

Ambiente sem caça ao culpado. Se o custo de um incidente é encontrar o responsável, as pessoas escondem risco e evitam mudança. Postmortem que procura causa em vez de culpado é pré-requisito, não gentileza.

Autonomia com responsabilidade. Time de desenvolvimento com autonomia para implantar precisa responder pelo que implantou, incluindo o que acontece de madrugada. Autonomia sem essa responsabilidade produz descuido; responsabilidade sem autonomia produz frustração.

Representação de todas as áreas nas decisões. Discussão técnica sem quem vai operar produz decisão que não sobrevive à produção. Basta um integrante de cada área nas conversas de arquitetura e requisito técnico para que a maioria dos problemas apareça antes.

Uma correção à primeira versão deste texto: eu listava entre os benefícios a "redução de técnicos envolvidos". Hoje eu não colocaria assim. Tratar DevOps como redução de pessoal é a forma mais rápida de inviabilizar a adoção, porque pede colaboração exatamente de quem entende que o resultado dela é a própria dispensa. O ganho é de fluxo: menos trabalho manual repetido, menos espera entre áreas, menos retrabalho. Automação libera tempo de gente qualificada para problema que exige julgamento, e sempre há fila desses.

Na sua organização, quem escreve o código é chamado quando ele quebra às três da manhã? A resposta dessa pergunta explica quase tudo sobre a qualidade que ele terá.

Perguntas

Dúvidas frequentes

DevOps é um cargo?

Não. DevOps descreve uma forma de organizar trabalho entre quem desenvolve e quem opera. Quando a organização cria um cargo ou um time chamado DevOps entre os dois, normalmente recria o muro que a prática existe para derrubar, agora com nome novo.

Qual a diferença entre integração contínua, entrega contínua e implantação contínua?

Integração contínua é integrar código com frequência, com build e teste automatizados. Entrega contínua acrescenta as etapas que deixam o artefato pronto para produção a qualquer momento, com alguém decidindo publicar. Implantação contínua remove essa decisão: o que passa nos testes vai a produção sozinho.

Como medir DevOps?

Pelas quatro métricas da pesquisa DORA: frequência de implantação e lead time para mudança, que medem vazão, e taxa de falha em mudança e tempo para restaurar serviço, que medem estabilidade. O achado da pesquisa é que times de alto desempenho são bons nas quatro ao mesmo tempo.

DevOps é a mesma coisa que ágil?

Não, mas se completam. Os métodos ágeis encurtaram o ciclo de decidir e construir. DevOps encurta o caminho entre construir e estar em produção, implantando com frequência e em lotes pequenos. Sem essa segunda parte, o time fecha o incremento rápido e ele fica parado esperando janela de implantação.

DevOps serve para reduzir equipe?

Não é o objetivo, e tratar como redução de pessoal costuma inviabilizar a adoção. O ganho é de fluxo: menos trabalho manual repetido, menos espera entre áreas e menos retrabalho. Automação libera tempo de gente qualificada para problema que exige julgamento.

Sobre o autor

Raphael Fontes é executivo de tecnologia e lidera a tecnologia da Sesatech como Diretor de Tecnologia (CTO). Escreve sobre inteligência artificial, automação, engenharia, dados, gestão de projetos e liderança. Trajetória completa.