O método CI (continuous integration) / CD (continuous delivery) consiste em entregar utilidades para os clientes com frequência e não deixar que essas mudanças sejam percebidas em ambiente produtivo, aplicando assim automação nas etapas de desenvolvimento das aplicações.
Anteriormente, os desenvolvedores passavam um período trabalhando isoladamente em alguma melhoria ou desenvolvimento de aplicações e, após finalizar, eram necessários longos períodos e uma certa complexidade para efetuar a junção do código a branch pai; isso quando o resultado não era o acúmulo de erros sem correção por longos períodos, dificultando a distribuição de atualizações para o cliente final.
Desse modo, eles são formados por três principais conceitos:
- Integração contínua;
- Entrega contínua;
- Implantação contínua.
- Integração contínua – CI
Atualmente, quase todos os sistemas utilizam repositórios compartilhados, entre os desenvolvedores. Com a ajuda da CI conseguimos aplicar novas mudanças no código, testá-las e consolidá-las no ambiente total, solucionando o conflito entre as diversas ramificações que possam existir no sistema, como desenvolvimento paralelo de novas funcionalidades.
- Entrega contínua – CD
A Entrega Contínua está interligada aos conceitos utilizados na automação da entrega de features dos desenvolvedores. Neste nível de aplicação podemos considerar a automação dos testes contra bugs e disponibilizar no repositório. Uma vez no repositório, pode-se implementar essas mudanças em ambiente produtivo com a finalidade de minimizar o esforço na implantação e ajudar na visibilidade e comunicação das equipes de negócios e os desenvolvedores.
- Implantação contínua – CD
Além da CD estar ligada diretamente a automação das ações, outro significado para ela é a implantação contínua que é, basicamente, o envio automático das mudanças que os desenvolvedores realizaram, enviando do repositório para a produção. Evitando a sobrecarga nas equipes de operações que antes realizavam esse processo manualmente, o que atrasava a entrega das aplicações.
Integração contínua
É desejável que cada vez mais os desenvolvedores trabalhem com mais colegas na mesma aplicação, em diferentes recursos, ao mesmo tempo. Surge, então, a necessidade de desenvolver um método para que os desenvolvedores juntem suas alterações de códigos em um repositório central e então, após a mescla de códigos e criações, os testes são executados.
Dessa forma, o principal objetivo desse CD é encontrar e corrigir os bugs mais rapidamente, melhorar a qualidade do código do software e reduzir o tempo para validar e lançar novas versões do sistema.
Como cada conceito funciona?
Utilizando a integração contínua, os desenvolvedores frequentemente editam o repositório compartilhado usando um sistema de controle de versão, por exemplo Git. Antes de cada Push os desenvolvedores podem executar testes locais em seus códigos para garantir que não há bugs a priori. Uma integração contínua cria e executa testes unitários nas novas alterações para destacar imediatamente os erros.
Implantação contínua e entrega contínua
Assim que o desenvolvedor perceber que seu código está finalizado, ele passa por testes e validações automatizadas, disponibilizando as novas alterações nos ambientes de homologação e produção.
Para que a implantação contínua seja realizada, a equipe precisa ser capaz de monitorar as implantações a fim de garantir que as alterações foram aplicadas, reduzindo o tempo de resposta e ações dos usuários, tudo via indicadores.
A Implantação contínua possui o mesmo objetivo que a Entrega Contínua: entregar atualizações, features e correções. Mas, a implantação é realizada de forma automatizada em toda e na entrega contínua há o lançamento manual e pré-aprovado do sistema.
Após a integração contínua garantir que todos os desenvolvedores conseguiram integrar seus códigos trabalhados em um repositório central, testes e validações são executadas. Ao mesmo tempo, a Entrega Contínua prepara um artefato compilado para implantar nos ambientes de destino. Assim que este arquivo chega no destino, iniciam-se testes automatizados de todos os ambientes do sistema, que vão além de testes unitários. Após o uso do conceito CI/CD, acontece o deploy da versão que já está preparada, testada e aprovada. Garantindo que os bugs sejam rastreados e corrigidos, e que o tempo entre o desenvolvimento e a entrega seja reduzido e a qualidade seja mantida.
Ainda quando falamos de CI & CD podemos citar alguns exemplos de tecnologias e processos vinculados a cada etapa do ciclo:
Pensando no deploy das etapas citadas anteriormente é importante escolher algum Cloud Provider como Amazon, Azure, Google ou Oracle e a Deal é parceira destes grandes players.
Para saber mais, entre em contato com a gente ➡️ https://www.deal.com.br/contato-dealtechnologies/