Integração contínua x entrega contínua x implantação contínua

Índice:

Anonim

O que é integração contínua?

A integração contínua é um método de desenvolvimento de software onde os membros da equipe podem integrar seu trabalho pelo menos uma vez por dia. Neste método, cada integração é verificada por um build automatizado para pesquisar o erro.

Na integração contínua após uma confirmação do código, o software é construído e testado imediatamente. Em um grande projeto com muitos desenvolvedores, os commits são feitos várias vezes ao dia. Com cada confirmação, o código é criado e testado. Se o teste for aprovado, a construção é testada para implantação. Se a implantação for um sucesso, o código será enviado para produção. Essa confirmação, construção, teste e implantação são um processo contínuo e, portanto, o nome integração / implantação contínua.

O que é entrega contínua?

A entrega contínua é um método de engenharia de software no qual uma equipe desenvolve produtos de software em um ciclo curto. Isso garante que o software possa ser lançado facilmente a qualquer momento.

O principal objetivo da entrega contínua é construir, testar e lançar software com boa velocidade e frequência. Ajuda a reduzir o tempo de custo e o risco de entrega de alterações, permitindo atualizações frequentes na produção.

O que é implantação contínua

A implantação contínua é um processo de engenharia de software no qual as funcionalidades do produto são entregues usando a implantação automática. Ajuda os testadores a validar se as alterações da base de código estão corretas e estáveis ​​ou não.

A equipe pode obter implantação contínua contando com uma infraestrutura que automatiza diferentes etapas de teste. Depois que cada integração atende aos critérios de liberação, o aplicativo é atualizado com um novo código.

PRINCIPAIS DIFERENÇAS:

  • CI é uma abordagem para testar cada mudança na base de código automaticamente, enquanto a Entrega Contínua é uma abordagem para obter mudanças de novos recursos, configurações e correções de bugs. Por outro lado, a implantação contínua é uma abordagem para desenvolver software em um ciclo curto.
  • A CI é realizada imediatamente após o check-in do desenvolvedor. Enquanto na Entrega Contínua, o código desenvolvido é continuamente entregue até que o programador considere que está pronto para entrega e na Implantação Contínua, os desenvolvedores implantam o código diretamente no estágio de produção quando ele é desenvolvido.
  • O CI usa testes de unidade, ao contrário, a Entrega Contínua usa testes de lógica de negócios. Na implantação contínua, qualquer estratégia de teste é usada.
  • CI se refere ao controle de versão do código-fonte, enquanto a Entrega Contínua se refere à evolução lógica do CI e a Implantação Contínua se refere a implementações automatizadas do código-fonte.

Diferença entre CI vs CD vs CD

Aqui está uma diferença importante entre CI vs CD vs CD.

Integração contínua Entrega Contínua Implantação Contínua
CI é uma abordagem para testar cada mudança na base de código automaticamente. O CD é uma abordagem para obter mudanças de novos recursos, configuração e correções de bugs. O CD é uma abordagem para desenvolver software em um ciclo curto.
CI refere-se ao controle de versão do código-fonte. CD refere-se à evolução lógica do CI. CD refere-se a implementações automatizadas do código-fonte.
CI se concentra em testes de automação para determinar se o software não tem erros ou bugs. Concentra-se na liberação de novas alterações para seus clientes de forma adequada. Ênfase na mudança em todas as etapas do pipeline de produção.
A CI é realizada imediatamente após o check-in do desenvolvedor. Em CD, o código desenvolvido é entregue continuamente até que o programador considere que está pronto para o envio. No CD, os desenvolvedores implantam o código diretamente no estágio de produção quando ele é desenvolvido.
Isso ajuda você a identificar e corrigir problemas antecipadamente. Ele permite que os desenvolvedores verifiquem as atualizações de software. Ele permite que você implante e valide rapidamente novos recursos e ideias.
Ele usa testes de unidade. Ele usa testes de lógica de negócios. Qualquer estratégia de teste é executada.
A equipe de desenvolvimento envia solicitações contínuas de mesclagem de código, mesmo quando o processo de teste está em execução. Você entrega o código para revisão que pode ser agrupado para liberação. Implante o código usando um processo automatizado.
Você requer um servidor de integração contínua para monitorar o repositório principal. Você precisa de uma base sólida de integração contínua. Você precisa de uma boa cultura de teste.

