Entrega contínua vs. implantação contínua

Acelere o código de alta qualidade para os clientes com estas duas práticas de automação.

O que é entrega contínua e implantação contínua?

Juntamente com a integração contínua, a entrega contínua e a implantação contínua há práticas que automatizam as fases da entrega do software. São práticas que permitem às equipes de desenvolvimento lançar novos recursos, melhorias e correções para os clientes com mais velocidade, precisão e produtividade.

A entrega contínua e a implantação contínua têm muito em comum. Para entender as diferenças entre essas práticas e descobrir qual delas você quer implementar, é necessário identificar as fases da entrega de software que podem ser automatizadas.

Automatizar o processo de entrega de software

Os consumidores exigem o aumento da personalização e da segurança dos produtos. Para atender a essas demandas e entregar software de modo mais rápido e confiável, as equipes de desenvolvimento podem adotar uma cultura de DevOps.

Uma cultura de DevOps elimina as disciplinas isoladas e une pessoas, processos e tecnologias para aprimorar a colaboração e a coordenação. Como resultado, as alterações de código chegam à produção mais rapidamente e agregam novos valores para o cliente.

Embora as equipes de desenvolvimento, operações de TI, engenharia de qualidade e segurança trabalhem em conjunto no DevOps, o processo de entrega de software ainda é complexo. O DevOps organiza a entrega de software em quatro fases: planejamento, desenvolvimento, entrega, implantação e operação.

Entrega de software no DevOps

Sem a automação, as equipes de desenvolvimento precisam compilar, testar e implantar manualmente o software, o que inclui:

  • Verificação, teste e validação de código.
  • Mesclagem de alterações de código ao branch principal.
  • Preparação do código para ativação.
  • Criação de um artefato implantável.
  • Envio do código para a produção.

Fases a serem automatizadas

A integração contínua, a entrega contínua e a implantação contínua são práticas que automatizam aspectos das fases de desenvolvimento e entrega. Cada prática leva a automação além, iniciando com a integração contínua.

A diferença entre entrega contínua e implantação contínua

Integração contínua

Para descrever a entrega contínua e a implantação contínua, começaremos com a integração contínua. Na integração contínua, a fase de desenvolvimento (criar e testar o código) é totalmente automatizada. Toda vez que você confirma o código, as alterações são validadas e mescladas com o branch mestre e o código é empacotado em um artefato de compilação.

Entrega contínua

A entrega contínua automatiza a próxima fase: a entrega. Na entrega contínua, quando um novo artefato de compilação é disponibilizado, o artefato é automaticamente colocado no ambiente desejado e implantado.

CI/CD (Integração Contínua e Entrega Contínua)

Quando as equipes implementam a CI/CD (integração contínua/entrega contínua), as fases de desenvolvimento e entrega são automatizadas. O código permanece pronto para produção a qualquer momento. Todas as equipes precisam disparar manualmente a transição do desenvolvimento para a implantação, o que disponibiliza o artefato de compilação automatizado para a implantação automática. Isso pode ser tão simples quanto pressionar um botão.

Implantação contínua

Com a implantação contínua, todo o processo, desde a confirmação do código até a produção, é automatizado. O gatilho entre as fases de desenvolvimento e entrega é automático. Então, as alterações de código são ativadas quando recebem validação e passam em todos os testes. Isso significa que os clientes recebem as melhorias assim que são disponibilizadas.

Entrega contínua vs. implantação contínua: qual escolher?

Seja para a entrega contínua ou o desenvolvimento contínuo, você encontrará as ferramentas certas.

Antes de considerar qual dessas práticas implementar, determine se a organização tem uma cultura de DevOps para apoiá-la. Em seguida, como as equipes de DevOps tentam automatizar todo o processo de entrega de software, a pergunta não é "qual é a melhor?". Em vez disso, pergunte "é necessário um gatilho manual entre a integração contínua e a entrega contínua?".

Ao procurar a resposta, use estas perguntas para se orientar:

  • É possível implantar sem a aprovação dos stakeholders?
  • Os requisitos de portão e sistema permitem a automação de ponta a ponta?
  • É possível expor os clientes a alterações na produção pouco a pouco?
  • A organização responde a erros de produção rapidamente?

Se você tiver respondido sim a todas, considere a prática de implantação contínua e automatização completa da entrega de software – da confirmação à produção de código.

Se tiver respondido "não" a alguma, inicie a CI/CD (integração contínua e entrega contínua). Automatize a criação de código pronto para produção que precisa só de uma aprovação manual para a implantação. Com o passar do tempo, você pode trabalhar para a implantação contínua e a automação completa do processo de entrega de software.

De qualquer modo, você terá vantagens nas duas práticas:

  • As alterações são compiladas, validadas e testadas automaticamente.
  • O código é sempre implantável – sem ansiedade no dia do lançamento.
  • Os lançamentos recebem comentários mais rapidamente dos stakeholders e dos clientes.
  • Os desenvolvedores ficam mais produtivos com menos tarefas manuais e administrativas.
  • Como as alterações são pequenas e frequentes, as falhas são raras e criam pouca instabilidade.

Ferramentas para integração contínua, entrega contínua e implantação contínua

As equipes de DevOps usam cadeias de ferramentas (séries de programas de desenvolvimento de software conectados) para automatizar a entrega de software. As ferramentas que você usará dependem da prática de automação escolhida e das fases que serão automatizadas pela prática. Veja alguns exemplos.

Comece o DevOps no Azure

Descubra ferramentas de entrega contínua e desenvolvimento contínuo – além de ferramentas para facilitar outras práticas de DevOps na nuvem.