Integração Contínua vs. Entrega Contínua vs. Implantação Contínua

366

Qual é a diferença entre esses três termos? Minha universidade fornece as seguintes definições:

A integração contínua basicamente significa que as cópias de trabalho do desenvolvedor são sincronizadas com uma linha principal compartilhada várias vezes ao dia.

A entrega contínua é descrita como a evolução lógica da integração contínua: sempre seja possível colocar um produto em produção!

A implantação contínua é descrita como a próxima etapa lógica após a entrega contínua: implante automaticamente o produto em produção sempre que ele passar no controle de qualidade!

Eles também fornecem um aviso: Às vezes, o termo "Implantação Contínua" também é usado se você puder implantar continuamente no sistema de teste.

Tudo isso me deixa confusa. Qualquer explicação um pouco mais detalhada (ou que vem com um exemplo) é apreciada!

lambdarookie
fonte
11
Acho que os motivos comerciais, em alguns domínios comerciais, podem impedir que uma empresa adote um modelo de implantação contínua. Dessa forma, não é um "próximo passo lógico".
Jordan Stewart
2
@lambdarookie - melhor explicação de sempre !!! Curto e direto ao ponto :)
AlikElzin-Kilaka
melhor referenc para mim atlassian.com/continuous-delivery/ci-vs-ci-vs-cd
shareef
Minha fonte mais recente katalon.com/resources-center/blog/ci-cd-introduction
Chris Smith -

Respostas:

353

Integração contínua

Concordo com a definição da sua universidade. Integração Contínua é uma estratégia de como um desenvolvedor pode integrar código à linha principal continuamente - em vez de frequentemente.

Você pode alegar que é apenas uma estratégia de ramificação no seu sistema de controle de versão.

Tem a ver com o tamanho das tarefas que você atribui a um desenvolvedor; Se uma tarefa for estimada em 4-5 dias úteis, o desenvolvedor não terá incentivo para entregar nada pelos próximos 4-5 dias, porque ainda não terminou nada.

Então o tamanho importa:

small task = continuous integration
big task   = frequent integration

O tamanho ideal da tarefa não é maior que o dia de trabalho. Dessa forma, um desenvolvedor naturalmente terá pelo menos uma integração por dia.

Entrega Contínua

Existem basicamente três escolas na Entrega Contínua:

Entrega contínua é uma extensão natural da integração contínua

Esta escola examina a série de assinaturas "Martin Fowler" de Addison-Wesley e assume que desde o lançamento de 2007 foi chamado de "Integração Contínua" e o que se seguiu em 2011 foi chamado de "Entrega Contínua" , provavelmente são de volume 1 + 2 da mesma idéia conceitual que tem a ver com algo contínuo .

Entrega contínua tem a ver com desenvolvimento ágil de software

Essa escola se diverte com a ideia de que a Entrega Contínua é capaz de apoiar os princípios do movimento ágil, não apenas como uma idéia conceitual ou uma carta de intenções, mas para real - na vida real.

Compensando o primeiro princípio do Manifesto Ágil, em que o termo "entrega contínua" é realmente usado pela primeira vez:

Nossa maior prioridade é satisfazer o cliente através da entrega antecipada e contínua de software valioso.

Esta escola alega que "Entrega Contínua" é um paradigma que abrange tudo o que é necessário para implementar uma verificação automatizada da sua "definição de pronto" .

Essa escola aceita que "Entrega Contínua" e a palavra popular ou megatendência "DevOps" são lados opostos da mesma moeda, no sentido de que ambos tentam abraçar ou encapsular esse novo paradigma ou abordagem, e não apenas uma técnica.

Entrega Contínua é sinônimo de Implantação Contínua

A terceira escola defende que a implantação contínua e a entrega contínua podem ser usadas de forma intercambiável para significar a mesma coisa.

Quando algo está pronto nas mãos dos desenvolvedores, ele é entregue imediatamente aos usuários finais, o que na maioria dos casos significa que ele deve ser implantado no ambiente de produção. Portanto, "implantar" e "entregar" significa o mesmo.

Qual escola participar

Sua universidade ingressou claramente na primeira escola e afirma que estamos nos referindo ao volume 1 + 2 da mesma série de publicações. Minha opinião é que este é um uso indevido do termo Entrega Contínua.

