Entrega contínua (CD)
Entrega contínua é uma prática de desenvolvimento de software que utiliza a automação para acelerar o lançamento de novo código.
Ela estabelece um processo pelo qual as alterações feitas por um desenvolvedor em uma aplicação possam ser enviadas para um repositório de código ou um registro de aplicações em container por meio da automação.
Como a entrega contínua está relacionada a CI/CD?
A entrega contínua é parte da CI/CD, um método de entrega de software usado com frequência ao automatizar algumas das fases de desenvolvimento de aplicações.
"CI" refere-se à integração contínua. Com a integração contínua, novas alterações no código de uma aplicação são criadas, testadas e mescladas em um repositório compartilhado. É a solução ideal para evitar conflitos entre ramificações quando muitas aplicações são desenvolvidas ao mesmo tempo.
“CD” pode se referir à implantação contínua ou à entrega contínua, que descrevem formas de automatizar as fases posteriores do pipeline.
Qual é a diferença entre entrega contínua e implantação contínua?
Embora sejam conceitos estreitamente relacionados, entrega e implantação contínuas são, muitas vezes, utilizados separadamente para especificar o grau de automação.
A entrega contínua geralmente significa que as alterações feitas por uma equipe de desenvolvimento em uma aplicação são automaticamente testadas e carregadas em um repositório (como o GitHub ou um registro de aplicações em container), onde podem ser implantadas em um ambiente de produção em tempo real pela equipe de operações. Isso resolve o problema de baixa visibilidade e comunicação entre as equipes de negócios e desenvolvimento. Para isso, a finalidade da entrega contínua é garantir o mínimo de esforço na implantação de novos códigos.
A implantação contínua, por outro lado, abrange algumas etapas adicionais do procedimento de lançamento do novo software. Normalmente inclui o processo de liberação automática das alterações de um desenvolvedor do repositório para a produção, onde poderão ser utilizadas pelos clientes. Isso evita a sobrecarga das equipes de operações por conta dos processos manuais que atrasam a entrega de aplicações. Nesse conceito, são aproveitados os benefícios da entrega contínua ao automatizar a próxima etapa no pipeline.
Open Technology Sessions
Conheça a série de webinars da Red Hat em português feita para você descobrir como inovar. Aprenda sobre Automação, Infraestrutura, Plataforma de Aplicações, Cloud Services, Inteligência Artificial e muito mais!
A transformação exige prática
Leia como a transformação digital aberta leva a resultados significativos em três estudos de caso de clientes.
O que é um pipeline de CI/CD?
Um pipeline de CI/CD consiste em uma série de etapas a serem realizadas para a disponibilização de uma nova versão de software. Assim que você implantar o CI/CD, terá estabelecido um pipeline correspondente.
O pipeline de CI/CD inclui monitoramento e automação para melhorar o fluxo de trabalho de desenvolvimento de aplicações, principalmente nos estágios de integração e teste, mas também na entrega e na implantação.
É possível executar manualmente cada etapa do pipeline de CI/CD, mas o real valor dele está na automação do ciclo de vida da aplicação.
Como a entrega contínua está relacionada ao DevOps?
DevOps, um conceito que combina as práticas de "desenvolvimento" e "operações", é uma abordagem de cultura, automação e design de plataforma que tem como objetivo agregar mais valor aos negócios e aumentar a capacidade de resposta às mudanças por meio de entregas de serviços rápidas e de alta qualidade.
A entrega contínua é uma prática específica de desenvolvimento de software que é frequentemente aplicada no DevOps. A abordagem DevOps normalmente envolve a criação de um pipeline de entrega contínua.
A metodologia DevOps descreve abordagens que ajudam a acelerar os processos necessários para levar uma ideia do desenvolvimento à implantação em um ambiente de produção no qual ela seja capaz de gerar valor para o usuário. Essas ideias podem ser um novo recurso de software, uma solicitação de aprimoramento ou uma correção de bug, entre outros.
Com o DevOps, os desenvolvedores, que normalmente criam códigos em um ambiente de desenvolvimento padrão, trabalham em estreita colaboração com as equipes de operações e testes de TI para acelerar a compilação de programas de software, as alocações de código, os testes de unidade e os lançamentos, sem sacrificar a confiabilidade.
Um resultado importante da implantação do DevOps é um pipeline CI/CD gerenciado por equipes de desenvolvimento e operações que trabalham em conjunto utilizando uma metodologia ágil.
Como a automação por pipelines oferece suporte à entrega contínua?
O CI/CD depende da automação para acelerar os processos de desenvolvimento, implementação e testes. A automação ajuda a manter a qualidade e reduz os erros humanos. Ela também aprimora a segurança como parte de uma estratégia DevSecOps .
Algumas ferramentas tratam especificamente da integração (CI), algumas gerenciam o desenvolvimento e a implantação (CD) e outras são especializadas em testes contínuos ou funções relacionadas.
Uma das ferramentas open source mais conhecidas para CI/CD é o servidor de automação Jenkins. O Jenkins foi criado para lidar com todos os processos, desde um simples servidor CI até um hub de CD completo.
Outro projeto open source normalmente utilizado é o Tekton, parte da Continuous Delivery Foundation. O Tekton permite descrever pipelines de entrega de forma declarativa usando conceitos Kubernetes e permite executá-los sob demanda em containers.
Ele é a base para o OpenShift Pipelines, uma solução CI/CD para o Red Hat® OpenShift®.