Por que preciso de um CI / CD e como aprender a configurá-lo?





Navegar em CI / CD é útil tanto para engenheiros de infraestrutura quanto para desenvolvedores. Konstantin Bryukhanov, líder da DevSecOps, explicou como essa metodologia é valiosa e como os alunos aprendem a personalizar seus processos no curso de CI / CD online .



Olá! Vou começar falando sobre o significado de usar CI / CD. Posso destacar 5 razões:



1. Economia de tempo devido à reutilização de código e implantação rápida de projetos



Tendo descrito algum tipo de pipeline para a entrega e implantação de código, você sempre pode reutilizá-lo. Por exemplo, você tem 5 projetos Django e já descreveu em um deles como tudo deve se desdobrar e funcionar. Esses desenvolvimentos podem ser pegos e copiados automatizando outros projetos Django com um pouco de reconfiguração.



2. Obtendo o resultado esperado da implantação



O resultado esperado significa que, se uma vez você descreveu a infraestrutura ou um processo na forma de código, sempre que executar alguns processos de implantação automática, eles serão iguais. Você sempre sabe o que consegue no final.



O CI / CD permite prevenir situações em que hoje você implantou de uma forma e amanhã alguém corrigiu alguma coisa, você vem, mas não dá tudo certo, e você precisa descobrir o porquê. Você tem a oportunidade de garantir ao negócio que os processos levarão exatamente ao resultado que você regulamenta.



3. Independência do projeto em relação ao meio ambiente



Lembre-se da situação frequente quando você implantou o código no servidor, nada inicializa para você, mas o desenvolvedor diz que tudo funciona para ele. E você tem que gastar um tempo para descobrir que de fato ele mudou algum tipo de vício, sobre o qual ele se calou, por exemplo. Você tem que fazer engenharia reversa e descobrir a situação.



Na CI / CD já vem tudo o que é necessário para o serviço funcionar. Ou seja, você coloca seu código, bancos de dados, dependências no container e entrega ao servidor. Tudo vai em uma essência. Para onde quer que você transfira este contêiner, ele tem tudo para trabalhar. Você não precisa perder tempo configurando seu ambiente.



4. Infraestrutura imutável e fácil migração



Imutabilidade significa que a infraestrutura está sempre no mesmo estado. Você implantou um servidor que iniciou todos os processos necessários e as alterações neste servidor não serão refletidas nele. Se você reiniciar este servidor e executar novamente o processo de implantação do servidor, ele retornará à sua posição original. Não há como fazer e gravar alterações na infraestrutura do servidor. É impossível prejudicá-lo de qualquer forma.



E a facilidade de migração significa que você só precisa descrever tudo uma vez. E quando você precisa, por exemplo, implantar de um data center para outro, você simplesmente altera o ponto de extremidade onde implantar e mover com facilidade, implantar o mesmo código sem quaisquer alterações adicionais.



5. Possibilidades da abordagem "Infraestrutura como Código"



Isso significa que todos os padrões e abordagens de programação usados ​​para o código são aplicáveis ​​à infraestrutura.



O mais importante é a presença de um controle de versão completo, que é feito no código, não nos servidores. Isso permite que você reverta, se necessário, para uma versão anterior da infraestrutura. E uma oportunidade igualmente importante de testar a infraestrutura, ou seja, fazer um teste de implantação do servidor, configurá-lo de forma que não afete o restante dos servidores.



Em resumo: o que é CI / CD?



O conceito permite reduzir o tempo de lançamento no mercado sem perder requisitos não funcionais: escalabilidade, tolerância a falhas, documentação, etc. Consiste em 2 coisas:



  • CI (Integração Contínua) permite que você integre rapidamente as alterações de código na versão de trabalho do código. Certifique-se de que o novo código entre no último estável.
  • O CD (Continuous Delivery / Deployment) permite não apenas integrar a funcionalidade na versão de trabalho do código, mas também trazer uma nova versão de trabalho do código ao mercado o mais rápido possível. Dependendo das tarefas do projeto, isso acontece automaticamente ou nós mesmos enviamos o código usando scripts refinados.


A partir daqui é óbvio que não basta apenas estudar as tecnologias Gitlab CI, Doker, Ansible, terraform, etc., nas quais o CI / CD é construído. Por isso, no curso, ficamos especialmente atentos para trabalhar a prática. O trabalho de design é a parte final do treinamento, onde você implementará os processos de CI / CD para qualquer projeto de código aberto de sua escolha. A sequência de ações dos alunos é a seguinte:



  • CI/CD Workflow, Gitlab CI. : , , .. .
  • , , . , . , Django. Java ..
  • CI/CD, , CI. , , . , .
  • : terraform-, Ansible-, , Doker-, , .
  • pipeline, .
  • pipeline , , .


O objetivo do trabalho final é obter uma solução totalmente acabada, aceitável para o negócio, que possa ser adicionada ao portfólio e demonstrada na entrevista. Na verdade, se você chega a uma empresa e diz que desenvolveu soluções universais do zero para três projetos diferentes, este é um argumento sério para conseguir uma posição.



As aulas começam em 27 de agosto, mas você pode entrar no grupo dentro de duas semanas após o início. O curso é voltado para profissionais com experiência em desenvolvimento e operação, para treinamento você precisará passar em um vestibular . Estou esperando por todos que decidiram dominar esta tecnologia útil para seus projetos e crescimento de carreira. Vejo você na OTUS!



All Articles