Saber mais sobre integração, implantação e entrega contínuas
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Explicar e comparar a entrega, a implantação e a integração contínuas.
- Nomear alguns dos benefícios da entrega contínua.
Pré-requisitos
Para concluir este módulo, você precisará ter:
- Uma conta gratuita do Heroku
- Uma conta gratuita do GitHub
Se você ainda não concluiu o módulo Noções básicas da Heroku Enterprise, recomendamos que o conclua antes de iniciar este módulo.
As práticas modernas de desenvolvimento permitem que as equipes criem e lancem os aplicativos mais envolventes e sofisticados no mercado. Essas práticas incluem integração, implantação e entrega contínuas, o que permite ciclos de release curtos, automação e uma conexão direta com o repositório de código-fonte. Essas práticas são elaboradas para permitir que as equipes enviem atualizações adicionais de código por push para a produção de maneira segura e rápida. Quando esses métodos são usados corretamente, bugs e problemas aparecem mais cedo no ciclo de vida do aplicativo, resultando em lançamentos de produtos mais rápidas e com maior qualidade.
Vamos falar mais sobre integração, entrega e implantação contínuas. Embora elas pareçam semelhantes, note as diferenças entre cada processo.
Integração contínua
Com o uso da integração contínua, um produto é criado para incluir e integrar todas as alterações de código de cada confirmação (continuamente) por todo e qualquer desenvolvedor. Uma build automatizada verifica cada entrada e permite que as equipes detectem os problemas logo no início.
Em produtos complexos, as alterações que parecem simples e autocontidas podem produzir resultados indesejáveis. Se vários desenvolvedores estão trabalhando paralelamente em várias ramificações de código isoladas, a mesclagem de alterações em uma mesma ramificação mestre pode ter resultados imprevisíveis. Resultados imprevisíveis costumam gerar várias rodadas de testes de regressão e correções de bug. A integração contínua (CI) é um componente do processo de entrega contínua que permite aos desenvolvedores integrar suas atualizações à ramificação mestre regularmente. Com a CI, os testes automatizados são executados antes e depois da mesclagem de cada alteração, validando que nenhum bug foi encontrado.
Entrega contínua
A entrega contínua faz com que o código possa ser implantado na produção de maneira rápida e segura com o envio por push de cada alteração para um ambiente parecido com o de produção. Como cada alteração é entregue automaticamente em um ambiente de preparação, você pode implantar o aplicativo na produção apertando um simples botão quando chegar a hora certa.
A etapa adicional de enviar o código por push para um ambiente de preparação é o que diferencia a integração contínua da entrega contínua. Ter uma build verde (aprovada) com CI não significa que seu código esteja pronto para produção enquanto você não o tiver enviado por push para um ambiente de preparação que corresponda ao ambiente de produção final.
Implantação contínua
A implantação contínua é a etapa seguinte à entrega contínua. Com o uso da implantação contínua, todas as alterações aprovadas nos testes automatizados são implantadas na produção automaticamente. A maioria das empresas que não têm restrições regulatórias ou de outro tipo devem considerar a implantação contínua.
Embora nem todas as empresas possam usar a implantação contínua, a maioria pode usar a entrega contínua. A entrega contínua permite saber que suas alterações estão trazendo valor para os clientes quando seu produto é lançado e que você realmente pode apertar o botão sempre que for a hora.