Eu, pessoalmente, defendo o entendimento de que a Entrega Contínua está relacionada à implementação de um suporte na vida real para as idéias e conceitos declarados pelo movimento ágil. Então entrei na escola que diz que o termo abrange todo um paradigma - como "DevOps".

A escola que usa entrega como sinônimo de implantação é defendida principalmente por fornecedores de ferramentas que criam consoles de implantação, tentando obter um pouco de hype pelo uso mais difundido do termo Entrega Contínua .

Implantação Contínua

O foco na Implantação Contínua é principalmente relevante em domínios em que o acesso do usuário final a atualizações de software depende da atualização de alguma fonte centralizada para essas informações e onde essa fonte centralizada nem sempre é fácil de atualizar porque é monolítica ou tem (muito) alta coerência por natureza (web, SOA, bancos de dados etc.).

Para muitos domínios que produzem software em que não há fonte centralizada de informações (dispositivos, produtos de consumo, instalações de clientes etc.) ou onde a fonte centralizada de informações é fácil de atualizar (lojas de aplicativos, sistemas de gerenciamento de artefatos, repositórios de código aberto etc.) ), quase não há exageros sobre o termo Implantação Contínua. Eles apenas implantam; não é grande coisa - não é uma dor que requer foco especial.

O fato de a Implantação Contínua não ser algo genericamente interessante para todos também é um argumento de que a escola que afirma que "entrega" e "implantação" são sinônimos entendeu tudo errado. Porque a Entrega Contínua realmente faz todo o sentido, mesmo que você esteja desenvolvendo software incorporado em dispositivos ou lançando plugins de Código Aberto para uma estrutura.

A definição da sua universidade de que a Implantação Contínua é um próximo passo natural da Entrega Contínua supõe implicitamente que toda entrega com controle de qualidade deve ser disponibilizada imediatamente aos usuários finais, está mais próxima da definição que minha tribo usa para descrever o termo "Contínua Release ", que, por sua vez, é outro conceito que também não faz sentido para todos.

Um lançamento pode ser uma coisa muito estratégica ou política e não há razão para supor que todo mundo queira fazer isso o tempo todo (a menos que seja uma livraria on-line ou um tipo de empresa de serviço de streaming). No entanto, as empresas que não divulgam tudo cegamente o tempo todo podem ter inúmeras razões para quererem ser mestres na implantação, de modo que também fazem a implantação contínua . Não de liberação para produção, mas de candidatos a liberação para ambientes semelhantes a produção .

Mais uma vez, acredito que sua universidade entendeu errado. Eles estão confundindo "Implantação contínua" com "Liberação contínua".

A implantação contínua é simplesmente a disciplina de poder mover continuamente o resultado de um processo de desenvolvimento para um ambiente semelhante à produção, onde os testes funcionais podem ser executados em grande escala.

A história da entrega contínua

Na imagem, tudo ganha vida:

insira a descrição da imagem aqui

O processo de Integração Contínua é as duas primeiras ações no diagrama de transição de estado. que - se for bem-sucedido - inicia o pipeline de Entrega Contínua que implementa a definição de concluído . A implantação é apenas uma das muitas ações que deverão ser realizadas continuamente neste pipeline. Idealmente, o processo é automatizado a partir do ponto em que o desenvolvedor se compromete com o VCS até o ponto em que o pipeline confirmou que temos um candidato à liberação válido.

Lakuzz
fonte
3
Se uma pessoa realmente entende do que se trata o Teste de Software, todas as diferenças "virtuais" entre Integração / Entrega / Implantação / Liberação Contínuas não fazem mais sentido.
precisa saber é o seguinte
6
Imagem está quebrada, você tem em outro lugar?
weston
Esta é a imagem que falta? Encontrei em outro lugar com o mesmo nome de arquivo.
C24w
4
Não entendo por que tantas pessoas votaram nesta resposta que começou com "Eu concordo com a definição da sua universidade" e depois disse "acredito que sua universidade entendeu errado". Acho essa resposta longa e elaborada, confusa e superanalisada. Basta procurar as definições da Amazon e o que o NoIce está dizendo neste tópico abaixo. Além disso, pare de definir paradigmas ou estratégias com termos como "idealmente", como em "idealmente cada tarefa de desenvolvimento deve ter 1 dia", esse não é o caso na prática muitas vezes, então qual é o objetivo? vamos definir estratégias e paradigmas que funcionam na vida real.
Ovi
3
@ Ovi-WanKenobi a parte que ele diz que concorda com a universidade que ele está falando sobre a definição de Integração Contínua, e a parte que ele diz que a universidade entendeu errado, ele está dizendo sobre a Implantação Contínua, então uma coisa não invalida a outra, elas são não é mútuo exclusivo. Além disso, a resposta de Nolce é bastante confusa, e o formato da resposta não atrai as pessoas a lê-la, mesmo que possa ter boas informações (as pessoas aqui geralmente julgam as respostas pelo formato antes mesmo de lê-las).
Alisson
84