Vantagens da integração contínua

Aqui estão os prós / benefícios da integração contínua:

  • Ajuda você a construir software de melhor qualidade
  • Ele permite que você conduza testes repetíveis.
  • A CI permite que os desenvolvedores de software trabalhem de forma independente em recursos em paralelo.
  • Pode aumentar a visibilidade e permitir uma maior comunicação.
  • O processo de CI ajuda a aumentar o número de funcionários e a produção de entrega das equipes de engenharia.
  • A integração contínua ajuda você a desenvolver um produto potencialmente distribuível para uma construção totalmente automatizada.
  • Ajuda a reduzir os riscos, tornando a implantação mais rápida e previsível
  • feedback imediato quando chega um problema.
  • Evite confusão de última hora na data de lançamento, e o tempo automatiza a compilação.
  • Ele reduz os riscos e torna o processo de implantação mais previsível.
  • O CI fornece feedback instantâneo quando há um problema.
  • Você pode ver o processo de integração em tempo real.
  • Isso pode evitar problemas de última hora nas datas de lançamento.
  • A compilação atual está disponível constantemente.
  • Fornece produtos entregáveis ​​em uma base regular.
  • É relativamente fácil encontrar um histórico da construção do software.
  • CI oferece estabilidade de código.

Vantagens da entrega contínua

Aqui estão os prós / benefícios da entrega contínua:

  • Automatize o processo de lançamento de software para tornar a entrega mais eficiente, rápida e segura.
  • As práticas de CD aumentam a produtividade, libertando os desenvolvedores do trabalho manual e de dependências complexas.
  • Isso ajuda você a descobrir bugs de software no início do processo de entrega.
  • O CD ajuda sua equipe de negócios a fornecer atualizações aos clientes de maneira imediata e frequente.
  • Isso garante que o software esteja sempre pronto para entrar em produção.
  • Você pode lançar software com mais frequência, o que o ajuda a obter feedback rápido de seus clientes.
  • Há menos pressão sobre as decisões para pequenas mudanças.

Vantagens da implantação contínua

Aqui estão os prós / benefícios da implantação contínua:

  • Ajuda a automatizar as tarefas repetitivas.
  • O CD torna sua implantação perfeita sem comprometer a segurança.
  • Escale facilmente de um único aplicativo de software para um portfólio de TI empresarial.
  • Você pode enviar aplicativos nativos da nuvem e também aplicativos tradicionais.
  • Ele oferece uma visão única de todos os ambientes e aplicativos.
  • Você pode conectar suas ferramentas e scripts DevOps existentes em um fluxo de trabalho adequado.
  • O CD permite aumentar a produtividade geral.
  • Você pode integrar processos e equipes com um pipeline unificado.

Desvantagens da Integração Contínua

Aqui estão os contras / desvantagens da integração contínua:

  • O tempo de configuração inicial e treinamento são necessários para se familiarizar com o servidor Cl
  • Um conjunto de testes bem desenvolvido exigiu muitos recursos para o servidor Cl.
  • Requer servidores e ambientes adicionais.
  • Você precisa de uma conversão de processos familiares em um projeto.
  • Ele fica em espera quando vários desenvolvedores integram seu código ao mesmo tempo.
  • Sua equipe deve escrever testes automatizados para cada novo recurso ou correção de bug.
  • Você precisa de um servidor CI que monitora o repositório principal e executa os testes para novos commits de código.
  • Os desenvolvedores devem mesclar suas alterações com a maior frequência possível.
  • O procedimento de teste de unidade deve passar para a implantação.

Desvantagens da entrega contínua

Aqui estão os contras / desvantagens da entrega contínua:

  • Você deve conhecer as práticas de integração contínua antes de optar pela entrega contínua.
  • As implantações ainda são manuais e, portanto, leva muito tempo para entregar o produto de software.
  • Os testes automatizados devem ser escritos e funcionar corretamente.
  • Testes defeituosos podem causar danos durante os testes de qualidade.
  • Requer coordenação de equipe porque as mudanças no código devem ser coletadas regularmente de maneira eficiente.
  • A entrega contínua requer um servidor de integração confiável e forte para o teste de automação que é caro.

Desvantagens da implantação contínua

