Use a Entrega Contínua para liberar mais rapidamente, com custos e riscos menores

Concluído

A Entrega Contínua é um dos oito recursos da taxonomia de DevOps.

Descubra porque a Entrega Contínua é necessária

Em 2012, um erro de implantação de software resultou em uma perda de US$ 460 milhões para o Knight Capital Group, o maior trader de ações dos EUA na época.

As perdas começaram quando o mercado abriu. Não havia bugs no código – o problema foi causado por um erro que foi feito durante uma implantação manual em apenas um de seus oito servidores de produção.

Quando eles tentaram consertá-lo, todos os oito servidores acabaram mal configurados – então eles perderam ainda mais dinheiro. Como toda a implantação era manual, eles não tinham como reverter automaticamente as alterações.

Depois de tentar corrigir o problema por 45 minutos, eles finalmente desligaram todo o sistema. Nesse período, tinham perdido 460 milhões de dólares.

Esta é uma história real. Qual seria o impacto na sua organização? Você está fazendo a implantação manual?

Talvez a pergunta mais importante a ser feita para ajudar a entender o desempenho da entrega em uma organização seja:

Importante

Qual é o tamanho do seu problema de implantação para a produção?

O medo e a ansiedade que os engenheiros e a equipe técnica sentem quando empurram o código para a produção podem nos dizer muito sobre o desempenho de entrega de software de uma equipe.

O que é Entrega Contínua?

Importante

A Entrega Contínua é uma abordagem de engenharia de software em que as equipas produzem software em ciclos curtos, garantindo que o software pode ser:

  • Liberado de forma confiável a qualquer momento
  • Liberado manualmente

O objetivo da Entrega Contínua é:

  • Crie, teste e libere software com maior velocidade e frequência
  • Reduza o custo, o tempo e o risco de fornecer alterações, permitindo mais atualizações incrementais para aplicativos em produção

A Entrega Contínua acontece quando:

  • O software pode ser implantado durante todo o seu ciclo de vida
  • A integração contínua, bem como a automação extensiva, estão disponíveis em todas as partes possíveis do processo de entrega, normalmente usando um pipeline de implantação
  • É possível realizar implantações por botão de qualquer versão do software em qualquer ambiente sob demanda

O diagrama mostra a diferença entre entrega contínua e implantação contínua. As etapas são as mesmas em ambos os casos: código feito - testes de unidade - integrar - teste de aceitação - implantar na produção. Para a entrega contínua, a implantação na produção acontece manualmente. Para implantação contínua, é automático.

Grandes implantações manuais criam um alto nível de risco, aumentando drasticamente a complexidade do software que está sendo lançado, introduzindo a probabilidade de erro humano e tornando mais difícil identificar e corrigir falhas de implantação. A frequência de implantação é baixa, o tempo de espera para alterações é alto, o tempo médio de recuperação é longo e você tem uma alta taxa de falha de alterações.

Uma equipe de operações designada realiza a implantação manual fora do horário comercial. Eles precisam de um documento de etapas manuais e tempo para testar as etapas documentadas manualmente. Implantações grandes também levam mais tempo para serem executadas, são mais difíceis de reverter se falharem e envolvem um escopo de teste maior após a implantação. O número de alterações por implantação é maior e o feedback leva mais tempo para ser implementado.

Ao automatizar o processo e permitir a capacidade de liberar para a produção a qualquer momento, os benefícios da Entrega Contínua são significativos e numerosos:

O diagrama mostra o círculo de Entrega Contínua. O ciclo vai desde o planejamento e acompanhamento até o desenvolvimento, construção e teste, implantação, operação, monitoramento e aprendizado, e de volta ao planejamento.

De acordo com o 2019 State of DevOps Report, as organizações de DevOps de alto desempenho quando comparadas com as de baixo desempenho conseguem:

  • Implantações mais de 200 vezes mais frequentes
  • Prazo de entrega de alterações mais de 100 vezes mais rápido
  • Tempo médio de recuperação mais de 2600 vezes mais rápido
  • Taxa de falha de alteração sete vezes menor

Além disso, de acordo com um estudo global da CA Technologies, as organizações percebem até 20% de melhoria no tempo de comercialização e aumento de receita.

O diagrama mostra as vantagens das organizações de DevOps de alto desempenho que usam a Entrega Contínua em relação às organizações de baixo desempenho.

Nota

A Entrega Contínua às vezes é confundida com a Implantação Contínua. A implantação contínua significa que todas as alterações passam pelo pipeline e são automaticamente colocadas em produção, resultando em muitas implantações de produção todos os dias. A Entrega Contínua significa apenas que você pode fazer implantações frequentes, mas pode optar por não fazê-lo, geralmente devido às empresas preferirem uma taxa mais lenta de implantação. Você deve estar fazendo a Entrega Contínua para fazer a Implantação Contínua.

A Integração Contínua é um pré-requisito para a Entrega Contínua. As práticas em vigor permitem criar e implantar (de forma confiável) o aplicativo a qualquer momento e com alta qualidade, a partir do controle do código-fonte.

Diagrama mostra a relação entre Integração Contínua, Entrega Contínua e Integração Contínua