Close

O que é implementação contínua?

A implementação contínua (CD) beneficia suas equipes de software e clientes. Saiba o que é, seus benefícios, as práticas recomendadas e muito mais.

Foto de Sten Pittet
Sten Pittet

Autor colaborador


A implementação contínua (CD) é um processo de lançamento de software que usa testes automatizados para validar se as alterações em uma base de código estão corretas e estáveis para implementação autônoma imediata em um ambiente de produção.

O ciclo de lançamento do software evoluiu ao longo do tempo. O processo legado de mover o código de uma máquina para outra e verificar se ele funciona conforme o esperado costumava ser um processo sujeito a erros e com muitos recursos. Agora, as ferramentas podem automatizar todo o processo de implementação, o que permite que as empresas de engenharia se concentrem nas necessidades de negócios principais em vez de sobrecarga de infraestrutura.

Ilustração do ciclo de implementação contínua | Atlassian CI/CD

Implementação contínua versus entrega contínua


A distinção entre implementação contínua vs. entrega contínua pode ser confusa devido à nomenclatura. Ambas são abreviadas como CD e têm responsabilidades muito semelhantes. A entrega é o precursor da implementação. Na entrega, há uma etapa de aprovação manual final antes do lançamento da produção.

O seguinte é um exercício mnemônico para ajudar a lembrar a distinção entre os dois. Pense em receber um pacote de sua loja de varejo on-line favorita. Ao esperar que um pacote chegue, você coordena com um serviço de entrega. É a fase de entrega. Depois que a entrega do pacote é bem-sucedida, você o abre e analisa seu conteúdo para ter certeza de que corresponde às expectativas. Se não corresponder, ele pode ser rejeitado e devolvido. Se o pacote estiver correto, você está pronto para “implementar” e usar a nova compra!

Na fase de entrega, os desenvolvedores analisam e mesclam alterações de código que são então embaladas em um artefato. Esse pacote é então movido para um ambiente de produção onde aguarda a aprovação para ser aberta para implementação. Na fase de implementação, o pacote é aberto e revisado com um sistema de verificações automatizadas. Se as verificações falharem, o pacote será rejeitado.

Após passar pelas verificações, a implementação do pacote é automática na produção. A implementação contínua é o pipeline de implementação automatizada de software completo, de ponta a ponta.

Ver solução

Crie e opere softwares com o Open DevOps

Material relacionado

Saiba mais sobre testes automatizados

Diagrama das etapas em um ciclo de vida de implementação contínua | Atlassian CI/CD

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


A implementação contínua oferece benefícios incríveis de produtividade para as equipes de desenvolvimento de software. A combinação do DevOps com a implementação contínua permite que as equipes acelerem muito os lançamentos. Como o acionamento dos pipelines de implementação é automático para cada alteração, as equipes podem se desenvolver com mais rapidez. Se a equipe tem uma ideia para um novo produto ou recurso, ele pode estar nas mãos dos clientes assim que o código for empurrado. A implementação contínua permite implementar pequenos lotes de mudanças, o que torna para as equipes os lançamentos menos arriscados e fáceis de corrigir caso ocorra um problema.

Do ponto de vista comercial, a entrega contínua permite que uma empresa responda às mudanças nas demandas do mercado ao implementar e validar com rapidez novas ideias e recursos.

Ferramentas de implementação contínua


Depois de adotar o teste automatizado, é uma boa ideia combiná-lo com uma ferramenta de cobertura de teste que lhe dará uma ideia de quanto de sua base de código é coberto pelo seu conjunto de testes.

É bom ter como objetivo uma cobertura de mais de 80%, mas tenha cuidado para não confundir um alto percentual de cobertura com um bom pacote de teste. Uma ferramenta de cobertura de código ajudará você a encontrar código não testado, mas é a qualidade dos testes que fará a diferença no final.

Se você está apenas começando, não se apresse em atingir 100% de cobertura de sua base de código, mas, sim, use uma ferramenta de cobertura de teste para descobrir as partes críticas de seu aplicativo, que ainda não têm testes e comece por aí.

Teste Automatizado

