Jenkins: Automatize tudo sem complicações
()
Sobre este e-book
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.
Leia mais títulos de Fernando Boaglio
Spring Boot: Acelere o desenvolvimento de microsserviços Nota: 0 de 5 estrelas0 notasMongoDB: Construa novas aplicações com novas tecnologias Nota: 0 de 5 estrelas0 notasPlay Framework: Java para web sem Servlets e com diversão Nota: 0 de 5 estrelas0 notas
Relacionado a Jenkins
Ebooks relacionados
Caixa de Ferramentas DevOps: Um guia para construção, administração e arquitetura de sistemas modernos Nota: 0 de 5 estrelas0 notasEntrega contínua em Android: Como automatizar a distribuição de apps Nota: 0 de 5 estrelas0 notasAzure: Coloque suas plataformas e serviços no cloud Nota: 0 de 5 estrelas0 notasDesenvolvimento efetivo na plataforma Microsoft: Como desenvolver e suportar software que funciona Nota: 0 de 5 estrelas0 notasAutomatizando Testes de Software Com Selenium Nota: 0 de 5 estrelas0 notasDevOps na prática: Entrega de software confiável e automatizada Nota: 0 de 5 estrelas0 notasSelenium WebDriver: Descomplicando testes automatizados com Java Nota: 5 de 5 estrelas5/5RSpec: Crie especificações executáveis em Ruby Nota: 0 de 5 estrelas0 notaseXtreme Programming: Práticas para o dia a dia no desenvolvimento ágil de software Nota: 0 de 5 estrelas0 notasKubernetes: Tudo sobre orquestração de contêineres Nota: 5 de 5 estrelas5/5Spock framework: Testes automatizados para Java, Android e REST Nota: 0 de 5 estrelas0 notasApache Kafka e Spring Boot: Comunicação assíncrona entre microsserviços Nota: 0 de 5 estrelas0 notasBack-end Java: Microsserviços, Spring Boot e Kubernetes Nota: 0 de 5 estrelas0 notasArquitetura de software distribuído: Boas práticas para um mundo de microsserviços Nota: 0 de 5 estrelas0 notasJSF Eficaz: As melhores práticas para o desenvolvedor web Java Nota: 0 de 5 estrelas0 notasMicrosserviços e EJB: Escale sua aplicação, não a complexidade Nota: 0 de 5 estrelas0 notasDesign Patterns com PHP 7: Desenvolva com as melhores soluções Nota: 5 de 5 estrelas5/5JavaScript Assertivo: Testes e qualidade de código em todas as camadas da aplicação Nota: 0 de 5 estrelas0 notasCanivete suíço do desenvolvedor Node Nota: 0 de 5 estrelas0 notasProgramação Funcional: Uma introdução em Clojure Nota: 4 de 5 estrelas4/5Aplicações Java para a web com JSF e JPA Nota: 0 de 5 estrelas0 notasSwift: Programe para iPhone e iPad Nota: 0 de 5 estrelas0 notasRobot framework: Automação versátil e consistente para testes Nota: 0 de 5 estrelas0 notasMicrosoft Kinect: Crie aplicações interativas Nota: 0 de 5 estrelas0 notasDesbravando SOLID: Práticas avançadas para códigos de qualidade em Java moderno Nota: 0 de 5 estrelas0 notasO retorno do cangaceiro JavaScript: De padrões a uma abordagem funcional Nota: 0 de 5 estrelas0 notasFlask de A a Z: Crie aplicações web mais completas e robustas em Python Nota: 4 de 5 estrelas4/5Coletânea Front-end: Uma antologia da comunidade front-end brasileira Nota: 0 de 5 estrelas0 notasDo PHP ao Laminas: Domine as boas práticas Nota: 3 de 5 estrelas3/5Guia prático de TypeScript: Melhore suas aplicações JavaScript Nota: 0 de 5 estrelas0 notas
Desenvolvimento e Engenharia de Software para você
Python Progressivo Nota: 5 de 5 estrelas5/5Scrum: Gestão ágil para produtos de sucesso Nota: 0 de 5 estrelas0 notasGanhe Dinheiro Criando Um Jogo Para Celular Nota: 0 de 5 estrelas0 notasAutocad & Desenho Técnico Nota: 0 de 5 estrelas0 notasARCHICAD passo a passo volume I Nota: 1 de 5 estrelas1/5DevOps na prática: Entrega de software confiável e automatizada Nota: 0 de 5 estrelas0 notasAgile: Desenvolvimento de software com entregas frequentes e foco no valor de negócio Nota: 5 de 5 estrelas5/5Liderança de produtos digitais: A ciência e a arte da gestão de times de produto Nota: 0 de 5 estrelas0 notasYoutube: Aprenda A Viver Do Youtube: Guia Completo Nota: 5 de 5 estrelas5/5Django de A a Z: Crie aplicações web rápidas, seguras e escaláveis com Python Nota: 0 de 5 estrelas0 notasElementos de transmissão flexíveis Nota: 0 de 5 estrelas0 notasProgressive Web Apps: Construa aplicações progressivas com React Nota: 3 de 5 estrelas3/5Liderança em Design: Habilidades de gestão para alavancar sua carreira Nota: 0 de 5 estrelas0 notasArquitetura de software distribuído: Boas práticas para um mundo de microsserviços Nota: 0 de 5 estrelas0 notasHtml+css Progressivo Nota: 0 de 5 estrelas0 notasGestão de produtos de software: Como aumentar as chances de sucesso do seu software Nota: 0 de 5 estrelas0 notasJavaScript Assertivo: Testes e qualidade de código em todas as camadas da aplicação Nota: 0 de 5 estrelas0 notasMétricas Ágeis: Obtenha melhores resultados em sua equipe Nota: 0 de 5 estrelas0 notasDominando Trafego Nas Redes Sociais Nota: 4 de 5 estrelas4/5Desenvolvimento de Sites Dinâmicos com Dreamweaver CC Nota: 0 de 5 estrelas0 notasIntrodução à Computação em Nuvem Nota: 0 de 5 estrelas0 notasSketchUp para design de móveis Nota: 0 de 5 estrelas0 notasAdobe Photoshop CC guia de referência Nota: 0 de 5 estrelas0 notasPHP e Laravel: Crie aplicações web como um verdadeiro artesão Nota: 0 de 5 estrelas0 notaseXtreme Programming: Práticas para o dia a dia no desenvolvimento ágil de software Nota: 0 de 5 estrelas0 notas
Categorias relacionadas
Avaliações de Jenkins
0 avaliação0 avaliação
Pré-visualização do livro
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