Aqui estão os contras / desvantagens da implantação contínua:

  • Sua cultura de teste deve ser boa, pois a qualidade do pacote determina a qualidade dos lançamentos de software.
  • Os procedimentos de documentação precisam acompanhar o ritmo de implantação.
  • A liberação de mudanças significativas precisa de garantia de marketing, ajuda e suporte, e outros departamentos.

Práticas recomendadas de integração contínua

Aqui estão algumas práticas recomendadas importantes durante a implementação da Integração Contínua.

  • Automatize a construção do seu software.
  • Mantenha a construção o mais rápido possível.
  • Cada confirmação deve resultar em uma construção
  • Automatizar a implantação
  • Comprometa-se cedo e frequentemente.
  • Você nunca deve cometer código quebrado
  • Corrija as falhas de compilação imediatamente.
  • Construir em cada ambiente de destino Crie artefatos a partir de cada construção
  • A construção do software deve ser realizada de forma que possa ser automatizada
  • Não dependa de um IDE
  • Construa e teste tudo quando mudar
  • O esquema do banco de dados conta como tudo
  • Ajuda você a descobrir as principais métricas e rastreá-las visualmente
  • Faça check-in com freqüência e cedo.
  • Controle de código-fonte mais forte.
  • A integração contínua está executando testes de unidade sempre que você confirma o código.
  • Automatize a construção e teste todos.
  • Mantenha a construção rápida com implantação automatizada.

Práticas recomendadas de entrega contínua

Aqui estão algumas práticas recomendadas importantes ao implementar a entrega contínua:

  • A primeira etapa deve ser acionada a cada check-in.
  • Cada estágio deve acionar o próximo rapidamente após a conclusão bem-sucedida.
  • Mantenha a versão do código-fonte.
  • Execute construção e implantação automatizadas.
  • Implante em uma instância de uma máquina virtual por vez.
  • Execute testes de unidade e integração.
  • Você precisa construir sua biblioteca apenas uma vez.
  • A equipe deve usar o mesmo método de liberação automatizado para cada ambiente.
  • Este método permite eliminar conflitos e problemas de última hora.
  • Caso algum estado falhe, você deve pausar automaticamente o processo e corrigir os problemas.

Práticas recomendadas de implantação contínua

Aqui estão algumas práticas recomendadas importantes durante a implementação da implantação contínua:

  • Você deve usar um rastreador de problemas para a tarefa de desenvolvimento.
  • Em seu sistema de controle de versão, você deve criar uma ramificação que contenha o número do problema e a descrição de qualquer alteração feita.
  • Quando o software estiver pronto para a implantação, você pode criar uma solicitação pull para a filial.
  • Software de implantação para servidores de teste de pré-produção.
  • Promova seu software quando estiver satisfeito com sua qualidade.

Desafios da integração contínua

Aqui estão os desafios da integração contínua:

  • Isso torna o processo de desenvolvimento lento.
  • Expõe problemas e compartilhamento de questões.
  • Isso pode levar à falta de manutenção do controle de versão.
  • Pode forçá-lo a lidar com problemas.
  • Dificuldade em construir repositório de código automatizado.
  • Código não testado ou quebrado não deve ser confirmado.

Desafios da entrega contínua

Aqui estão os desafios da entrega contínua:

  • Você precisa manter a entrega contínua eficiente sem perder tempo.
  • Você precisa lidar com planos de liberação de prazos apertados.
  • A comunicação deficiente das equipes de produtos específicos pode levar a revisões e também a atrasos na implantação.
  • A equipe de negócios deve ter o orçamento para ter a infraestrutura necessária para construir um software mais impressionante.
  • Os dados / informações de monitoramento devem ser utilizados pela equipe de pesquisa e desenvolvimento.
  • A organização deve garantir que o software de código aberto se encaixa no fluxo de trabalho atual.

Desafios da implantação contínua

Aqui estão os desafios da implantação contínua:

  • O CD requer planejamento contínuo para obter lançamentos frequentes e rápidos.
  • Garanta o alinhamento entre o requisito do contexto de negócios e o desenvolvimento de aplicativos.
  • A entrega rápida não deve estar isolada apenas no processo de desenvolvimento de software.
  • O fluxo deve acompanhar o ciclo geral de desenvolvimento de software.
  • Os resultados experimentais devem estar continuamente vinculados ao roadmap do software.