Jenkins: Servidor de automação direcionado para pipelines CI/CD
Os modelos de programação mudaram muito nos últimos anos. Hoje em dia, o trabalho de programação é feito por várias equipas de programadores que têm de se organizar para obter um produto final (e também várias versões intermédias). Já ouviu falar no Jenkins?
Quando se fala em Continuous Integration (CI) e Continuous Delivery (CD) estamos a falar num conjunto de processos de suporte ao desenvolvimento de software. Mas mais que uma metodologia, falamos de uma abordagem que introduz a automação e monitorização, em diferentes estágios, do ciclo de desenvolvimento de um software. Pode saber mais sobre este conceito aqui.
O Jenkins é amplamente utilizado para pipelines de integração contínua e entrega contínua (CI/CD). Este servidor, originalmente designado de Hudsonm foi desenvolvido em 2004 por Kohsuke Kawaguchi quando trabalhava na Sun Microsystems. Permite que os programadores automatizem o processo de construção, teste e implantação de software, possibilitando uma entrega mais rápida e confiável de apps.
O Jenkins é altamente personalizável e suporta um vasto ecossistema de plugins que aumentam as funcionalidades da plataforma para integrar com diversas ferramentas e tecnologias. É um elemento fundamental em muitos ambientes de desenvolvimento de software para otimizar os fluxos de trabalho de desenvolvimento.
Principais funcionalidades suportadas do Jenkins
Algumas das principais funcionalidades incluem:
- Pipelines de CI/CD: Jenkins permite criar pipelines de automação para construir, testar e implantar software de forma contínua.
- Integração com sistema de controlo de versões: Integra facilmente com sistemas de controlo de versão como Git, Subversion, Mercurial, etc., permitindo automatizar o processo de construção sempre que ocorrer uma mudança no repositório.
- Ampla variedade de plugins suportado: O Jenkins possui uma vasta gama de plugins que aumentam as suas funcionalidades, permitindo integração com várias ferramentas e tecnologias, como Docker, Kubernetes, AWS, Azure, Slack, entre outras.
- Escalabilidade: Pode ser escalado para atender às necessidades de diferentes projetos e equipas, desde pequenos projetos até grandes organizações.
- Monitorização e alertas: Jenkins fornece recursos para monitorizar o progresso das versões, alertas por e-mail ou mensagens instantâneas em caso de falhas nas versões, permitindo uma rápida resolução de problemas.
- Interface de utilizador amigável: Possui uma interface de utilizador bastante intuitiva que facilita a configuração e monitorização dos pipelines.
Já conhecia
Trabalhei com isto na Farfetch e posso dizer que é uma bela duma porcaria.
Azure Pipelines dá cem-a-zero, até o GitHub Actions permite melhor controlo do workflow, fujam do Jenkins se puderem…
Por alguma razão a farfetch rebentou. A culpa é do Jenkins
Nunca do Manuel+Joaquim… sempre dos outros! ahahahha
Posso afirmar totalmente o contrário do Manuel+Joaquim, por experiência em várias empresa. Um sucesso na gestão de CI/CD… importante não são os sitemas, mas sim a competência das pessoas em usar os sistemas, não acha Manuel+Joaquim?
Já fiz uns testes mas nada de muito exaustivo.
Pedro Pinto, há continuídade destes assuntos? Ou ficam na gaveta? O Django foi apresentado e não passou disso, o Jenkins vamos ver se não fica igual. Seria interessante um tutorial com a interligação de ambos
Bom dia, haverá mais novidades. Também aguardamos contribuições dos nossos leitores.
@Pedro Pinto, há algum canal em que possamos deixar sugestões?
geral@pplware.com