E-Zine Exclusivo para o Whastapp

Quais as diferenças entre integração contínua, deploy e entrega contínua

devops Quais as diferenças entre integração contínua, deploy e entrega contínua
foto_ramos Quais as diferenças entre integração contínua, deploy e entrega contínua

Ramos de Souza Janones

Janones, é um empreendedor brasileiro apaixonado por empreendedorismo e tecnologia. Ao longo dos anos trabalhando com o desenvolvimento de softwares desktop desde a linguagem Clipper, passando pelo Delphi e atualmente com Java.

Optou pela formação de Publicidade e Marketing por sua segunda empresa de tecnologia ter participado do "boom" da internet nos anos 90 e na procura de melhorar seus conhecimentos em negócios.

Em razão da principal formação e profundos conhecimentos em programação e banco de dados, é capaz de realizar o desenvolvimento de aplicativos web, desktop e mobile com maior criatividade e inovação que profissionais de desenvolvimento com uma formação única e mais especifica, dedicada somente ao desenvolvimento de softwares.

Com toda sua experiência com empresas de software, sua formação e paixão por negócios escreveu o livro "Marketing para Empresas e Profissionais de Software", publicado pela editora carioca Ciência Moderna em 2012. Além de outros livros sobre programação.
foto_ramos Quais as diferenças entre integração contínua, deploy e entrega contínua

Resumidamente: Integração é processo. Entrega é resultado. Deploy são validações das etapas anteriores.  

A integração contínua é um processo com o propósito de controlar o ciclo de vida do código de um sistema desenvolvido por várias pessoas e que provavelmente têm vários módulos distintos que precisam ser “integrados”. Além de serem integrados esse processo tenta garantir que isso ocorra continuamente, ou seja, que exista um certo padrão nos procedimentos que permita tratar os problemas que ocorrerem de uma forma lógica sem ter que parar para pensar na solução a cada problema.

Os partes mais comuns da integração contínua (bem resumidamente) são:

  • Repositórios de código fonte: em que você pode controlar as versões, ou seja, é possível ter uma “foto” do código fonte de cada pacote que você liberar para testes, por exemplo.
  • Etapas de Build: em que você pode ter um script automatizado que faz a compilação do código fonte e gerar um “pacote” testável do seu sistema. No caso em que o código não compila os desenvolvedores são alertados assim que fazem o commit dos fontes.
  • Etapas de Testes: em que você pode realizar testes manuais ou automatizados (unitários, integração, etc) dos seus pacotes.
  • Setup: em que você pode gerar um “pacote” de todo o sistema que pode ser instalado em um ambiente para testes ou de produção.

A entrega contínua é um resultado do processo de integração continua com entrega de pacotes instaláveis para o cliente, ou seja, a cada período é feito a entrega de um pacote do sistema que contém os ajustes e novas funções.

Dessa forma, é possível ter o processo de integração contínua sem necessariamente fazer entregas contínuas. O termo “Integração Contínua” vem da década de 1990 e “Entrega Contínua” é mais recente porque se tornou mais viável com as novas tecnologias e softwares dedicados a rodar e monitorar os processos.

A Integração contínua promove o trabalho conjunto e para isso é essencial que o uso de uma solução de controle de versão, como o Gitlab, Github, CVS ou Subversion. Essas ferramentas criam um repositório principal para armazenar o código e manter versões com cada modificação realizada para que seja possível revertê-las e auditá-las sempre que preciso.

A Entrega Contínua é um conjunto de práticas com o objetivo de garantir que um novo código esteja apto para ser disponibilizado em ambiente de produção. A prática incorpora além de todas ações previstas na Integração Contínua, processos adicionais e necessários para que a modificação seja acessível a usuários e assim sejam realizadas inspeções finais, sejam elas manuais e/ou automatizadas.

Implantação Contínua (Continuous Deploy)

Esta prática é o próximo passo da Entrega contínua. Assim que o programador julga pronto seu código e aciona a solicitação para deploy, são realizadas todas validações previstas nas metodologias anteriores e, se não houverem falhas, o novo código é disponibilizado automaticamente em ambiente de produção. 

Leia também:

Fiverr motivos para usar: Terceirizando seus códigos, design e muito mais por 5 pratas

A Implantação contínua não se aplica a toda empresa. Foi pensada principalmente, mas não exclusivamente para o desenvolvimento de aplicações para web. Há muitas vezes regras de governança rígidas e necessidade de testes manuais que impedem o uso desta metodologia. Mas recomenda-se as empresas que tenham a possibilidade que tentem aplicá-la porque promove mudanças positivas e profundas na organização. Como o programador tem capacidade de colocar suas alterações em produção de forma autônoma ele passa a ser mais preocupado com questões de qualidade e confiabilidade. Com pequenas mudanças disponíveis constantemente em produção, a empresa passa a receber feedbacks pontuais e realistas de seus clientes e assim pode determinar o valor agregado e assim decidir se deve investir mais na nova funcionalidade 

Implantação contínua deve incorporar ferramentas de monitoramento no ambiente de produção para certificar como as alterações influenciaram o uso de recurso. Métricas como quantidade de acesso, volume de tráfego, tempo de resposta, uso de recursos e outras devem ser monitoradas automaticamente.

Top
%d blogueiros gostam disto: