Por que criar uma aplicação web com Scripted Pipeline de CI/CD com Docker e Jenkins?

Existem desafios no dia a dia do desenvolvimento de aplicações que tornam cada vez mais difícil a integração entre desenvolvedores e operações (DevOps). Várias causas envolvem a baixa ou ausente integração de equipes, desenvolvedores criam, testers quebram e a equipe de operações diz que tá tudo errado. Existem algumas abordagens onde é possível diminuir este gap entre as equipes ou até mesmo quebrar os silos para que a performance seja ainda maior.

Uma dessas abordagens é criar um pipeline básico com Continuous Integration, Continuous Delivery e Continuous Deployment para que seja garantida a qualidade e a entrega do software que estamos construindo.

 


Fonte: https://developers.redhat.com/blog/2017/09/06/continuous-integration-a-typical-process/

 

O Docker é uma tecnologia de software que fornece contêineres para automação de virtualização de nível de sistema operacional. Ele permite que você encapsule os ambientes criando espaços ideais para o funcionamento e desenvolvimento da aplicação.

Consequentemente, através do Docker cria-se um isolamento que possibilita a redução de impactos desde o início do desenvolvimento até a implantação do software, minimizando erros, otimizando o processo de garantia da qualidade. Portanto, ao utilizar o Docker, torna-se possível uma maior facilidade na implantação, também ao testar as aplicações, assim garantindo o seu perfeito funcionamento num ambiente cloud friendly.

O Jenkins é um software que tem como objetivo agregar (integrar) o software que está sendo desenvolvido continuamente, por isso ele é o Integrador Contínuo do nosso Continuous Integration. Nele podemos estruturar um Scripted Pipeline, um conjunto de etapas viabilizado e mantido via código para uma maior facilidade e manutenção das equipes utilizando um sistema de versionamento de código (Ex: Git).

Um artefato ou pacote entregável precisa ser gerado ao fim de cada etapa como garantia de que o código executa sem problemas, aí que entra a etapa do Continuous Delivery que, neste caso, poderá ser uma imagem Docker que poderá ser executada em qualquer ambiente onde tiver o Docker instalado.

Por fim, a etapa de implantação contínua ou Continuous Deployment que fará com que este artefato gerado na etapa anterior seja executado, provando que o artefato está devidamente validado quanto aos requisitos de qualidade da equpe de QA (Quality Assurance).

Entregar uma URL para que o cliente visualize as alterações com o mínimo de tempo possível é uma forma de agregar valor e fazer uma validação contínua da entrega que poderá reduzir a quantidade de problemas ao fim de cada ciclo de entrega.

 

Por Fábio Correia
Engenheiro de Software – DevOps
https://www.linkedin.com/in/fabioqcorreia/

Deixe uma resposta