Nem a pergunta nem as respostas realmente se encaixam na minha maneira simples de pensar sobre isso. Sou consultor e sincronizei essas definições com várias equipes de desenvolvimento e pessoal de desenvolvimento, mas estou curioso para saber como ele combina com o setor em geral:

Basicamente, penso na prática ágil de entrega contínua como um continuum:

Não contínuo (tudo manual) 0% ----> 100% Entrega contínua de valor (tudo automatizado)

Passos para entrega contínua:

Zero. Nada é automatizado quando os desenvolvedores fazem check-in do código ... Você tem sorte se eles compilaram, executaram ou executaram qualquer teste antes do check-in.

  1. Criação contínua: criação automatizada em cada check-in, que é o primeiro passo, mas não faz nada para provar a integração funcional do novo código.

  2. Integração Contínua (IC): criação e execução automatizadas de pelo menos testes de unidade para provar a integração do novo código ao código existente, mas de preferência testes de integração (ponta a ponta).

  3. Implantação contínua (CD): implantação automatizada quando o código passa o IC pelo menos em um ambiente de teste, de preferência em ambientes mais altos quando a qualidade é comprovada por meio do CI ou pela marcação de um ambiente inferior como PASSADO após o teste manual. IE, o teste pode ser manual em alguns casos, mas a promoção para o próximo ambiente é automática.

  4. Entrega Contínua: publicação e liberação automatizadas do sistema em produção. Trata-se de um CD em produção, além de outras alterações na configuração, como instalação para testes A / B, notificação aos usuários de novos recursos, notificação de suporte a nova versão e notas de alteração, etc.

