Login / Registre-se Account

DevOps

O que é entrega contínua e qual sua relação com CI/DI e DevOps?

Jump to section

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.

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 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®.

Elementos de base do pipeline de CI/CD

Red Hat Openshift

Uma plataforma de containers e Kubernetes para acelerar a implantação de aplicações nativas em nuvem.

Red Hat Ansible Automation

O CI/CD precisa de código personalizado e compatibilidade com vários pacotes de software. O Red Hat Ansible Automation Platform é uma linguagem de automação open source com todos esses recursos em uma única composição.

Agregue ainda mais valor ao Red Hat OpenShift com a implantação de aplicações, o gerenciamento de vários clusters e a aplicação de políticas em escala.