Explorar a entrega contínua

Concluído

A CI (integração contínua) e o CD (entrega contínua) são conceitos de DevOps intimamente relacionados, representando dois estágios distintos do processo de entrega de software. Como você sabe do módulo anterior, a finalidade da CI é criar e testar artefatos de software. O CD automatiza o processo de entrega desses artefatos aos destinatários pretendidos. Ao implementar o CD, organizações como a descrita no cenário de exemplo são capazes de eliminar o esforço manual envolvido na implantação do aplicativo. Nesta unidade, explore as características e os benefícios do CD.

O que é entrega contínua?

A entrega contínua compreende as práticas, que automatizam a geração de versões de software, garantem que elas estejam em um estado implantável e disponibilizem para seus consumidores. Seu foco é minimizar o tempo de implantação e o tempo para atenuar (TTM), também conhecido como TTR (tempo de correção). Este último refere-se a cenários em que uma versão recém-lançada do aplicativo atinge o ambiente de produção e precisa ser revertida.

Diagrama do fluxo de entrega contínua.

A entrega contínua tende a ser um processo iterativo, em que o mesmo artefato que representa a versão de software mais recente faz transições por meio de vários ambientes, que são dedicados, por exemplo, a testes de aceitação, preparo e produção do usuário. Isso oferece amplas oportunidades para validar sua funcionalidade e estabilidade.

Vale a pena observar que a nomenclatura DevOps inclui dois termos intimamente relacionados, que têm nomes semelhantes e o mesmo acrônimo : entrega contínua e implantação contínua. Ambos lidam com a automatização e a simplificação do processo de entrega de software. A principal distinção entre eles é que este último se esforça para implementar a automação completa, incluindo o ambiente de produção, enquanto, no caso do primeiro, essa entrega final requer uma aprovação manual.

Semelhante à CI, a automação é baseada em definições de versão criadas por desenvolvedores e implementadas na plataforma de hospedagem do repositório. Por exemplo, o GitHub oferece para essa finalidade o fluxo de trabalho do GitHub Actions, enquanto o Azure DevOps depende do Azure Pipelines.

Quais são os benefícios da entrega contínua?

Os benefícios associados à entrega contínua são resultados diretos de sua automação e da abordagem shift-left. As mais relevantes incluem:

  • Ciclos de lançamento acelerados: as organizações são capazes de aumentar a velocidade de entrega de novos recursos, aprimoramentos e correções de bugs, o que se traduz em redução de tempo para mercado, beneficiando os clientes.
  • Maior resiliência: o teste automatizado permite detectar problemas no início do processo de entrega. A implantação automatizada garante a consistência entre ambientes e minimiza o impacto potencial de erros humanos. A automação também tende a simplificar consideravelmente o processo de reversão caso haja a necessidade de reverter para uma versão de software anterior. A distribuição incremental (que abordaremos posteriormente neste módulo) facilita a descoberta de possíveis problemas antes que eles possam ter um impacto em escala maior. Loops de comentários rápidos reduzem o tempo de resposta se um problema for descoberto.
  • Colaboração aprimorada: o CD promove a interação entre equipes de desenvolvimento, operações e segurança integrando-se à CI, resultando em um processo coeso que abrange build, teste e entrega.
  • Utilização eficiente de recursos: a automação tende a minimizar o tempo gasto em tarefas manuais, repetitivas e demoradas, resultando em uso otimizado de recursos humanos.