jsonmasking
jsonmasking copied to clipboard
Diferença e definição de CI & CD - Digital Innovation One
Olá, estou fazendo o curso que você deu aula, e pode parecer estupido, mas eu não entendi muito bem para o que ser CI/CD, não entendi se é só um nome para várias tarefas ou se é uma etapa da construção de um software, por exemplo.
Olá, estou fazendo o curso que você deu aula, e pode parecer estupido, mas eu não entendi muito bem para o que ser CI/CD, não entendi se é só um nome para várias tarefas ou se é uma etapa da construção de um software, por exemplo.
Olá. Também estou fazendo o curso então não me julgue se estiver errado mas vou tentar te responder pela minha compreensão do conteúdo. Ambos são metodologias de release (lançamento) do software. Quando você vai lançar uma nova versão do seu software, todo cuidado é pouco para que você não lance uma versão com falhas. Esses processos, CI e CD, são processos para garantir o mínimo de qualidade em um release. Para manter essa qualidade o release passa por uma série de processos, por exemplo os processos de testes, onde, se algo falhar o release não será aceito. Por fim, a única diferença entre os dois é que no CI existe uma pessoa que, ao final de todo o processo, decide qual o momento para lançar essa release. Já no CD após os processos serem executados com sucesso a release é lançada de imediato.
Exatamente! Não tem como ser mais clara a explicação. Abraço
Precisamos entender as definições para CI e CD, que podemos definir com a trigger (gatilho) de início, automação e resultado final;
CI = Continuous Integration
- Gatilho: uma mudança no código (commit no github por exemplo);
- Automação: Build, execução de testes unitários, processos de qualidade e análise de código / linter.. etc
- Resultado: Um artefato prontinho para a distribuição. (O fim do CI, quando executado com sucesso, é ter o artefato disponível.
CD = Continuous Delivery
- Gatilho: um novo artefato (pode ter algumas condições como, artefatos geradores pelo CI na branch develop);
- Aprovação: Requer aprovação de alguem antes de uma ou mais etapas;
- Automação: Etapas como deploy em um ou mais ambientes, execução de teste de integração, notificações, etc;
- Resultado: Deploy feito, release distribuida.
CD = Continuous Deployment
- Gatilho: um novo artefato (pode ter algumas condições como, artefatos geradores pelo CI na branch develop);
- Aprovação: Não request aprovações, o processo acontece automaticamente;
- Automação: Etapas como deploy em um ou mais ambientes, execução de teste de integração, notificações, etc;
- Resultado: Deploy feito, release distribuida.
Repare que CI ta ligado com a validação e construção do artefato, enquanto o CD está ligado com a distribuição da release. Dentro do CD, podemos dividir entre Continuous Delivery e Continuous Deployment. A diferença está somente que um requer uma intervenção (aprovação) humana.
Essa imagem, também presente no curso, ajuda a entender um pouco também!
Espero que tenha ajudado e obrigado também pela contribuição na explicação @pexotos
Abs