Uma equipe de desenvolvimento de software que deseja adotar as práticas de DevOps deve compreender muito bem os conceitos integração contínua, entrega contínua e implantação contínua.

 

De modo geral, esses conceitos representam métodos para acelerar a entrega de novas versões de uma aplicação, e estão alinhados com as metodologias de desenvolvimento ágil.

 

O uso dessas práticas colabora para que o trabalho de desenvolvimento de software seja baseado em entregas menores, porém mais frequentes, tornando o processo mais flexível, ágil e eficiente

 

 

Integração contínua (Continuous Integration)

 

Integração contínua (continuous integration) é uma prática de desenvolvimento de software que visa tornar a integração de código mais eficiente, através de builds e testes automatizados.

 

As metodologias ágeis propõem que o processo de desenvolvimento de software seja realizado com entregas mais frequentes.

Como consequência, o trabalho necessário para reunir, integrar e testar todo o código desenvolvido pela equipe em um repositório central também se tornou mais frequente.

 

Nesse contexto, a Integração Contínua surge para reduzir o trabalho manual necessário nesse processo de integração de código.

Além disso, com a automação de testes, o trabalho de correção de bugs é facilitado, garantindo que o software esteja funcionando após cada alteração.

 

Para adotar a Integração Contínua, é fundamental utilizar ferramentas de controle de versões, como o Gitlab ou Github.

Soluções como Jenkins e Hudson também são importantes para coordenar os builds, testes e integrações de código.

 

 

Entrega Contínua (Continuous Delivery)

 

A Entrega Contínua é uma evolução da Integração Contínua.

Além das práticas da Integração Contínua, a Entrega Contínua visa garantir que o código esteja apto para entrar em ambiente de produção.

 

Para isso, é necessário que 1) o deploy do código nos ambientes de homologação e desenvolvimento possa ser realizado de forma simplificada; e 2) testes complementares aos unitários e inspeções finais devem ser executadas o mais rápido possível.

 

Assim, eventuais problemas serão identificados rapidamente, acelerando o processo de disponibilização de novas funcionalidades para os usuários.

 

 

Implantação Contínua (Continuous Deployment)

 

A Implantação Contínua permite que o desenvolvedor, assim que entender que seu código está pronto, passe por testes e validações automáticas e disponibilize suas alterações no ambiente de produção.

 

Para que a Implantação Contínua seja realizada com sucesso, a equipe deve ser capaz de monitorar indicadores para garantir a efetividade das alterações, tempo de resposta, ações dos usuários e tráfego.

 

 

Benefícios

 

Para o time de desenvolvimento, as práticas de integração, entrega e implantação contínua permitem que o trabalho minimizado, reduzindo erros e viabilizando a disponibilização do software em ciclos menores.

 

Para o negócio, o principal benefício do uso dessas abordagens é a diminuição do tempo necessário para lançar atualizações do produto.

Em mercados competitivos, isso representa uma grande vantagem para empresas que desejam atender rapidamente as demandas de seus usuários.

Além disso, ao disponibilizar novas features para os usuários com maior frequência, a empresa tem a possibilidade de tornar seu ciclo de aprendizado mais eficiente.

 

 

 

 

Por que os projetos de software falham?
Lean e Agile – Como combinar as duas filosofias?

Compartilhe

Compartilhe este post com seus amigos