CI/CD: o que, por que e como

Criação de fluxos de trabalho automatizados para liberações mais rápidas

CI/CD explicado

A CI/CD automatiza as suas compilações, testes e implantações para que você possa entregar alterações de código com mais rapidez e confiabilidade.

A automação é um princípio fundamental para alcançar o sucesso do DevOps e a CI/CD é um componente essencial. A CI/CD compreende a integração contínua e a entrega contínua ou a implantação contínua. Juntas, elas formam um "pipeline de CI/CD": uma série de fluxos de trabalho automatizados que ajudam as equipes de DevOps a reduzir as tarefas manuais:

Integração contínua (CI)

Compila, testa e integra automaticamente alterações de código em um repositório compartilhado

Entrega contínua (CD)

entrega automaticamente alterações de código a ambientes prontos para produção para aprovação

Implantação contínua (CD)

implanta automaticamente alterações de código diretamente nos clientes

Um pipeline de CI/CD

A CI/CD pipeline

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

Flow chart showing the steps from CI to CD

Quando alguém diz CI/CD, o "CD" a que está se referindo geralmente é a entrega contínua, não a implantação contínua. Qual é a diferença? Em um pipeline de CI/CD que usa a entrega contínua, a automação é pausada quando os desenvolvedores efetuam push para a produção. Um ser humano (sua equipe de operações, segurança ou conformidade) ainda precisa aprovar manualmente antes da liberação final, o que gera mais atrasos. Por outro lado, a implantação contínua automatiza todo o processo de lançamento. As alterações de código são implementadas nos clientes assim que passam por todos os testes necessários.

A implantação contínua é o exemplo definitivo de automação de DevOps. Isso não significa que essa seja a única maneira de fazer CI/CD ou a maneira "certa". Como a implantação contínua depende de ferramentas de teste rigorosas e de uma cultura de teste madura, a maioria das equipes de software começa com a entrega contínua e integra mais testes automatizados ao longo do tempo.

Por que CI/CD?

A resposta curta: velocidade. O relatório Estado do DevOps constatou que organizações que “dominaram” a CI/CD implantam com frequência 208 vezes maior e têm um tempo de espera 106 vezes mais rápido do que o resto. Embora o desenvolvimento mais rápido seja o benefício mais conhecido do CI/CD, uma integração contínua e um pipeline de entrega contínua permitem muito mais.

Saiba mais sobre os benefícios da CI/CD

Velocidade do desenvolvedor

Os comentários contínuos permitem que os desenvolvedores realizem alterações menores com mais frequência, em vez de esperar por um lançamento.

Estabilidade e confiabilidade

Testes automatizados e contínuos garantem que as bases de código permaneçam estáveis e prontas para lançamento a qualquer momento.

Crescimento dos negócios

Livres de tarefas manuais, as organizações podem concentrar recursos na inovação, na satisfação do cliente e no pagamento de dívidas técnicas.

A mentalidade que temos em nossa equipe é que sempre queremos nos automatizar para fazer um trabalho melhor. Queremos ter certeza de que a tarefa que estamos fazendo manualmente hoje se torne, em grande parte, automatizada.
Andrew Mulholland avatar
Andrew MulhollandDiretor de engenharia

Construindo seu kit de ferramentas de CI/CD

As equipes tornam CI/CD parte de seu fluxo de trabalho de desenvolvimento com uma combinação de processos, etapas e ferramentas automatizados.

Controle de versão

A CI começa em repositórios compartilhados, onde as equipes colaboram no código com sistemas de controle de versão (VCS) como o Git. Um VCS rastreia as alterações de código, simplifica as reversões e dá suporte à configuração como código para gerenciar testes e infraestrutura.

Saiba mais sobre o controle de versão

Compilações

As ferramentas de compilação de CI empacotam automaticamente arquivos e componentes em artefatos de lançamento e executam testes de qualidade, desempenho e outros requisitos. Depois de passar pelas verificações necessárias, as ferramentas de CD enviam versões à equipe de operações para testes e preparação adicionais.

Saiba mais sobre testes de CI

Avaliações e aprovações

Tratar a revisão de código como uma prática recomendada melhora a qualidade do código, incentiva a colaboração e ajuda até mesmo os desenvolvedores mais experientes a fazerem commits melhores. Em um fluxo de trabalho de CI/CD, as equipes revisam e aprovam o código ou aproveitam ambientes de desenvolvimento integrados para programação em pares.

Saiba mais sobre revisão de código

Ambientes

O CI/CD testa e implanta código em ambientes, desde em que os desenvolvedores criam código até em que as equipes de operações disponibilizam os aplicativos publicamente. Os ambientes geralmente têm suas próprias variáveis e regras de proteção específicas para atender aos requisitos de segurança e conformidade.

Saiba mais sobre ambientes protegidos

Solução de DevOps do GitHub

Saiba porque 90% das empresas da Fortune 100 usam o GitHub para desenvolver, escalar e produzir software seguro.
Comece sua jornada com o GitHub

Exemplo de fluxo de trabalho de CI/CD

