O que é a entrega contínua?
Continuamente, a entrega de valor tornou-se um requisito obrigatório para as organizações. Para entregar valor aos usuários finais, você deve liberar continuamente e sem erros.
Entrega contínua (CD) é o processo de compilar, testar, configurar e implantar automaticamente de um ambiente de build para um ambiente de produção. Um pipeline de lançamento pode criar vários ambientes de teste ou preparo para automatizar a criação da infraestrutura e a implantação de novas compilações. Ambientes sucessivos suportam atividades progressivamente mais longas de integração, carga e testes de aceitação do usuário.
Antes da CD, os ciclos de lançamento de software eram um gargalo para as equipes de aplicativos e operações. Essas equipes geralmente dependiam de transferências manuais que resultavam em problemas durante os ciclos de lançamento. Processos manuais levaram a lançamentos não confiáveis que produziram atrasos e erros.
A CD é uma prática enxuta, com o objetivo de manter a produção atualizada com o caminho mais rápido desde a disponibilidade de novos códigos ou componentes até a implantação. A automação minimiza o tempo de implantação e o tempo de mitigação (TTM) ou o tempo de correção (TTR) de incidentes de produção. Em termos enxutos, a CD otimiza o tempo do processo e elimina o tempo ocioso.
A integração contínua (CI) inicia o processo de CD. O pipeline de lançamento prepara cada ambiente sucessivo para o próximo ambiente após a conclusão bem-sucedida dos testes. O pipeline de lançamento da CD automatizada permite uma abordagem fail-fast à validação, em que os testes com maior probabilidade de falhar são executados rapidamente primeiro, e os testes de execução mais longa acontecem somente depois que os mais rápidos são concluídos com êxito.
As práticas complementares de infraestrutura como código (IaC) e monitoramento facilitam a CD.
Técnicas de exposição progressiva
A CD suporta vários padrões de exposição progressiva, também chamados de "controle do raio de explosão". Essas práticas limitam a exposição a implantações para evitar o risco de problemas com a base geral de usuários.
A CD pode sequenciar vários anéis de implantação para exposição progressiva. Um anel tenta uma implantação em um grupo de usuários e monitora sua experiência. O primeiro anel de implantação pode ser um canário para testar novas versões em produção antes de uma distribuição mais ampla. A CD automatiza a implantação de um anel para o outro.
A implantação no próximo anel pode depender opcionalmente de uma etapa de aprovação manual, em que um tomador de decisão aprova as alterações eletronicamente. A CD pode criar um registro auditável da aprovação para satisfazer procedimentos regulatórios ou outros objetivos de controle.
A implantação azul/verde depende de manter uma versão azul atual ativa enquanto uma nova versão verde é implantada. Essa prática normalmente usa o balanceamento de carga para direcionar o crescente aumento de tráfego à implantação verde. Se o monitoramento descobrir um incidente, o tráfego pode ser redirecionado para a implantação azul ainda em execução.
Os sinalizadores de recursos ou alternâncias de recursos são outra técnica para experimentação e inicializações escuras. Os sinalizadores de recursos ativam ou desativam recursos para grupos de usuários diferentes de acordo com a identidade e associação ao grupo.
Os pipelines de versão modernos permitem que as equipes de desenvolvimento implantem novos recursos de forma rápida e segura. A CD pode corrigir rapidamente os problemas encontrados na produção avançando com uma nova implantação. Dessa forma, a CD cria um fluxo contínuo de valor para o cliente.