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