EDIT: Gostaria de ressaltar que há uma diferença entre o conceito de "entrega contínua", conforme mencionado no primeiro princípio do Manifesto Ágil ( http://agilemanifesto.org/principles.html ) e a prática da Entrega Contínua, como parece ser referenciado pelo contexto da pergunta. O princípio da entrega contínua é o de tentar reduzir o desperdício do Inventário, conforme descrito no pensamento Lean ( http://www.miconleansixsigma.com/8-wastes.html ). A prática da Entrega Contínua (CD) por equipes ágeis surgiu nos muitos anos desde que o Manifesto Ágil foi escrito em 2001. Essa prática ágil aborda diretamente o princípio, embora sejam coisas diferentes e aparentemente facilmente confusas.

tmgirvin
fonte
5
Ótima resposta de consultor. Estou no mesmo barco que você e concordo que deve haver uma resposta mais real; Em vez da resposta típica da faculdade ou da lista de desejos corporativos.
Suamere
62

Eu acho que a definição da Amazon é direta e simples de entender.

" A entrega contínua é uma metodologia de desenvolvimento de software em que o processo de liberação é automatizado. Toda alteração de software é criada, testada e implantada automaticamente na produção. Antes do envio final à produção, uma pessoa, um teste automatizado ou uma regra de negócios decide quando o Embora seja necessário liberar imediatamente todas as alterações de software bem-sucedidas para produção com entrega contínua, nem todas as alterações precisam ser lançadas imediatamente.

A integração contínua é uma prática de desenvolvimento de software em que os membros de uma equipe usam um sistema de controle de versão e integram seu trabalho frequentemente ao mesmo local, como uma filial principal. Cada alteração é criada e verificada por testes e outras verificações para detectar erros de integração o mais rápido possível. A integração contínua é focada na criação e teste de código automaticamente, em comparação com a entrega contínua, que automatiza todo o processo de liberação do software até a produção ".

Confira http://docs.aws.amazon.com/codepipeline/latest/userguide/concepts.html

Ngoc Nguyen
fonte
3
Eu acho que essa resposta deve ser aceita como resposta correta para essa pergunta!
V. Kovpak
11
Sim, esta resposta é mais simples de entender.
Aman Gupta - Shooter
46

Atlassian postou uma boa explicação sobre Integração contínua vs. entrega contínua vs. implantação contínua .

ci-vs-ci-vs-cd

Em poucas palavras:

Integração Contínua - é uma automação para criar e testar aplicativos sempre que novas confirmações são enviadas para a filial.

Entrega Contínua - é a Integração Contínua + Implanta o aplicativo na produção "clicando em um botão" (a liberação para os clientes é frequentemente, mas sob demanda).

Implantação Contínua - é Entrega Contínua, mas sem intervenção humana (a liberação para os clientes está em andamento).

Noam Manos
fonte
35

A integração contínua basicamente significa que as cópias de trabalho do desenvolvedor são sincronizadas com uma linha principal compartilhada várias vezes ao dia.

Ou mais do que várias vezes por dia. Frequentemente, qualquer tarefa discreta é concluída, basicamente. Considere, por exemplo, uma equipe de desenvolvedores trabalhando em um único aplicativo de negócios. Em muitos ambientes, pode acontecer o seguinte:

  • Um ou dois desenvolvedores mantêm alterações locais por alguns dias porque "ainda não está pronto".
  • Um ou dois desenvolvedores criam ramificações no controle de origem para que possam trabalhar em seus recursos "sem serem incomodados pelas alterações de outras pessoas".

Isso pode levar a problemas. Organização pobre de código / tarefa leva à ramificação, ramificação leva à fusão, fusão ... leva ao sofrimento. A integração contínua como prática aborda isso, incentivando todos a trabalhar na mesma fonte compartilhada. Itens de trabalho individuais devem ser discretos o suficiente para serem concluídos em um curto período de tempo (no máximo horas).

Basicamente, a ideia geral é integrar uma pequena mudança em uma pequena quantidade de trabalho. Integrar uma grande mudança é uma quantidade desproporcionalmente grande de trabalho. O agregado do trabalho de integração é menor se realizado em pequenas etapas constantes. Isso permite que os desenvolvedores passem mais tempo trabalhando em recursos visíveis nos negócios em vez de sobrecarga no processo de desenvolvimento.

A entrega contínua é descrita como a evolução lógica da integração contínua: sempre seja possível colocar um produto em produção!

Isso segue a mesma ideia de itens de trabalho discretos e bem definidos. Se houver uma única base de código mestre que só é ajustada em pequenos incrementos por recursos de trabalho completos, testados e conhecidos, essa base de código é sempre estável. O teste automatizado é a chave aqui para poder provar essa estabilidade ao pressionar um botão.

Quanto menos trabalho de estabilização precisar ser realizado (que, mais uma vez, é uma sobrecarga do processo de desenvolvimento e deve ser eliminado), mais frequentemente essa base de código pode ser enviada para qualquer ambiente. Em muitas empresas, uma implantação pode ser um processo bastante desgastante. Mesmo uma operação de uma semana, com as mãos no convés. Isso é caro e não produz valor comercial. Ao empregar boas definições de itens de trabalho, testes automatizados eficazes e integração contínua, uma equipe pode estar em posição de automatizar a entrega da base de código em qualquer ambiente.

A implantação contínua é descrita como a próxima etapa lógica após a entrega contínua: implante automaticamente o produto em produção sempre que ele passar no controle de qualidade!

Você raramente vê isso acontecer em um ambiente de negócios, e é uma alegria quando é encontrado. Se a base de código puder ser testada e implantada automaticamente em qualquer ambiente, então, a produção será um ambiente como outro qualquer. Portanto, se a equipe acumular até esse ponto, há um potencial de valor significativo para os negócios, sempre podendo implantar atualizações na produção.

Correções de defeitos são enviadas aos clientes mais rapidamente, novos recursos chegam ao mercado mais rapidamente, novas idéias são testadas em relação ao mercado em incrementos menores para permitir o redirecionamento de prioridades etc.

Por exemplo, digamos que uma empresa tenha uma grande idéia para um novo recurso em seus produtos ou serviços baseados em software. Eles fizeram algumas pesquisas, conhecem o mercado e acreditam que essa ideia resultará em uma nova e forte linha de receita. Agora considere duas opções para fornecer esse recurso:

  1. Passe meses desenvolvendo tudo em um ramo único. Passe semanas integrando-o de volta à base de código principal. Passe dias testando-o. Passe um dia implantando-o. E só então comece a rastrear a receita real no sistema de produção.
  2. Implemente pequenas partes do recurso, uma de cada vez. A cada semana, libere uma nova peça. A cada semana, obtenha mais dados sobre a receita real.

No primeiro cenário, se o recurso não tiver o efeito de mercado desejado, muito dinheiro será desperdiçado em algo que os clientes realmente não desejam. No segundo cenário, o fato de os clientes não quererem é determinado muito, muito mais cedo e o restante do trabalho é priorizado.


Em última análise, essas "coisas contínuas" são sobre remover as despesas gerais do processo de desenvolvimento. Se a linha de receita de uma empresa é uma oferta de serviço específica, idealmente todos os seus custos devem ser incluídos nessa oferta. As despesas gerais do processo de desenvolvimento (mesclar código, testar novamente os mesmos recursos após uma mesclagem, tarefas de implantação manual etc.) não contribuem realmente para o valor do serviço; portanto, esses conceitos buscam remover esses custos do processo.

David
fonte
2
Essa resposta se aplica quando você tem uma dúzia de desenvolvedores, e os standups ágeis são bem implementados, e os trabalhos são passados ​​em partes do trabalho em termos de horas. Dizendo isso, ainda tenho que trabalhar em um ambiente em que os empregos nem sempre se tornam muito maiores, tornando a definição idealista e nunca realmente alcançada. Eu realmente gostaria de saber se alguma equipe ágil realmente chega a esse estágio, sem queixas nas posições de que o tempo esperado alocado para tarefas delegadas é excessivamente curto.
MagicLAMP
22

Um gráfico pode substituir muitas palavras:

insira a descrição da imagem aqui

Aproveitar! :-)

