O que é entrega contínua?
A entrega contínua permite que as equipes de desenvolvimento automatizem o processo que move o software ao longo do ciclo de vida de desenvolvimento de software
Assine a newsletter da IBM
Fundo em preto e azul
O que é entrega contínua?

A entrega contínua permite que as equipes de desenvolvimento automatizem o processo que move o software ao longo do ciclo de vida de desenvolvimento de software e pode proporcionar muitos benefícios ao provisionar uma caixa de ferramentas integrada, incluindo o seguinte:

  • Reduzir o tempo de implementação por meio de testes contínuos e desenvolvimento

  • Diminuir os custos associados ao desenvolvimento de software tradicional

  • Dimensionar o desenvolvimento de software com base no tamanho do projeto

  • Implementar o código automaticamente em cada fase do ciclo de desenvolvimento

No vídeo a seguir, Eric Minick explica mais sobre entrega contínua:

Melhores práticas da entrega contínua

Veja a seguir um conjunto de melhores práticas a considerar no uso da entrega contínua:

  • Libere todas as alterações: se você usar a entrega contínua para liberar todas as alterações, deverá incluir documentação do usuário, runbooks de operações e informações sobre o que foi alterado para fins de auditoria.

  • Adote o desenvolvimento baseado em troncos: a entrega contínua baseia-se na integração contínua. Evite o máximo possível filiais que atrasem a integração para que cada mudança seja criada, testada e implantada em conjunto para obter o feedback mais rápido.

  • Entregue por meio de um pipeline automatizado: para implementar com sucesso a entrega contínua, você precisa de um pipeline de entrega automatizado bem construído para garantir que todas as versões de código sejam transferidas para seus ambientes de teste e produção de maneira consistente.

  • Automatize o máximo possível: na entrega contínua, você deve automatizar o máximo possível de processos em seu ciclo de vida de desenvolvimento de software para criar um pipeline de entrega bom e confiável, não apenas para desenvolvimentos e implementações de código, mas também para a criação de novos ambientes de desenvolvimento.

  • Procure não ter tempo de inatividade: para garantir a disponibilidade do aplicativo enquanto você faz atualizações frequentes de entrega contínua, ao enviar uma nova função para a produção, você deve primeiro validá-la antes de implementá-la na instância pública do aplicativo em execução.

  • Liberação na granularidade do teste: se duas partes de um sistema devem ser testadas juntas, elas devem ser liberadas juntas para que você saiba que as partes do seu sistema são compatíveis. Ferramentas de automação de versão são boas para coordenar esse tipo de entrega. Opcionalmente, desacople totalmente.
Pipeline/estrutura contínua

Para aproveitar os benefícios da entrega contínua, você precisa de outros elementos da estrutura contínua, como exploração contínua, integração contínua, implantação contínua e lançamento sob demanda.

Ao usar as etapas de pipeline de entrega contínua, você deve dividi-las em trabalhos separados, que são unidades de execução dentro de uma etapa:

  • Trabalhos de compilação: Compile seu projeto no trabalho de compilação para se preparar para a implantação, onde você gera artefatos que podem ser enviados para um diretório de arquivos de compilação.

  • Implemente trabalhos: Carregue seu projeto no pipeline de entrega contínua como um aplicativo que pode ser acessado a partir de um URL. Depois de implementar o projeto, você o visualiza no painel.

  • Trabalhos de teste: personalize e inclua trabalhos de teste antes ou depois de criar e implementar trabalhos baseado em seu conjunto de testes unitários ou de funções com serviços de teste de terceiros.

O pipeline de entrega contínua pode ajudar as equipes de desenvolvimento a:

  • Automatizar compilações, testes unitários e implementação

  • Edite e envie códigos por push utilizando repositórios Git, acompanhamento de problemas e sua IDE baseado na web (ambiente de desenvolvimento integrado)

  • Crie uma caixa de ferramentas DevOps integrada para construir, implementar e gerenciar seus aplicativos com seus serviços, ferramentas de código aberto e ferramentas de terceiros

  • Edite seu código de qualquer lugar que você optar por usar sua IDE para criar, editar, executar, depurar e concluir tarefas de controle de origem

  • Use seu pipeline automatizado para entregar continuamente compilações, testes e implantações de maneira repetível

  • Melhore a qualidade conhecendo seu status de criação, os resultados da verificação de segurança, a cobertura do código e a cobertura de teste para poder avaliar se deseja promover sua aplicação para o próximo ambiente (através de portas de políticas para garantir automaticamente a qualidade antes da promoção)
Implementação contínua vs. entrega contínua

A implantação contínua pode fazer parte de um pipeline de entrega contínua. Especificamente, a entrega contínua é o movimento automatizado do código através do ciclo de vida de desenvolvimento (às vezes chamado de ciclo de vida de entrega); a implantação contínua é o movimento automatizado desse código para produção, uma vez que ele passa nos testes automatizados necessários.

Se você vai tornar a implantação contínua parte do pipeline de entrega, depende das necessidades da sua empresa. Se a empresa precisar que a equipe de entrega lance software novo ou atualizado para produção repetidas vezes, de forma confiável ou o mais rápido possível, ou se a solução tiver várias dependências, é provável que você se beneficie da implementação contínua.

