Com exemplos práticos, aprenda a identificar o melhor modelo de automatização para o seu projeto, além de criar e configurar jobs no Jenkins utilizando o Ant, Maven ou o Gradle.
Deste modo será possível reduzir consideravelmente o trabalho repetitivo tão comum em todos os projetos, possibilitando ao desenvolvedor manter a atenção na implementação das regras de negócio e nos testes.
Dependendo da empresa em que você trabalha, o processo de geração de pacotes de uma aplicação pode ir do mais simples, como a execução de um único comando de build, até o mais complexo, envolvendo diversas equipes e muitos processos de controle.
Com o passar do tempo, muitos perceberam a importância dessa fase do projeto e hoje temos várias ferramentas de build que facilitam a geração de pacotes, assim como o próprio deploy. No Java, as ferramentas mais famosas são o Ant, Maven e Gradle, cada uma com suas vantagens e desvantagens.
O Maven e o Gradle são, hoje em dia, os mais utilizados, visto que além de gerenciar o projeto, também controlam as dependências. Mas independentemente de qual das três será utilizada, o Jenkins consegue se comunicar com ela e orquestrar todos os passos necessários para criar o pacote de uma aplicação.
O Jenkins C.I. é uma aplicação web de Integração Contínua que pode ser instalada em qualquer máquina e serve, principalmente, para executar os testes e criar os artefatos de um projeto de software.
Ela nasceu a partir de outra solução bem conhecida, o Hudson, que começou como uma ferramenta open source, mas, em 2010, a Oracle passou a ser a responsável pelo seu desenvolvimento.
Neste momento, alguns programadores da equipe aceitaram ir para a Oracle continuar com o projeto, porém, outros, em 2011, decidiram seguir por outro caminho e evoluir a ferramenta de forma open source, adotando o nome Jenkins.
Hoje, ambas são bastante utilizadas no mercado e fáceis de usar, pois com apenas alguns cliques você, seu chefe, um analista de teste ou de implantação pode criar um pacote do sistema sem a necessidade de executar comandos no console ou abrir uma IDE.
A Integração Contínua representa um conjunto de práticas que permitem que um sistema seja compilado, testado e construído em um ambiente separado e independente do de desenvolvimento. Ela permite que as mudanças que acontecem no código sejam integradas ao sistema mais rapidamente e de forma contínua, pois possui ferramentas, como o Jenkins e o Hudson, que automatizam as tarefas de todo esse processo.
As vantagens de não gerar os pacotes do projeto manualmente são várias, principalmente quando as equipes envolvidas no sistema são grandes e o ciclo de entregas é curto. No entanto, mesmo quando a equipe é pequena, a automatização ainda pode executar tarefas repetitivas e que tomariam tempo do desenvolvedor, permitindo que ele foque no que realmente importa.
O Jenkins, por exemplo, possibilita que você gere pacotes a cada intervalo predeterminado de tempo, a cada commit no código ou simplesmente quando desejar, ou seja, você define a maneira que melhor se adequa na sua empresa.
Mas como nem tudo é perfeito, automatizar também tem suas desvantagens. Quando você automatiza processos, algumas pessoas da sua equipe e da sua empresa podem não ficar felizes, justamente por pensarem que estão “tirando” o trabalho delas.
Isso acontece com frequência em empresas que já têm um fluxo de deploy estabelecido onde, por exemplo, os desenvolvedores enviam o pacote para outra equipe, responsável por implantá-los nos servidores.
Provavelmente, obstáculos surgirão para que a automatização não aconteça, entretanto, é importante ter consciência de que esse esforço valerá a pena e que ninguém precisa ser mandado embora por causa do Jenkins.
A partir dela as equipes de implantação poderão se dedicar mais à manutenção dos servidores e escalabilidade do sistema, planejando maneiras mais eficientes e rápidas de fazer o deploy da aplicação.
Outro fator que atrapalha a automatização desse processo é a falta de confiança da empresa em seus desenvolvedores. Algumas não dão acesso aos programadores para instalarem aplicações nos amb ...
Desbloqueie toda a DevMedia
-
+2000 artigos e vídeos
-
+40 trilhas sobre Front-end, Back-end, IA e muito mais
-
+5000 exercícios práticos
-
Mentorias ao vivo individuais