# Atualizei a imagem correta ...

simhumileco
fonte
5
A imagem está um pouco errada ... Entrega Contínua é aquela com um gatilho manual para produção. Implantação contínua é o único com o gatilho automático para a produção
gharper
11
@amirouche sim, eu fiz :)
simhumileco
2
Ok, eu estava lendo errado a imagem. Na verdade, a diferença entre entrega contínua e implantação contínua é apenas a cor da seta ... Na IMO, será mais óbvio a diferença entre ambas se o círculo Produção estiver fora do retângulo na Entrega contínua.
Amirouche 16/07
11
qual é a distinção entre um teste de aceitação e um teste de integração nessas imagens?
Jonah
6

Diferença entre integração contínua, entrega contínua e implantação contínua

insira a descrição da imagem aqui

Manivannan Thirugnanam
fonte
4

Acho que estamos analisando demais e talvez complicando um pouco o conjunto "contínuo" de palavras. Nesse contexto, contínuo significa automação. Para as outras palavras anexadas a "contínuo", use o idioma inglês como guia de tradução e não tente complicar as coisas! Em "build contínuo", automaticamente criamos (escrevemos / compilamos / vinculamos / etc) nosso aplicativo em algo executável para uma plataforma / container / tempo de execução / etc específicos. "Integração contínua" significa que sua nova funcionalidade testa e executa como pretendido ao interagir com outra entidade. Obviamente, antes que a integração ocorra, a construção deve ocorrer e testes completos também serão usados ​​para validar a integração. Então, na "integração contínua" usa-se a automação para agregar valor a um bloco de funcionalidades existente de uma maneira que não perturbe negativamente a funcionalidade existente, mas se integre perfeitamente a ela, agregando um valor percebido ao todo. A integração implica, por sua mera definição em inglês, que as coisas fluem harmoniosamente; portanto, em conversas de código, meu add compila, vincula, testa e roda perfeitamente dentro do todo. Você não chamaria algo de integrado se falhasse no produto final, não é? Em nosso contexto, "implantação contínua" é sinônimo de "entrega contínua", pois no final do dia fornecemos funcionalidade aos nossos clientes. No entanto, analisando mais isso, eu poderia argumentar que implantar é um subconjunto de entrega porque implantar algo não significa necessariamente que nós entregamos. Nós implantamos o código, mas porque não temos ' t efetivamente comunicados aos nossos stakeholders, não conseguimos entregar da perspectiva dos negócios! Destacamos as tropas, mas não entregamos a água e a comida prometidas na cidade vizinha. E se eu adicionasse o termo "transição contínua", ele teria seu próprio mérito? Afinal, talvez seja mais adequado descrever o movimento do código nos ambientes, pois possui a conotação de "de / para" mais do que implantação ou entrega, o que poderia implicar apenas um local, em perpetuidade! É isso que obtemos se não aplicarmos o bom senso. teria seu próprio mérito? Afinal, talvez seja mais adequado descrever o movimento do código nos ambientes, pois possui a conotação de "de / para" mais do que implantação ou entrega, o que poderia implicar apenas um local, em perpetuidade! É isso que obtemos se não aplicarmos o bom senso. teria seu próprio mérito? Afinal, talvez seja mais adequado descrever o movimento do código nos ambientes, pois possui a conotação de "de / para" mais do que implantação ou entrega, o que poderia implicar apenas um local, em perpetuidade! É isso que obtemos se não aplicarmos o bom senso.

