Jenkins: Automatize tudo sem complicações
()
About this ebook
Neste livro, Fernando Boaglio apresenta os conceitos fundamentais do Jenkins, com estratégias de orquestração, conceito de slaves, deploys, customizações e a utilização dos plugins mais importantes. Entenda como ele funciona internamente e aprenda a construir plugins para estender as funcionalidades dessa incrível ferramenta de integração contínua.
O Jenkins 2 mudou bastante, está bem diferente do Jenkins 1, e o livro também foi totalmente reescrito para se adaptar às ótimas novidades, como: instalador melhorado, configurações de acesso mais seguras, uso do Jenkinsfile, que possibilita escrever um pipeline inteiro no formato de código, o projeto Blue Ocean, que dá um visual completamente novo ao Jenkins.
Foram adicionados novos capítulos também para notificações via email e Slack, além de adaptar todas as instalações feitas no livro a utilizar os contêineres Docker.
Read more from Fernando Boaglio
Spring Boot: Acelere o desenvolvimento de microsserviços Rating: 0 out of 5 stars0 ratingsMongoDB: Construa novas aplicações com novas tecnologias Rating: 0 out of 5 stars0 ratingsPlay Framework: Java para web sem Servlets e com diversão Rating: 0 out of 5 stars0 ratings
Related to Jenkins
Related ebooks
Caixa de Ferramentas DevOps: Um guia para construção, administração e arquitetura de sistemas modernos Rating: 0 out of 5 stars0 ratingsEntrega contínua em Android: Como automatizar a distribuição de apps Rating: 0 out of 5 stars0 ratingsAzure: Coloque suas plataformas e serviços no cloud Rating: 0 out of 5 stars0 ratingsDesenvolvimento efetivo na plataforma Microsoft: Como desenvolver e suportar software que funciona Rating: 0 out of 5 stars0 ratingsAutomatizando Testes de Software Com Selenium Rating: 0 out of 5 stars0 ratingsDevOps na prática: Entrega de software confiável e automatizada Rating: 0 out of 5 stars0 ratingsSelenium WebDriver: Descomplicando testes automatizados com Java Rating: 5 out of 5 stars5/5RSpec: Crie especificações executáveis em Ruby Rating: 0 out of 5 stars0 ratingseXtreme Programming: Práticas para o dia a dia no desenvolvimento ágil de software Rating: 0 out of 5 stars0 ratingsKubernetes: Tudo sobre orquestração de contêineres Rating: 5 out of 5 stars5/5Spock framework: Testes automatizados para Java, Android e REST Rating: 0 out of 5 stars0 ratingsApache Kafka e Spring Boot: Comunicação assíncrona entre microsserviços Rating: 0 out of 5 stars0 ratingsBack-end Java: Microsserviços, Spring Boot e Kubernetes Rating: 0 out of 5 stars0 ratingsArquitetura de software distribuído: Boas práticas para um mundo de microsserviços Rating: 0 out of 5 stars0 ratingsJSF Eficaz: As melhores práticas para o desenvolvedor web Java Rating: 0 out of 5 stars0 ratingsMicrosserviços e EJB: Escale sua aplicação, não a complexidade Rating: 0 out of 5 stars0 ratingsDesign Patterns com PHP 7: Desenvolva com as melhores soluções Rating: 5 out of 5 stars5/5JavaScript Assertivo: Testes e qualidade de código em todas as camadas da aplicação Rating: 0 out of 5 stars0 ratingsCanivete suíço do desenvolvedor Node Rating: 0 out of 5 stars0 ratingsProgramação Funcional: Uma introdução em Clojure Rating: 4 out of 5 stars4/5Aplicações Java para a web com JSF e JPA Rating: 0 out of 5 stars0 ratingsSwift: Programe para iPhone e iPad Rating: 0 out of 5 stars0 ratingsRobot framework: Automação versátil e consistente para testes Rating: 0 out of 5 stars0 ratingsMicrosoft Kinect: Crie aplicações interativas Rating: 0 out of 5 stars0 ratingsDesbravando SOLID: Práticas avançadas para códigos de qualidade em Java moderno Rating: 0 out of 5 stars0 ratingsO retorno do cangaceiro JavaScript: De padrões a uma abordagem funcional Rating: 0 out of 5 stars0 ratingsFlask de A a Z: Crie aplicações web mais completas e robustas em Python Rating: 4 out of 5 stars4/5Coletânea Front-end: Uma antologia da comunidade front-end brasileira Rating: 0 out of 5 stars0 ratingsDo PHP ao Laminas: Domine as boas práticas Rating: 3 out of 5 stars3/5Guia prático de TypeScript: Melhore suas aplicações JavaScript Rating: 0 out of 5 stars0 ratings
Software Development & Engineering For You
Python Progressivo Rating: 5 out of 5 stars5/5Youtube: Aprenda A Viver Do Youtube: Guia Completo Rating: 5 out of 5 stars5/5ARCHICAD passo a passo volume I Rating: 1 out of 5 stars1/5Arquitetura de software distribuído: Boas práticas para um mundo de microsserviços Rating: 0 out of 5 stars0 ratingsSketchUp para design de móveis Rating: 0 out of 5 stars0 ratingsElementos de transmissão flexíveis Rating: 0 out of 5 stars0 ratingsIntrodução à Computação em Nuvem Rating: 0 out of 5 stars0 ratingsAdobe Photoshop CC guia de referência Rating: 0 out of 5 stars0 ratingsFront-end com Vue.js: Da teoria à prática sem complicações Rating: 5 out of 5 stars5/5Introdução à Inteligência Artificial Rating: 0 out of 5 stars0 ratingsUX Research com sotaque brasileiro: Ou sobre como fazer pesquisas com usuários no Brasil sem apegos acadêmicos ou erros do mercado Rating: 0 out of 5 stars0 ratingsDominando Trafego Nas Redes Sociais Rating: 4 out of 5 stars4/5Jornada Azure DevOps: Unindo teoria e prática com o objetivo de acelerar o aprendizado do Azure DevOps para quem está iniciando Rating: 0 out of 5 stars0 ratingsDesenvolvimento de Sites Dinâmicos com Dreamweaver CC Rating: 0 out of 5 stars0 ratingsDjango de A a Z: Crie aplicações web rápidas, seguras e escaláveis com Python Rating: 0 out of 5 stars0 ratingsAutocad & Desenho Técnico Rating: 0 out of 5 stars0 ratingsGestão moderna de produtos digitais: O produto digital como um meio de entregar valor para o usuário e para o negócio Rating: 0 out of 5 stars0 ratingsTest-Driven Development: Teste e Design no Mundo Real com .NET Rating: 5 out of 5 stars5/5Html+css Progressivo Rating: 0 out of 5 stars0 ratingsCSS Eficiente: Técnicas e ferramentas que fazem a diferença nos seus estilos Rating: 0 out of 5 stars0 ratingsGerenciamento de Projetos de Construção Civil: uma adaptação da metodologia Basic Methodware® Rating: 0 out of 5 stars0 ratingsScrum: Gestão ágil para produtos de sucesso Rating: 0 out of 5 stars0 ratingsGestão de produtos de software: Como aumentar as chances de sucesso do seu software Rating: 0 out of 5 stars0 ratingsBig Data Rating: 5 out of 5 stars5/5Arquitetura Orientada a Eventos: Soluções escaláveis e em tempo real com EDA Rating: 0 out of 5 stars0 ratingsAgile: Desenvolvimento de software com entregas frequentes e foco no valor de negócio Rating: 5 out of 5 stars5/5Lean Game Development: Desenvolvimento enxuto de jogos Rating: 0 out of 5 stars0 ratingsLiderança de produtos digitais: A ciência e a arte da gestão de times de produto Rating: 0 out of 5 stars0 ratingseXtreme Programming: Práticas para o dia a dia no desenvolvimento ágil de software Rating: 0 out of 5 stars0 ratings
Reviews for Jenkins
0 ratings0 reviews
Book preview
Jenkins - Fernando Boaglio
Sumário
ISBN
Agradecimentos
Quem é Fernando Boaglio?
Dedicatória
Prefácio
Jenkins: automatize tudo sem complicações
1 Introdução
2 Conceitos fundamentais
3 Builds
4 Publicando pacotes no Artifactory
5 Criando um pipeline de entregas
6 Autenticação e segurança
7 Rodando scripts
8 Atualizando o banco de dados
9 Aumentando a qualidade das entregas
10 Promovendo suas entregas
11 Testando sua aplicação
12 Plugins ninja e dicas
13 Criando o seu plugin
14 Avisos
15 Pipeline como código
16 Outros projetos
17 Continue seus estudos
Apêndices
18 Apêndice A – Servidores
19 Apêndice B – Ferramentas
ISBN
Impresso e PDF: 978-85-5519-153-4
EPUB: 978-85-5519-154-1
MOBI: 978-85-5519-155-8
Caso você deseje submeter alguma errata ou sugestão, acesse http://erratas.casadocodigo.com.br.
Agradecimentos
Agradeço a você, por investir o seu tempo neste livro para ser mais produtivo!
Agradeço ao colega Kinoshita (https://github.com/kinow/) que me ensinou muita coisa de Jenkins e me ajudou na revisão deste livro.
Agradeço a minha família, a Deus e meus colegas de trabalho por tudo. Muito obrigado.
Quem é Fernando Boaglio?
Uma imagem fala mais que mil palavras... Veja quem eu sou na figura:
Dedicatória
Este livro é dedicado ao saudoso Luiz Arnaldo de Gusmão Bastos, ou simplesmente Luca Bastos, um homem que foi e continua sendo um exemplo e inspiração para muitos profissionais de TI.
Por favor, reserve alguns minutos de sua vida e assista a algumas das palestras do Luca, listadas a seguir. Agradeça-me depois. =)
https://youtu.be/-d0dA8otUCk - Da descoberta do ágil ao manifesto.
https://www.infoq.com/br/interviews/luca-bastos-evolucao/ - Evolução e o futuro do desenvolvimento de software.
https://www.infoq.com/br/presentations/futuro-ti/ - Carreira: como você se imagina em 40 anos
https://www.infoq.com/br/interviews/inovacao/ - O que é inovação?
Luca Bastos, o eterno mestre e aprendizFigura -1.1: Luca Bastos, o eterno mestre e aprendiz
Prefácio
Para que fazer na mão se é possível automatizar?
Fazer builds e deploys manuais leva um precioso tempo e, quando tudo fica automatizado com o Jenkins, parece inacreditável o tempo que era gasto fazendo essas tarefas. E você se questiona como não tinha automatizado isso antes.
Público-alvo
Este livro foi feito para desenvolvedores ou operadores de sistemas que desejam otimizar as suas tarefas do dia a dia e automatizar o máximo possível.
Quickstart – não perca tempo
Para rapidamente entender os conceitos mais importantes e disponibilizar o seu ambiente de integração contínua, não será preciso ler todos os capítulos, apenas os cinco primeiros.
Melhorando – explorando as possibilidades
Os capítulos restantes complementam com estratégias de orquestração, conceito de slaves, deploys, customizações e a utilização dos plugins mais importantes.
Hacking – crie o seu plugin do Jenkins
Entenda como funciona internamente o Jenkins e sua API, e aprenda a construir plugins para estender as funcionalidades dessa incrível ferramenta de integração contínua.
Código-fonte
O código-fonte deste livro está disponível em https://github.com/boaglio/jenkins-casadocodigo/.
Como o Jenkins me ajudou
A minha vida era mais tranquila quando eu cuidava de dois sistemas, pois facilmente eu sabia como eles estavam em todos os ambientes. Quando esse número aumentou muito, não demorou para eu me esquecer de fazer alguma tarefa, ou tentar fazer várias ao mesmo tempo e dar tudo errado no final.
Já tive experiência em automatizar algumas coisas com outras soluções, mas a customização era tão penosa que o fazer na mão
era mais rápido e eficaz. Isso tudo até conhecer o Jenkins. Finalmente, uma ferramenta apareceu para ajudar o meu dia a dia, e não ser mais uma da lista de ferramentas que eu xingava por serem pagas e, mesmo assim, cheias de problemas.
Claro que todo software não é perfeito, afinal, ele é feito pelo ser humano, que comete erros. Entretanto, o que é excelente no Jenkins é a sua comunidade superativa, além de ele ser também de código aberto.
Com o Jenkins, eu consigo fazer muitas coisas ao mesmo tempo e o que antes era manual e demorava horas, hoje, é apenas uma consulta geral no painel que leva poucos segundos, apenas para conferir se alguma coisa não funcionou. O meu trabalho ficou bem mais produtivo. Espero que o Jenkins ajude sua vida a melhorar também.
Jenkins: automatize tudo sem complicações
Capítulo 1
Introdução
Não existe inovação sem implementação. Luca Bastos
Bruno acabou de casar e gosta do que faz. Ele trabalha com TI em uma pequena empresa de câmbio e não tem muitos sistemas para cuidar, mas os poucos que tem são essenciais para o negócio da empresa.
No dia a dia, Bruno tem uma vida corrida e tem suas dúvidas se é tão produtivo assim. A sua empresa tem uma aplicação de controle de câmbio feita em Java, chamada Minhas Moedas.
Até mesmo para a alteração mais simples possível, por exemplo, mudar um texto na tela de Bom dia
para Olá
, Bruno tem muito trabalho para fazer essa mudança chegar até o ambiente de produção. Ele precisa:
Alterar o seu código e fazer o commit da mudança no seu sistema de controle de versão (SVN, Git etc.);
Gerar um pacote de sua aplicação Web;
Gerar um arquivo .zip de backup dos fontes;
Atualizar o banco de dados de homologação;
Fazer o deploy do pacote no ambiente de homologação;
Fazer os testes manualmente para validar a alteração em homologação;
Atualizar o banco de dados de produção;
Fazer o deploy do pacote no ambiente de produção;
Fazer os testes manualmente para validar a alteração em produção;
Enviar um e-mail para o seu chefe avisando que está tudo pronto.
Quando Bruno avalia suas realizações, percebe que ficou mais tempo fazendo operações manuais do que implementando melhorias no sistema Minhas Moedas. Isso soa familiar?
Provavelmente sim, muitas tarefas como as do Bruno consomem o tempo do nosso dia a dia. Uma solução para esse problema é automatizar a maior parte delas, assim podemos focar no que realmente interessa.
No mercado, existem algumas soluções consolidadas. Vamos falar aqui de uma das mais usadas: Jenkins CI (Jenkins Continuous Integration), ou simplesmente Jenkins.
1.1 Integração contínua, eu preciso disso?
O termo IC (Integração Contínua) passa a ideia de algo junto (integrado) e feito sem parar (continuamente). Mas o que exatamente tem esse comportamento?
A resposta é: o ciclo de desenvolvimento de um sistema. Começamos criando código, depois fazemos o commit (guardamos) de tudo em