Para obter mais informações sobre as diferenças entre implantação contínua e entrega contínua, assista a este vídeo:

Ferramentas de entrega contínua

Uma ferramenta de entrega contínua permite que você use ferramentas de código aberto para criar, implantar e gerenciar seus aplicativos. Pela integração de conjuntos de ferramentas, você pode criar tarefas repetíveis e gerenciáveis, não apenas para a sua equipe de desenvolvimento, mas também para a sua equipe de operações.

Sua caixa de ferramentas pode conter seus serviços de nuvem atuais, ferramentas de código aberto e ferramentas de terceiros, mas você também deverá considerar uma ferramenta de entrega contínua que inclua o seguinte:

  • Modelos repetíveis para automação de construção e implantação. Se funciona para um de seus aplicativos, deve funcionar para outros. Não deixe que as próprias equipes tenham que enfrentar a configuração.

  • Um pipeline para você criar automaticamente ao enviar alterações, implantar em sua nuvem, incorporar compilações e implantações em suas cadeias de ferramentas e gerenciar implantações em toda a cadeia de ferramentas.

  • Ferramentas para colaboração em equipe, planejamento, gerenciamento de código fonte e testes.

  • Instrumentação que exponha onde sua equipe está avançando rapidamente e onde as coisas ficam mais lentas, oferecendo um guia para torná-la “mais contínua”.

As ferramentas de entrega contínua de código aberto que você pode usar para um pipeline de entrega contínua forte incluem Jenkins, Concourse CI, Spinnaker, Travis CI, GoCD e GitLab CI.

Agile e DevOps

Entrega contínua ágil

Anteriormente, você lançava o software apenas uma vez e depois o atualizava. Em seguida, você consultaria os clientes somente no início e no fim para saber se o software atendeu às necessidades deles.

O Agile é uma maneira de produzir software em iterações curtas em um cronograma de entrega contínua, e o processo de entrega contínua ágil de hoje significa que você pode liberar o código para o cliente à medida que cada recurso definido se tornar disponível. Desenvolvimento ágil e entrega contínua são suas chaves para obter recursos para o cliente assim que estiver pronto para produção. Seu objetivo é ter todos os recursos prontos para lançamento assim que sair do pipeline.

Saiba mais sobre os benefícios dos princípios ágeis.

DevOps e entrega contínua

Nas últimas décadas, o desenvolvimento de software sofreu mudanças significativas à medida que foi passando do conceito de cascata padrão para a metodologia ágil mais eficiente. Para se adaptar, você precisa mudar para uma abordagem focada em agilidade, DevOps e entrega contínua. Como parte de um pipeline de entrega contínua, esses processos focados permitem versões e atualizações de software mais confiáveis e de alta qualidade.

À medida que você faz lançamentos de software mais rápidos e menores por meio do desenvolvimento ágil, seu foco se torna mais estreito nos estágios individuais do desenvolvimento de software. Ao mesmo tempo, o DevOps mantém sua mente focada no “panorama geral” e na mudança cultural, à medida que o desenvolvimento e as operações se fundem em uma equipe que trabalha em todo o ciclo de vida do desenvolvimento de software, da codificação aos testes, da implantação ao suporte.

Para ver mais de perto o processo DevOps, assista ao vídeo abaixo:

Soluções relacionadas
IBM Cloud® Continuous Delivery

O IBM Continuous Delivery é um serviço em nuvem que ajuda a provisionar cadeias de ferramentas, automatizar compilações e testes e controlar a qualidade com funções analíticas.

Explore o IBM Cloud® Continuous Delivery
IBM UrbanCode®

A família de produtos de software IBM UrbanCode ajuda você a entregar software no mercado mais rápido, acelerando a entrega de aplicativos e reduzindo os processos manuais.

Explore o IBM UrbanCode®
Tekton na IBM Cloud®

Crie pipelines de CI/CD nativos do Kubernetes com máxima velocidade e flexibilidade.

Explore o Tekton na IBM Cloud
Recursos O que é DevOps?

O DevOps acelera a entrega de software de alta qualidade, combinando e automatizando o trabalho das equipes de desenvolvimento de software e operações de TI.

O que é integração contínua?

A integração contínua é um processo de desenvolvimento iterativo no qual os desenvolvedores integram novos códigos à base de códigos pelo menos uma vez por dia.

O que são CI/CD e pipeline de CI/CD?

Guia prático do pipeline de integração contínua/entrega contínua (CI/CD).

Dê o próximo passo

Você está preparado para DevOps? Oferecer software e serviços na velocidade que o mercado demanda exige que as equipes iterem e experimentem rapidamente e implementem novas versões com frequência, baseadas em feedback e dados. As equipes de desenvolvimento de nuvem mais bem-sucedidas adotam a cultura e as práticas modernas de DevOps, adotam arquiteturas nativas de nuvem e montam cadeias de ferramentas das melhores ferramentas da categoria para liberar sua produtividade.

Encontre sua solução de DevOps