Em conclusão, isso é algo simples de descrever (fazê-lo é um pouco mais ... complicado!), Basta usar o bom senso, o idioma inglês e você ficará bem.

NoIce
fonte
3
Por favor, dê uma olhada em Como responder .
xenteros 21/10
3

Integração contínua: A prática de mesclar o desenvolvimento trabalha constantemente com o ramo principal, para que o código seja testado o mais rápido possível para detectar problemas mais cedo.

Entrega Contínua: entrega contínua de código para um ambiente assim que o código estiver pronto para envio. Isso pode ser uma preparação ou produção. A idéia é que o produto seja entregue a uma base de usuários, que podem ser QAs ou clientes para revisão e inspeção.

O teste de unidade durante a fase de Integração Contínua não pode capturar todos os bugs e lógica de negócios, principalmente os problemas de design e é por isso que precisamos de controle de qualidade ou ambiente de teste para teste.

Implantação contínua: a implantação ou liberação do código assim que estiver pronto. A implantação contínua requer integração contínua e entrega contínua, caso contrário, a qualidade do código não será garantida em uma liberação.

Implantação Contínua ~~ Integração Contínua + Entrega Contínua

mohan08p
fonte
2

Diagrama CI / CD

Integração contínua

  • Automatizado (criação de check-ins + teste de unidade)

Entrega Contínua

  • Integração contínua
  • Automatizado (implantação no ambiente de teste + teste de carga + teste de integração)
  • Manual (implantação na produção)

Implantação Contínua

  • Entrega contínua, mas automatizada (implantação na produção)

CI / CD é uma jornada. Não é um destino.

Essas etapas são sugestões. Você pode adaptar os estágios com base nas suas necessidades comerciais. Alguns estágios podem ser repetidos para vários tipos de teste, segurança e desempenho. Dependendo da complexidade do seu projeto e da estrutura de suas equipes, algumas etapas podem ser repetidas várias vezes em diferentes níveis. Por exemplo, o produto final de uma equipe pode se tornar uma dependência no projeto da próxima equipe. Isso significa que o produto final da primeira equipe é posteriormente preparado como um artefato no projeto da próxima equipe.

Nota de rodapé:

Praticando integração contínua e entrega contínua na AWS

PS1
fonte
2

Fonte: https://thenucleargeeks.com/2020/01/21/continuous-integration-vs-continuous-delivery-vs-continuous-deployment/

O que é Integração Contínua A Integração Contínua é um processo ou uma prática de desenvolvimento de compilação e teste automatizados, isto é, é necessário que um desenvolvedor comprometa seu código várias vezes em um repositório compartilhado, onde cada integração é verificada por compilação e teste automatizados.

Se a construção falhar / for bem-sucedida, ela será notificada a um desenvolvedor e ele poderá executar ações relevantes.

O que é Entrega Contínua A Entrega Contínua é a prática em que mantemos nosso código implantável a qualquer momento que tenha passado em todos os testes e possua toda a configuração necessária para enviar o código à produção, mas ainda não foi implantado.