CI/CD não precisa ser complicado nem significa adicionar uma série de ferramentas ao seu fluxo de trabalho atual. Na mabl, os desenvolvedores implantam em produção cerca de 80 vezes por semana usando apenas duas integrações de CI/CD: o conjunto de testes mabl e o GitHub Actions. Aqui está como funciona. ✨

Exemplos de fluxo de trabalho de CI/CD

CI/CD flow chart displaying how mabl deploys to production

  1. Os desenvolvedores abrem pull requests para acionar compilações iniciais e testes unitários

  2. Os commits aprovados são implantados em um ambiente de visualização

  3. Ações personalizadas do GitHub Actions instalam a CLI do mabl e executam testes headless

  4. As aplicações GitHub fornecem resultados de verificação ao vivo em pull requests

  5. Os commits aprovados são mesclados ao branch principal para testes adicionais ou implantados na produção

O que faz com que CI/CD seja um sucesso

Você encontrará diferentes ferramentas e integrações em todos os lugares, mas todos os fluxos de trabalho de CI/CD eficazes compartilham os mesmos marcadores de sucesso.

Gray circle with robot

Automação

CI/CD pode ser feito manualmente, mas esse não é o objetivo. Um bom fluxo de trabalho de CI/CD automatiza compilações, testes e implantações para que você tenha mais tempopara codificar e não mais tarefas para realizar.

Gray circle with diamond

Transparência

Se uma compilação falhar, os desenvolvedores precisam ser capazes de avaliar rapidamente o que deu errado e por quê. Logs, criadores de fluxos de trabalho visuais e ferramentas profundamente integradas facilitam aos desenvolvedores a solução de problemas, a compreensão de fluxos de trabalho complexos e o compartilhamento de seu status com a equipe maior.

Gray circle with stop sign

Velocidade

O CI/CD contribui para o desempenho geral do DevOps, principalmente para a velocidade. Os especialistas em DevOps avaliam a velocidade usando duas métricas DORA: tempo de espera para alterações (a rapidez com que os commits são feitos no código na produção) e frequência de implantação (com que frequência você confirma o código).

Gray circle with lightning bolt

Resiliência

Quando usado com outras abordagens, como cobertura de testes, ferramentas de observabilidade e sinalizadores de recursos, o CI/CD torna o software mais resistente a erros. DORA mede essa estabilidade monitorando o tempo médio de resolução (a rapidez com que os incidentes são resolvidos) e a taxa de falhas de alterações (o número de reversões de software).

Gray circle with lock shield in the center

Segurança

A automação inclui a segurança. Com o DevSecOps ganhando força, um pipeline de CI/CD preparado para o futuro tem verificações de código e permissões e fornece um registro virtual em papel para falhas de auditoria, violações de segurança e eventos de não conformidade.

Gray circle with chart trending upward

Escalabilidade

CI/CD não é exclusivamente automação. Trata-se também de garantir escalabilidade. Uma configuração robusta de CI/CD deve se expandir sem esforço com o crescimento da equipe de desenvolvimento e da complexidade do projeto. Isso significa que ele pode lidar com eficiência com o aumento das cargas de trabalho à medida que seus esforços de desenvolvimento de software crescem, mantendo a produtividade e a eficiência.

O que você pode fazer com CI/CD?

Veja como as equipes de DevOps pem em prática a automação contínua.

blue yonder logo

Blue Yonder

Migração de servidores internos para CI/CD com base em nuvem.

Explore o Blue Yonder >

Plaid

Melhorar o tempo de implantação e a produtividade do desenvolvedor.

Explore o Plaid >

3M logo

3M

Eliminar silos com ferramentas e automação compartilhadas.

Conheça a 3M>

Começar a construir seu fluxo de trabalho de CI/CD

Quer você esteja pronto para mergulhar ou ainda tenha dúvidas, nós o ajudaremos.

Explore as práticas recomendadas

Explore as práticas recomendadas

Saiba mais

Obtenha uma demonstração do GitHub

Veja como CI/CD, automação e segurança de classe mundial podem dar suporte ao seu fluxo de trabalho.

Solicitar uma demonstração

Pergunte aos especialistas

Crie uma estratégia personalizada para seus objetivos de negócios em uma sessão individual com líderes de produto do GitHub.

Agende um briefing virtual

Comparar as soluções de DevOps

Veja como o GitHub se compara a outras ferramentas e plataformas de DevOps.

Saiba mais

Solicitar uma demonstração

octocaptcha spinner

O que é DevOps?

Saiba o que é DevOps: entenda a cultura, as práticas e as ferramentas que preenchem a lacuna entre o desenvolvimento de software e as operações de TI para uma entrega mais suave e rápida.

Saiba mais

Explore os fundamentos da integração contínua

Descubra os fundamentos da Integração Contínua (CI) em DevOps. Saiba como as práticas de CI simplificam o merge, a compilação e os testes de código de vários colaboradores, facilitando o desenvolvimento mais rápido de software e lançamentos de maior qualidade.

Saiba mais

Explicação sobre implantação contínua

Aprenda os fundamentos da implantação contínua (CD) no cenário de DevOps. A CD automatiza o processo de implantação, garantindo que as alterações no código sejam automaticamente enviadas para a produção após a aprovação nos testes.

Saiba mais