Entrega Contínua vs. Implantação Contínua, que correspondem às siglas em inglês: CI – Continuous Integration / CD – Continuous Delivery ou Continuous Deployment são tópicos comuns e estão em voga no mundo dos desenvolvedores.
O termo “entrega contínua” está ganhando um novo sentido, principalmente, pela entrega das plataformas de low-code.
O que é entrega contínua?
Entrega contínua, em geral, refere-se à preparação automática de código e mudanças de códigos para liberação na produção. Desde a mesclagem de alterações de código até a entrega de compilações que estão prontas para produção. Cada estágio no processo envolve a automatização do teste e liberação do código.
Faz-se o upload do código para o repositório de código fonte (como o GitHub) ou para o repositório container (como o Docker). Uma vez feito o upload, testes automatizados como unidade, regressão e performance são executados para garantir que o código seja de alta qualidade.
Depois do ciclo completo, o que é programado para execuções é implantado automaticamente em um ambiente intermediário, podendo ser lançado sob demanda pelo time de operações. O objetivo é ter código pronto para implantação em um ambiente de produção.
Neste contexto, o resultado da entrega contínua é o código pronto para a produção, mas não é a implantação em si. Resumindo, a entrega contínua garante a entrega rápida e fácil do código para o time de operações, mas ainda precisa de alguém pra aprovar e liberar o update para produção.
O que é implantação contínua?
A implantação contínua envia, automaticamente, o código testado para a produção. É construída nos benefícios da entrega contínua e é considerada o próximo passo no pipeline da CI/CD. De maneira simples, não há lançamento sob demanda para a produção, o que implica em intervenção humana; em vez disso, o código vai da integração para o lançamento, e o teste é integrado ao processo.
Essa automatização pode ser benéfica para um time de operações sobrecarregado e, com o teste integrado em todos os processos, é mais fácil encontrar problemas e resolvê-los mais cedo. Também assegura-se que não há atraso entre a validação de uma mudança no código e sua liberação para produção. É importante notar, no entanto, que o teste e o monitoramento são ainda mais cruciais na implantação contínua por conta da liberação automática para produção.
Dicas para notar a diferença entre entrega contínua e implantação contínua em CI/CD
Quando você explora melhor os termos, a diferença entre entrega contínua e implantação contínua é bem clara. A entrega contínua é como receber uma pizza do Domino’s que você checa os ingredientes e a qualidade antes de colocar na mesa. A implantação contínua é como ter uma transportadora que te entrega regularmente uma pizza que foi monitorada desde o começo para garantir que a qualidade, os ingredientes e o sabor estão dentro das suas expectativas.
Mas quando uma plataforma promete CI/CD sem explicações, como você sabe qual CD é? Essa é a área cinza que eu mencionei na introdução do post. Aqui estão algumas dicas para perceber a diferença:
- Se a plataforma automatiza processos de construção de “código implantável”, está oferecendo entrega contínua. Como por exemplo a Spinnaker e a AWS CodeBuilder;
- Se a plataforma inclui teste e monitoramento ao longo do processo CI/CD, está oferecendo implantação contínua. Como por exemplo a Azure DevOps e a Red Hat OpenShift.io (note que a Red Hat é agora uma empresa do grupo IBM);
- Se a plataforma é descrita como integração contínua, mas também possibilita automatizar a preparação de código e seu lançamento imediato, provavelmente fornece implantação contínua. O exemplo mais famoso é a Jenkins, que você pode usar para automatizar cada estágio no pipeline CI/CD;
- Se nenhum termo que descreve a plataforma deixa a dica, provavelmente a plataforma de CI/CD oferece implantação contínua.
Percebeu um padrão aqui? Sim… o termo CI/CD está mudando.
Trazendo uma nova definição para entrega contínua
Se você segue as tendências e os analistas da indústria, você sabe que a automatização está em todo lugar, e o pipeline DevOps não é exceção. Não obstante as dificuldades da integração contínua em industrias altamente reguladas, as plataformas CI/CD atuais estão mais propensas a fornecer CI/implantação contínua do que CI/entrega contínua. Quando a Gartner usa entrega contínua, por exemplo, está na verdade falando sobre automatizar o pipeline DevOPs, incluindo a implantação, sem ficar só na entrega de código implantável.
Essa transformação do termo faz sentido. Quando falamos sobre entrega de aplicativos, falamos poeticamente sobre todas as etapas envolvidas até entregar um aplicativo nas mãos de um usuário ou cliente. Considerando que automatização e nuvem são as razões para podermos usar o termo de maneira tão ampla, não é tão forçado assim usar o termo entrega nesse contexto para DevOps.
Na verdade, enquanto a automatização continua sua marcha inexorável pelo DevOps, é possível que CI/CD se torne CI/CD/CO, onde CO significa operação contínua ou então, podemos até ver DevOps contínua, transformando tudo em um simples CD. Vamos acompanhar.
____________________________________________________________________
Tem interesse em saber mais sobre low-code? Clique aqui para ter acesso ao vídeo exclusivo.
____________________________________________________________________
A Prox é uma Consultoria de TI Independente, parceira e cliente da Outsystems.
Leia o artigo original no blog da Outsystems.
____________________________________________________________________
Prox is an IT independent consultant company, partner and client of Outsystems.
Read the original article at Outsystems’ blog.
____________________________________________________________________