O que é implantação contínua Com a ajuda da CI, criamos o build para nosso aplicativo e estamos prontos para avançar para a produção. Nesta etapa, nossa compilação está pronta e, com o CD, podemos implantar nosso aplicativo diretamente no ambiente de controle de qualidade e, se tudo correr bem, podemos implantar a mesma compilação na produção.

Então, basicamente, a implantação contínua é um passo além da entrega contínua. Com essa prática, todas as alterações que passam em todos os estágios do seu pipeline de produção são liberadas para seus clientes.

A Implantação Contínua é uma combinação de Gerenciamento de Configuração e Containerização.

Gerenciamento de configuração: o CM trata da manutenção da configuração do servidor que será compatível com os requisitos do aplicativo.

Containerização : a containerização é um conjunto de pedágios que manterá a consistência em todo o ambiente.

Fonte da imagem: https://www.atlassian.com/

Fonte da imagem: https://www.atlassian.com/

Aditya
fonte
1

O DevOps é uma combinação dos 3Cs - contínua , comunicação , colaboração e isso leva ao foco principal em vários setores.

Em um mundo de dispositivos conectados à IoT, vários recursos de scrum, como proprietário do produto, web, dispositivos móveis e controle de qualidade, trabalham de maneira ágil em um ciclo de scrum do scrum para entregar um produto ao cliente final.

Integração contínua: recurso de scrum múltiplo trabalhando simultaneamente em vários pontos de extremidade

Entrega contínua: com integração e implantação, entrega do produto a vários clientes para ser tratada ao mesmo tempo.

Implantação contínua: vários produtos implantados em vários clientes em várias plataformas.

Assista a isto para saber como o DevOps está habilitando o mundo conectado à IoT: https://youtu.be/nAfZt2t4HqA

eInfochips - Komal C
fonte
0

Pelo que aprendi com Alex Cowan no curso Entrega Contínua e DevOps , o CI e o CD fazem parte de um pipeline de produtos que consiste no tempo que passa de uma Observação para um Produto Lançado.

Pipeline de produtos de Alex Cowan, 2018

Das observações aos projetos, o objetivo é obter idéias testáveis ​​de alta qualidade. Essa parte do processo é considerada Design Contínuo .

O que acontece depois, quando seguimos a partir do Código, é considerado um recurso de Entrega Contínua cujo objetivo é executar as idéias e liberar para o cliente muito rapidamente (você pode ler o livro Entrega Contínua de Jez Humble : Liberação Contínua de Software: Versões Confiáveis ​​de Software por Compilação, Teste, e automação de implantação para obter mais detalhes). O pipeline a seguir explica em quais etapas a Integração Contínua (IC) e a Entrega Contínua (CD) consistem.

CI / CD de Alex Cowan

Integração contínua , como Mattias Petter Johansson explica ,

é quando uma equipe de software tem o hábito de fazer várias mesclagens por dia e possui um sistema de verificação automatizado para verificar se há problemas.

(você pode assistir aos dois vídeos a seguir para obter uma visão geral mais prática usando o CircleCI - Introdução ao CircleCI - Continuous Integration P2 e Executando o CircleCI na solicitação de recebimento ).

Pode-se especificar o pipeline de CI / CD da seguinte forma, que vai de Novo Código a um Produto lançado.

Pipeline de entrega contínua de Alex Cowan, 2018

Os três primeiros passos têm a ver com testes, estendendo os limites do que está sendo testado.

Implantação Contínua , por outro lado, é manipular a Implantação automaticamente. Portanto, qualquer confirmação de código que passa na fase de teste automatizado é automaticamente liberada na produção.

Nota : Isso não é necessariamente o que seus pipelines devem ter, mas eles podem servir como referência.

Tiago Martins Peres
fonte
0

vamos mantê-lo breve:

CI: Uma prática de desenvolvimento de software em que membros de uma equipe integram seu trabalho pelo menos diariamente. Cada integração é verificada por compilação automatizada (inclui testes) para detectar erros o mais rápido possível. CD: CD Baseia-se no IC, em que você cria o software de forma que o software possa ser liberado para produção a qualquer momento.

sajjad serajzadeh
fonte