O que é o Jenkins?
O Jenkins é um servidor de automação de código aberto utilizado para automatizar tarefas, testes e implantação de software. Tem como mascote o Butler simbolizando um mordomo, simbolizando o ato de servir.
Sua história inicia em 2004, conforme abaixo um resumo de sua timeline:
- 2004: Início do projeto Hudson, na Sun Microsystems, com o intuito de implementar pipeline em Java.
- 2007: Comunidade cresce com adesão rápida de desenvolvedores, já que surgiu como um projeto de código aberto.
- 2010: A Oracle torna-se a proprietária do projeto Hudson, com a compra da Sun Microsystems.
- 2011: Surge o Jenkins a partir de um fork do projeto Hudson, criando um projeto apartado do domínio da Oracle.
- 2013: A Fundação Jenkins é criada para administrar e gerenciar o projeto, com a finalidade de criar algo estruturado.
- 2014: O Jenkins 2.0 é lançado, introduzindo a Pipeline as Code, o que possibilitou trabalhar não apenas com Java, mas outras linguagens também.
- 2017: O Jenkins X é anunciado como um projeto de integração contínua e implantação contínua (CI/CD), suportando Kubernetes nativamente.
- 2020: O Jenkins alcança mais de 200.000 instalações em todo o mundo. O projeto Hudson da Oracle é descontinuado…
- 2023: O Jenkins tem hoje mais de 1800 plug-ins, curiosamente a própria Oracle usa o Jenkins.
Características
Podemos elencar cinco características principais do Jenkins:
- Fácil de instalar: não há necessidade de muitos recursos de hardware para instalar.
- Configurável: sem necessidade de recursos extras como banco de dados, já que possuí tudo internamente e altamente flexível através de configurações.
- Extensível: a alta gama de plug-ins disponíveis possibilita adicionar vários recursos ao Jenkins, possibilitando adicionar novas funcionalidades de forma muito fácil.
- Distribuído: é possível adicionar de forma muito fácil novos nós (agentes) para distribuição de tarefas automatizadas, distribuindo a carga de processamento.
- Baixo custo: é um projeto open source, desenvolvido pela comunidade e sem custo, além de não necessitar de sistemas robustos para execução.
Porque usar o Jenkins?
Existem várias vantagens em utilizar o Jenkins, merecendo destaque as seguintes:
- Código fonte aberto: por ser open source, não há problemas com licenciamento de software, cuidados com propriedade intelectual, etc., o que reduz drasticamente custos.
- Automatizador de tarefas: pode ser usado para criar tarefas simples e complexas, automatizando tarefas cotidianas do dia a dia, substituindo o próprio agendador de tarefas do Windows, resultando em uma economia de tempo e esforço.
- Integração com outras ferramentas: totalmente integrado com ferramentas de terceiros, por exemplo: git, ansible, puppet, aws, azure, etc.
- Integração contínua (CI): integração contínua de código-fonte, permitindo que as equipes de desenvolvimento enviem alterações frequentes e as incorporem à construção automaticamente. Isso ajuda a identificar problemas de integração mais cedo e a garantir que o software seja sempre funcional.
- Entrega Contínua (CD): possibilidade de automatizar todo o processo de entrega de software, incluindo compilação, teste, empacotamento e implantação. Isso agiliza o ciclo de lançamento de software.
- Testes Automatizados: automação de testes, permitindo a execução automatizada de testes unitários, testes de integração e outros tipos de testes, mitigando as atividades repetitivas. Isso ajuda a garantir a qualidade do software, identificando problemas e regressões rapidamente.
- Facilita o dia a dia do desenvolvedor: toda a equipe ganha com as facilitações implementadas pelo Jenkins.
Para saber mais
Se você ficou interessado e quer saber mais, o Paulo Henrique Ottomar gravou um BE.TECH sobre Jenkins, abaixo você acessa o vídeo no YouTube. No evento o Paulo usou um script para criar uma pipeline simples, o código desse script pode ser baixado aqui.
E aí? Curtiu esse post? Deixa seu comentário, te vejo na próxima publicação, um abraço,
Danton C. Franco Junior
#TimeTec