CI & CD & CCD
🛣️

CI & CD & CCD

Created
Mar 29, 2023 07:12 PM
Language
Português
Summary
Modern development operations strategies.
Attention Status

Continuous Integration

Existem diversas opções para realizar a integração continua atualmente. Dentre elas, uma das mais usadas é o Jenkins.

Por que?

O ciclo de integração continua garante que um projeto esteja seguindo os padrões de qualidade definidos. Ele previne que deixemos um código quebrado passe para a produção.
Em amarelo estão as etapas do processo de CI e em azul as de CD
Em amarelo estão as etapas do processo de CI e em azul as de CD

Continuous Delivery

Em conjunto com a integração continua, que garante um código executável e dentro de alguns requisitos, a entrega contínua permite ao desenvolvedor escolher um ambiente para executar o projeto (de forma automática exceto em ambiente de produção).
notion image
Com CI/CD podemos trabalhar em ciclos curtos, garantindo que tenhamos uma versão pronta para publicação a qualquer momento. Tornando assim o ciclo de desenvolvimento de um projeto mais rápido.

Quando utilizar

CD ajuda a fazer a entrega de aplicações rapidamente, porém instaurar esse processo a um projeto consome um tempo inicial maior. Por esse motivo, em projetos publicados em períodos longos de tempo (e.g. 6 meses) deve ser avaliada a utilização ou não de CD. Porém, em aplicações cujas publicações ocorrem em prazos curtos (e.g. 15 em 15 dias) o processo CD trará apenas benefícios ao projeto.
É interessante ir um passo além em ambientes não críticos, como testes ou staging. Nesses casos o continuous deployment (também CD) tira mais um passo do processo de publicação de um projeto. (Esse processo pode também ser feitos em ambientes críticos - como em produção - mas o processo de integração continua e entrega continua devem estar bem maduros para garantir que não ocorram erros.)

Problemas

Ao tentar implementar o processo de CD em aplicações legado, podemos encontrar muitos problemas. Isso ocorre pois em projetos de CD algumas definições precisam ser feitas no início do projeto, e em sistemas legado onde isso não foi feito teremos um trabalho extra para realizar a automação.

Continuous Code Quality

Este processo de qualidade de código continua, comumente implementado pela ferramenta SonarQube (existem outras ferramentas como codacy e codebeat), garante que o código de um projeto esteja de acordo com alguns requisitos previamente definidos.