A dependência mais crítica para a implementação contínua é o teste automatizado. De fato, toda a cadeia de integração contínua, entrega e implementação depende dele. Os testes automatizados são usados para evitar quaisquer regressões quando um novo código é introduzido e podem substituir revisões manuais de novas alterações de código.

Implementações contínuas

O recurso de distinção entre implementação contínua e entrega é a etapa automatizada de ativar novos códigos em um ambiente ativo. Um pipeline de implementação contínua deve ser capaz de desfazer uma implementação no caso de bugs ou alterações importantes serem implementados. Ferramentas automatizadas de implementação contínua, como implementações verde-azul, são um requisito para uma implementação contínua adequada.

Monitoramento e alertas

Um pipeline robusto de implementação contínua vai ter monitoramento e alertas em tempo real. Essas ferramentas dão visibilidade à integridade do sistema geral e ao estado anterior e posterior das novas implementações de código. Além disso, os alertas podem ser usados para acionar uma implementação contínua “desfazer” para reverter uma implementação com falha.

Práticas recomendadas da implementação contínua


Uma vez estabelecido um pipeline de implementação contínua, são necessárias manutenção e participação contínuas da equipe de engenharia para garantir seu sucesso. As práticas e comportamentos recomendados a seguir garantem que uma equipe de engenharia consiga aproveitar ao máximo um pipeline de implementação contínua.

Desenvolvimento orientado por teste

O desenvolvimento orientado a testes é a prática de definir uma especificação de comportamento para novos recursos de software antes do início do desenvolvimento. Uma vez que a especificação é definida, os desenvolvedores escrevem testes automatizados que correspondem à especificação. Por fim, o código de entrega real é escrito para satisfazer os casos de teste e corresponder à especificação. O processo garante que todo o novo código passe por testes automatizados com antecedência. A alternativa é entregar o código primeiro e depois produzir cobertura de teste. Essa opção abre espaço para lacunas entre o comportamento esperado da especificação e o código produzido.

Método único de implementação

Uma vez que um pipeline de implementação contínua esteja em ação, é fundamental que ele seja o único método de implementação. A cópia do código para produção ou edição ao vivo feita pelos desenvolvedores não deve ser manual. Alterações manuais externas ao pipeline de CD vão dessincronizar o histórico de implementação, quebrando o fluxo de CD.

Conteinerização

A conteinerização de um aplicativo de software garante que ele tenha o mesmo comportamento em qualquer máquina em que seja implementado. Assim, são eliminados vários problemas em que o software funciona em uma máquina, mas tem um comportamento diferente em outra. Os contêineres podem ser integrados como parte do pipeline de CD para que o código tenha o mesmo comportamento na máquina do desenvolvedor durante o teste automatizado e a implementação de produção.

Em resumo…


A implementação contínua pode ser uma ferramenta poderosa para empresas de engenharia modernas. Ela é a etapa final do “pipeline contínuo” geral que consiste em integração, entrega e implementação. A verdadeira experiência de implementação contínua é a automação no nível em que o código é implementado na produção, testado quanto à precisão e revertido automaticamente quando está errado ou aceito quando correto.

Se você quer colocar a entrega contínua em prática, confira os tutoriais de CI/CD de DevOps, que abordam o Open DevOps da Atlassian com o Jira e as integrações de terceiros.

Sten Pittet
Sten Pittet

Estou no ramo de software há 10 anos, em diversas funções, de desenvolvimento a gerenciamento de produto. Depois de passar os últimos 5 anos na Atlassian trabalhando em Ferramentas de Desenvolvimento, agora escrevo sobre como compilar software. Fora do trabalho, estou aprimorando minhas habilidades como pai de uma criancinha maravilhosa.


Compartilhe este artigo

Leitura recomendada

Marque esses recursos para aprender sobre os tipos de equipes de DevOps ou para obter atualizações contínuas sobre DevOps na Atlassian.

Ilustração DevOps

Comunidade de DevOps

Ilustração DevOps

Leia o blog

Ilustração do mapa

Comece gratuitamente

Inscreva-se para receber a newsletter de DevOps

Thank you for signing up