SlideShare a Scribd company logo
Integração
e Entrega
Contínua
com... Aécio Pires
2
Sobre mim...
http://aeciopires.com
●
Analista de suporte
●
Mestrando em Tecnologia da Informação – IFPB
● Autor nos livros:
A cultura
Palestra: A relação entre o ágil e o DevOps
Marcell Castelo Branco https://www.youtube.com/watch?v=XrRrc37lUzk
Palestra: O poder da abstração: desafios técnicos e culturais do “Ops” para o DevOps
Daniel Requena https://t.co/soyugYTeC3
3
O que é Continuos Integration?
4
“É uma prática que consiste em integrar o
código com maior frequencia, identificar
problemas de integração do código e corrigí-los
mais rapidamente, resultando em menos bugs,
automatização de testes, feedbacks mais
frequentes e entrega mais rápida e confiável do
software.”
John Fergurson Smart
http://shop.oreilly.com/product/0636920010326.do
O que é Continuos Delivery?
5
“É a capacidade de obter alterações de todos os
tipos - incluindo novos recursos, alterações de
configuração, correções de bugs e experimentos
- no ambiente de produção com segurança e
rapidez, de maneira sustentável.”
Jez Humble
https://tinyurl.com/hyqzxve
O que é Continuos Deploy?
6
Pode ser entendido como a
Implantação (Deploy) Contínua
de novas versões do software
no ambiente de produção,
resultante da Integração
Contínua.
A relação entre as etapas...
7
O Continuos Integration e o Continuos
Delivery englobam as etapas envolvidas
desde um commit até a geração da versão
estável e candidata a ser implantada no
ambiente de produção.
O Continuos Deployment requer o pleno
funcionamento do Continuos Integration e
Continuos Delivery.
A relação entre as etapas...
8
ContinuosContinuos
DeliveryDelivery
ContinuosContinuos
IntegrationIntegration
ContinuosContinuos
DeployDeploy
Fonte: https://goo.gl/1Y9NJu
Processo
O que o Jenkins pretende modificar
9
Fonte: https://goo.gl/1Y9NJu
O que é ?
10
É uma ferramenta de Integração Contínua
de código fonte aberto e desenvolvido em
Java.
Pode ser usado para realizar a Integração
Contínua em projetos de diversos
tamanhos e com linguagens e tecnologias
variadas, tais como: .NET, Ruby, Groovy,
Grails, PHP, Python, Java e muito mais.
Características
11
●
Disponível nas versões Release (semanal) e LTS (a cada 12
semanas);
●
Licença MIT e código aberto https://github.com/jenkinsci/jenkins;
●
Mais de 1600 plugins https://plugins.jenkins.io
●
Suporte a Pipeline como código
●
Fácil customização
●
Vários temas disponíveis http://afonsof.com/jenkins-material-theme
●
Documentação: https://jenkins.io/doc
●
Gerencia credenciais de integração com outros sistemas
●
Suporte a Active Directory, LDAP
●
Fácil instalação em várias plataformas https://jenkins.io/download
●
Gratuito
●
Suporte a múltiplos nodes
●
Suporte a múltiplas branches
●
Suporte a linguagem Groovy
●
E muito mais...
●
Mantido pela Cloudbees https://www.cloudbees.com e pela
comunidade de desenvolvedores.
História
12
●
O Jenkins era conhecido pelo nome de Hudson.
●
Foi desenvolvido como um hobby por Kohsuke
Kawaguchi em 2004, quando trabalhava na Sun.
●
Quando a Oracle comprou a Sun em 2009, acabou
herdando a base de código do Hudson.
●
No início de 2011, as tensões entre a Oracle e a
comunidade de desenvolvedores aumentaram e houve
uma ruptura.
●
O projeto foi dividido em dois: o Jenkins, administrado
pela maioria dos desenvolvedores iniciais, e o próprio
Hudson, que permaneceu sob o controle do Oracle.
Configuration as Code - CasC
13
●
Código fonte aberto
https://github.com/jenkinsci/configuration-as-code-plugin
●
Plugin usado para configurar o Jenkins como código, utilizando o padrão
YAML https://pt.wikipedia.org/wiki/YAML
●
Iniciado Set/2017 por Ewelina Wilkosz e mantido também engenheiros de
software da CloudBees e comunidade.
●
Primeira release estável lançada em Set/2018.
●
Mais informações em:
https://goo.gl/S7M7oB
https://www.praqma.com/stories/jenkins-configuration-as-code
https://goo.gl/HM3iur
https://wiki.jenkins.io/display/JENKINS/Configuration+as+Code+Plugin
https://www.cloudbees.com/blog/jenkins-configuration-code-look-ma-no-hand
s
https://www.cloudbees.com/blog/jenkins-configuration-code-migration
https://www.cloudbees.com/blog/jenkins-configuration-code-documentation
https://www.cloudbees.com/blog/jenkins-configuration-code-plugins
https://www.cloudbees.com/blog/jenkins-configuration-code-sensitive-data
https://www.cloudbees.com/blog/jenkins-configuration-code-need-speed
14
Configuration as Code - CasC
Blue Ocean
15
●
Plugin que adiciona dashboards e recursos visuais deixando a
visualização, edição e execução do pipeline mais intuitiva e
elegante.
https://jenkins.io/projects/blueocean
●
Visualizações sofisticadas dos pipelines
●
Editor de pipeline
●
Personalização para atender às necessidades baseadas em
funções de cada membro da equipe de desenvolvimento.
●
Identificação precisa de quando há necessidade de
intervenção ou quando surgem problemas na execução do
pipeline.
●
Integração nativa a branches e pull request
●
A intenção da comunidade do Jenkins e desenvolvedores do
plugin Blue Ocean é que ele ganhe mais melhorias e
funcionalidades para paulatinamente substituir a interface
clássica do Jenkins
●
Documentação: https://jenkins.io/doc/book/blueocean
Blue Ocean
16
Pipeline no Jenkins
17
●
É uma sequência de tarefas automatizadas que podem ser divididas
em etapas e representa uma parte do processo de compilação,
teste, verificação da qualidade do código e entrega do software.
●
Plugin criado em 2017 que permite criar e executar o pipeline como
código.
●
Agrupamento de tarefas em stages
●
Todos os aspectos do processo são visualizados graficamente
●
Feedback: os membros da equipe aprendem sobre qualquer
problema assim que ocorrem
●
Consiste em dois tipos de elementos básicos: stage e step
●
Usa uma sintaxe declarativa simples e compreensível (Jenkinsfile).
●
Documentação:
https://jenkins.io/doc/book/pipeline
https://jenkins.io/doc/book/pipeline/syntax
https://jenkins.io/doc/book/pipeline/jenkinsfile
https://jenkins.io/doc/pipeline/steps
https://jenkins.io/doc/book/pipeline/docker
https://tinyurl.com/y8kgqwl8
Pipeline no Jenkins
18
pipeline {
agent any
stages {
stage('Primeiro stage') {
steps {
echo 'Step 1. Hello
Universe'
}
}
stage('Segundo Stage') {
steps {
echo 'Step 1. Hello World'
echo 'Step 2. Hello Brazil'
}
}
}
}
Pipeline no Jenkins
19
Um caso de uso
Ferramentas usadas no pipeline
20
Sobre o Gogs …
21
“É um sistema web capaz de gerenciar inúmeros repositórios
git para fazer o controle de versão do código fonte de
softwares, semelhante ao GitHub, Gitlab e Bitbucket, mas que
mais simples e leve.“
●
No pipeline, o Gogs é usado para armazenar uma cópia de
todos os códigos usados fontes da aplicação, dockerfiles e
jenkinsfile.
●
O Gogs também envia notificações ao Jenkins sempre que
houver um push, geração de tag ou solicitação de merge
numa determinada branch.
●
A partir dessas notificações, o Jenkins inicia a execução de
uma série de jobs para implementar a integração contínua.
●
Mais informações em: https://gogs.io
Sobre e
22
●
O Apache Maven https://maven.apache.org é
importante para compilar uma aplicação Java,
gerenciando uma série de dependências de pacotes.
●
No pipeline, o Maven é gerado para gerar o pacote da
aplicação Java a ser encapsulado numa imagem Docker.
●
O Sonatype Nexus
https://www.sonatype.com/nexus-repository-oss é um
dos muitos repositórios de pacotes de software, que
serve para armazenar organizadamente cada arquivo
gerado para cada versão da aplicação.
●
No pipeline, o Nexus é usado para armazenar uma cópia
de todos os artefatos gerados com o uso do Apache
Maven.
Sobre o ...
23
●
O SonarQube https://www.sonarqube.org é
sistema de código fonte aberto usado para fazer
a análise contínua da qualidade do código fonte
de uma aplicação. Tem suporte a Java, PHP,
Python, Ruby, C e muitas outras linguagens de
programação.
●
No pipeline, o SonarQube é integrado ao maven
para analisar a qualidade do código fonte e a
cobertura de testes unitários de uma aplicação
web desenvolvida em Java.
Sobre o ...
24
“Platarforma de software que provê o gerenciamento de
conteineres, que encapsulam as dependências
necessárias para executar uma aplicação.”
●
Mais informações em:
http://docker.com
http://blog.aeciopires.com/primeiros-passos-com-docker
●
No pipeline, o Docker é usado para gerar as imagens
Docker, contendo a aplicação web, arquivos de
configuração, script de inicialização e dependências de
software.
●
Além disso, o DockerHub ou Docker Registry pode ser
usado para armazenar as imagens Docker a serem
executadas como conteineres nos ambientes de teste,
homologação e produção.
Sobre o ...
25
“É uma ferramenta que gerencia a infraestrutura como
código provisionando um ambiente completo para
que uma aplicação funcione, seja numa nuvem pública,
privada ou outro serviço externo.”
●
Código fonte aberto:
https://github.com/hashicorp/terraform
●
Suporte a Windows, Linux, MacOS, Solaris, FreeBSD,
OpenBSD.
●
Disponível nas versões Open Source e Enterprise
●
Mais informações em: https://www.terraform.io/docs
A aplicação web
26
●
Desenvolvida em Java, usando SpringBoot e Thymeleaf
●
Um CRUD (Create, Read, Update, Delete)
●
Um formulário simples que recebe e exibe informações do
usuário
●
Desenvolvida por Janaína Militão
https://github.com/janainamilitao/applivro-jenkins
Ciclo da execução do Pipeline
Interações entre aplicações e VMs
27
Jenkins
Master
Node
Slave Prod
Interações entre as VMs
Algumas imagens...
28
Algumas imagens...
29
Algumas imagens...
30
Suporte e Documentação do Jenkins
31
●
Suporte comercial realizado através da CloudBees
https://www.cloudbees.com
●
No Brasil, a Instruct http://instruct.com.br é parceira da CloudBees.
●
Documentação do Jenkins https://jenkins.io/doc
●
Wiki Jenkins https://wiki.jenkins.io
●
Plugins do Jenkins https://plugins.jenkins.io
●
Comunidade JenkinsCI-BR – https://tinyurl.com/bqkbbuw
●
Canais de interação na comunidade internacional:
●
https://jenkins.io/participate
●
https://jenkins.io/chat
●
https://jenkins.io/mailing-lists
●
Jenkins Style Guide https://tinyurl.com/y8kgqwl8
Referências
32
●
Suzie Prince - The Product Managers’ Guide to Continuous Delivery and DevOps
https://goo.gl/1Y9NJu
Obrigado!
33

More Related Content

What's hot

Jenkins-CI
Jenkins-CIJenkins-CI
Jenkins-CI
Gong Haibing
 
Terraform day1
Terraform day1Terraform day1
Terraform day1
Gourav Varma
 
Deploying OpenShift Container Platform on AWS by Red Hat
Deploying OpenShift Container Platform on AWS by Red HatDeploying OpenShift Container Platform on AWS by Red Hat
Deploying OpenShift Container Platform on AWS by Red Hat
Amazon Web Services
 
Camunda GraphQL Extension (09/2017 Berlin)
Camunda GraphQL Extension (09/2017 Berlin)Camunda GraphQL Extension (09/2017 Berlin)
Camunda GraphQL Extension (09/2017 Berlin)
Harald J. Loydl
 
Microservices chassis
Microservices chassisMicroservices chassis
Microservices chassis
⎈David Renton🐳
 
DevOps, por onde começar
DevOps, por onde começarDevOps, por onde começar
DevOps, por onde começar
Adriano Tavares
 
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
Troublemaker Khunpech
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
Wei-Ting Kuo
 
Padrão de Projetos singleton
Padrão de Projetos singletonPadrão de Projetos singleton
Padrão de Projetos singleton
Wendel Moreira
 
IT Infrastructure Automation with Ansible
IT Infrastructure Automation with AnsibleIT Infrastructure Automation with Ansible
IT Infrastructure Automation with Ansible
Dio Pratama
 
API : l'architecture REST
API : l'architecture RESTAPI : l'architecture REST
API : l'architecture REST
Fadel Chafai
 
Spring andspringboot training
Spring andspringboot trainingSpring andspringboot training
Spring andspringboot training
Mallikarjuna G D
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
Simplilearn
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Commit University
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
André Justi
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introdução
Pablo Feijó
 
DevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay ApplicationDevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay Application
Maruti Gollapudi
 
Head first docker
Head first dockerHead first docker
Head first docker
Han Qin
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
Araf Karsh Hamid
 
Deep Dive into Durable Functions
Deep Dive into Durable FunctionsDeep Dive into Durable Functions
Deep Dive into Durable Functions
Joonas Westlin
 

What's hot (20)

Jenkins-CI
Jenkins-CIJenkins-CI
Jenkins-CI
 
Terraform day1
Terraform day1Terraform day1
Terraform day1
 
Deploying OpenShift Container Platform on AWS by Red Hat
Deploying OpenShift Container Platform on AWS by Red HatDeploying OpenShift Container Platform on AWS by Red Hat
Deploying OpenShift Container Platform on AWS by Red Hat
 
Camunda GraphQL Extension (09/2017 Berlin)
Camunda GraphQL Extension (09/2017 Berlin)Camunda GraphQL Extension (09/2017 Berlin)
Camunda GraphQL Extension (09/2017 Berlin)
 
Microservices chassis
Microservices chassisMicroservices chassis
Microservices chassis
 
DevOps, por onde começar
DevOps, por onde começarDevOps, por onde começar
DevOps, por onde começar
 
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Padrão de Projetos singleton
Padrão de Projetos singletonPadrão de Projetos singleton
Padrão de Projetos singleton
 
IT Infrastructure Automation with Ansible
IT Infrastructure Automation with AnsibleIT Infrastructure Automation with Ansible
IT Infrastructure Automation with Ansible
 
API : l'architecture REST
API : l'architecture RESTAPI : l'architecture REST
API : l'architecture REST
 
Spring andspringboot training
Spring andspringboot trainingSpring andspringboot training
Spring andspringboot training
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introdução
 
DevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay ApplicationDevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay Application
 
Head first docker
Head first dockerHead first docker
Head first docker
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
Deep Dive into Durable Functions
Deep Dive into Durable FunctionsDeep Dive into Durable Functions
Deep Dive into Durable Functions
 

Similar to Integração contínua com Jenkins

Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
Perforce
 
Top 10 Best DevOps tools in 2020
Top 10 Best DevOps tools in 2020Top 10 Best DevOps tools in 2020
Top 10 Best DevOps tools in 2020
prafulIQBusiness
 
Devops CI-CD pipeline with Containers
Devops CI-CD pipeline with ContainersDevops CI-CD pipeline with Containers
Devops CI-CD pipeline with Containers
NuSpace
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
yalini97
 
Vinayak_Sdet_DevOps_Bigdata_5_years
Vinayak_Sdet_DevOps_Bigdata_5_yearsVinayak_Sdet_DevOps_Bigdata_5_years
Vinayak_Sdet_DevOps_Bigdata_5_years
Vinayaka V Ladwa
 
Alibaba Cloud Conference 2016 - Docker Open Source
Alibaba Cloud Conference   2016 - Docker Open Source Alibaba Cloud Conference   2016 - Docker Open Source
Alibaba Cloud Conference 2016 - Docker Open Source
John Willis
 
Continous Integration.pptx
Continous Integration.pptxContinous Integration.pptx
Continous Integration.pptx
Anuj Sharma
 
Muraliupdatedpersona150716
Muraliupdatedpersona150716Muraliupdatedpersona150716
Muraliupdatedpersona150716
Murali Krishna R
 
Jenkins.pdf
Jenkins.pdfJenkins.pdf
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
Arun prasath
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptx
VgPolampalli
 
DevSecOps - Security in DevOps
DevSecOps - Security in DevOpsDevSecOps - Security in DevOps
DevSecOps - Security in DevOps
Aarno Aukia
 
Pyfest Tunisia 2015 - Python & DevOps
Pyfest Tunisia 2015 - Python & DevOpsPyfest Tunisia 2015 - Python & DevOps
Pyfest Tunisia 2015 - Python & DevOps
Ahmed Bessifi
 
Deliver Python Apps with Docker
Deliver Python Apps with DockerDeliver Python Apps with Docker
Deliver Python Apps with Docker
Anton Egorov
 
OpenSouthCode 2016 - Accenture DevOps Platform 2016-05-07
OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07
OpenSouthCode 2016 - Accenture DevOps Platform 2016-05-07
Jorge Hidalgo
 
Agile Software Development & Tools
Agile Software Development & ToolsAgile Software Development & Tools
Agile Software Development & Tools
Luismi Amorós Martínez
 
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
PranavPatil822557
 
KumarDevOpsEngineer
KumarDevOpsEngineerKumarDevOpsEngineer
KumarDevOpsEngineer
kumar budagam
 
DevOps-Ebook
DevOps-EbookDevOps-Ebook
DevOps-Ebook
PrathapM32
 
CICD_BestPractices.pdf
CICD_BestPractices.pdfCICD_BestPractices.pdf
CICD_BestPractices.pdf
motupalli2
 

Similar to Integração contínua com Jenkins (20)

Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
 
Top 10 Best DevOps tools in 2020
Top 10 Best DevOps tools in 2020Top 10 Best DevOps tools in 2020
Top 10 Best DevOps tools in 2020
 
Devops CI-CD pipeline with Containers
Devops CI-CD pipeline with ContainersDevops CI-CD pipeline with Containers
Devops CI-CD pipeline with Containers
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
 
Vinayak_Sdet_DevOps_Bigdata_5_years
Vinayak_Sdet_DevOps_Bigdata_5_yearsVinayak_Sdet_DevOps_Bigdata_5_years
Vinayak_Sdet_DevOps_Bigdata_5_years
 
Alibaba Cloud Conference 2016 - Docker Open Source
Alibaba Cloud Conference   2016 - Docker Open Source Alibaba Cloud Conference   2016 - Docker Open Source
Alibaba Cloud Conference 2016 - Docker Open Source
 
Continous Integration.pptx
Continous Integration.pptxContinous Integration.pptx
Continous Integration.pptx
 
Muraliupdatedpersona150716
Muraliupdatedpersona150716Muraliupdatedpersona150716
Muraliupdatedpersona150716
 
Jenkins.pdf
Jenkins.pdfJenkins.pdf
Jenkins.pdf
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptx
 
DevSecOps - Security in DevOps
DevSecOps - Security in DevOpsDevSecOps - Security in DevOps
DevSecOps - Security in DevOps
 
Pyfest Tunisia 2015 - Python & DevOps
Pyfest Tunisia 2015 - Python & DevOpsPyfest Tunisia 2015 - Python & DevOps
Pyfest Tunisia 2015 - Python & DevOps
 
Deliver Python Apps with Docker
Deliver Python Apps with DockerDeliver Python Apps with Docker
Deliver Python Apps with Docker
 
OpenSouthCode 2016 - Accenture DevOps Platform 2016-05-07
OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07
OpenSouthCode 2016 - Accenture DevOps Platform 2016-05-07
 
Agile Software Development & Tools
Agile Software Development & ToolsAgile Software Development & Tools
Agile Software Development & Tools
 
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
 
KumarDevOpsEngineer
KumarDevOpsEngineerKumarDevOpsEngineer
KumarDevOpsEngineer
 
DevOps-Ebook
DevOps-EbookDevOps-Ebook
DevOps-Ebook
 
CICD_BestPractices.pdf
CICD_BestPractices.pdfCICD_BestPractices.pdf
CICD_BestPractices.pdf
 

More from Aécio Pires

Pipeconf no CoffeOps Campinas
Pipeconf no CoffeOps CampinasPipeconf no CoffeOps Campinas
Pipeconf no CoffeOps Campinas
Aécio Pires
 
Configuração de ativos de rede utilizando a abordagem infrastructure as code
Configuração de ativos de rede utilizando a abordagem infrastructure as codeConfiguração de ativos de rede utilizando a abordagem infrastructure as code
Configuração de ativos de rede utilizando a abordagem infrastructure as code
Aécio Pires
 
Zabbix BR 2020
Zabbix BR 2020Zabbix BR 2020
Zabbix BR 2020
Aécio Pires
 
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
Aécio Pires
 
Gerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStackGerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStack
Aécio Pires
 
Integração contínua com Jenkins
Integração contínua com JenkinsIntegração contínua com Jenkins
Integração contínua com Jenkins
Aécio Pires
 
Zabbix, Grafana e os conteineres Docker
Zabbix, Grafana e os conteineres DockerZabbix, Grafana e os conteineres Docker
Zabbix, Grafana e os conteineres Docker
Aécio Pires
 
Gerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStackGerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStack
Aécio Pires
 
Management Zabbix with Terraform
Management Zabbix with TerraformManagement Zabbix with Terraform
Management Zabbix with Terraform
Aécio Pires
 
Salada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e DockerSalada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e Docker
Aécio Pires
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com Docker
Aécio Pires
 
Monitoring Cast 1: Puppet & Zabbix
Monitoring Cast 1: Puppet & ZabbixMonitoring Cast 1: Puppet & Zabbix
Monitoring Cast 1: Puppet & Zabbix
Aécio Pires
 
Gerenciamento e automatização de configuração de uma infraestrutura com Puppet
Gerenciamento e automatização de configuração de uma infraestrutura com PuppetGerenciamento e automatização de configuração de uma infraestrutura com Puppet
Gerenciamento e automatização de configuração de uma infraestrutura com Puppet
Aécio Pires
 
Integração do Zabbix com Grafana
Integração do Zabbix com GrafanaIntegração do Zabbix com Grafana
Integração do Zabbix com Grafana
Aécio Pires
 
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.IZabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Aécio Pires
 
Lançamento do livro "De A a Zabbix" no IFPB
Lançamento do livro "De A a Zabbix" no IFPBLançamento do livro "De A a Zabbix" no IFPB
Lançamento do livro "De A a Zabbix" no IFPB
Aécio Pires
 
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Aécio Pires
 
Artigo: Aplicando recomendações de segurança na instalação do Zabbix
Artigo: Aplicando recomendações de segurança na instalação do ZabbixArtigo: Aplicando recomendações de segurança na instalação do Zabbix
Artigo: Aplicando recomendações de segurança na instalação do Zabbix
Aécio Pires
 
Zabbix 2.0: o que ele pode monitorar na sua rede?
Zabbix 2.0: o que ele pode monitorar na sua rede?Zabbix 2.0: o que ele pode monitorar na sua rede?
Zabbix 2.0: o que ele pode monitorar na sua rede?
Aécio Pires
 
Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012
Aécio Pires
 

More from Aécio Pires (20)

Pipeconf no CoffeOps Campinas
Pipeconf no CoffeOps CampinasPipeconf no CoffeOps Campinas
Pipeconf no CoffeOps Campinas
 
Configuração de ativos de rede utilizando a abordagem infrastructure as code
Configuração de ativos de rede utilizando a abordagem infrastructure as codeConfiguração de ativos de rede utilizando a abordagem infrastructure as code
Configuração de ativos de rede utilizando a abordagem infrastructure as code
 
Zabbix BR 2020
Zabbix BR 2020Zabbix BR 2020
Zabbix BR 2020
 
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
 
Gerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStackGerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStack
 
Integração contínua com Jenkins
Integração contínua com JenkinsIntegração contínua com Jenkins
Integração contínua com Jenkins
 
Zabbix, Grafana e os conteineres Docker
Zabbix, Grafana e os conteineres DockerZabbix, Grafana e os conteineres Docker
Zabbix, Grafana e os conteineres Docker
 
Gerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStackGerenciando o Zabbix com o SaltStack
Gerenciando o Zabbix com o SaltStack
 
Management Zabbix with Terraform
Management Zabbix with TerraformManagement Zabbix with Terraform
Management Zabbix with Terraform
 
Salada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e DockerSalada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e Docker
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com Docker
 
Monitoring Cast 1: Puppet & Zabbix
Monitoring Cast 1: Puppet & ZabbixMonitoring Cast 1: Puppet & Zabbix
Monitoring Cast 1: Puppet & Zabbix
 
Gerenciamento e automatização de configuração de uma infraestrutura com Puppet
Gerenciamento e automatização de configuração de uma infraestrutura com PuppetGerenciamento e automatização de configuração de uma infraestrutura com Puppet
Gerenciamento e automatização de configuração de uma infraestrutura com Puppet
 
Integração do Zabbix com Grafana
Integração do Zabbix com GrafanaIntegração do Zabbix com Grafana
Integração do Zabbix com Grafana
 
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.IZabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
 
Lançamento do livro "De A a Zabbix" no IFPB
Lançamento do livro "De A a Zabbix" no IFPBLançamento do livro "De A a Zabbix" no IFPB
Lançamento do livro "De A a Zabbix" no IFPB
 
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
 
Artigo: Aplicando recomendações de segurança na instalação do Zabbix
Artigo: Aplicando recomendações de segurança na instalação do ZabbixArtigo: Aplicando recomendações de segurança na instalação do Zabbix
Artigo: Aplicando recomendações de segurança na instalação do Zabbix
 
Zabbix 2.0: o que ele pode monitorar na sua rede?
Zabbix 2.0: o que ele pode monitorar na sua rede?Zabbix 2.0: o que ele pode monitorar na sua rede?
Zabbix 2.0: o que ele pode monitorar na sua rede?
 
Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012
 

Recently uploaded

GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Ukraine
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
ScyllaDB
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
Sease
 
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
Fwdays
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - MydbopsMySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
Mydbops
 
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
manji sharman06
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
AlexanderRichford
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
UiPathCommunity
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)
HarpalGohil4
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
zjhamm304
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 

Recently uploaded (20)

GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
 
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - MydbopsMySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
 
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 

Integração contínua com Jenkins

  • 2. 2 Sobre mim... http://aeciopires.com ● Analista de suporte ● Mestrando em Tecnologia da Informação – IFPB ● Autor nos livros:
  • 3. A cultura Palestra: A relação entre o ágil e o DevOps Marcell Castelo Branco https://www.youtube.com/watch?v=XrRrc37lUzk Palestra: O poder da abstração: desafios técnicos e culturais do “Ops” para o DevOps Daniel Requena https://t.co/soyugYTeC3 3
  • 4. O que é Continuos Integration? 4 “É uma prática que consiste em integrar o código com maior frequencia, identificar problemas de integração do código e corrigí-los mais rapidamente, resultando em menos bugs, automatização de testes, feedbacks mais frequentes e entrega mais rápida e confiável do software.” John Fergurson Smart http://shop.oreilly.com/product/0636920010326.do
  • 5. O que é Continuos Delivery? 5 “É a capacidade de obter alterações de todos os tipos - incluindo novos recursos, alterações de configuração, correções de bugs e experimentos - no ambiente de produção com segurança e rapidez, de maneira sustentável.” Jez Humble https://tinyurl.com/hyqzxve
  • 6. O que é Continuos Deploy? 6 Pode ser entendido como a Implantação (Deploy) Contínua de novas versões do software no ambiente de produção, resultante da Integração Contínua.
  • 7. A relação entre as etapas... 7 O Continuos Integration e o Continuos Delivery englobam as etapas envolvidas desde um commit até a geração da versão estável e candidata a ser implantada no ambiente de produção. O Continuos Deployment requer o pleno funcionamento do Continuos Integration e Continuos Delivery.
  • 8. A relação entre as etapas... 8 ContinuosContinuos DeliveryDelivery ContinuosContinuos IntegrationIntegration ContinuosContinuos DeployDeploy Fonte: https://goo.gl/1Y9NJu
  • 9. Processo O que o Jenkins pretende modificar 9 Fonte: https://goo.gl/1Y9NJu
  • 10. O que é ? 10 É uma ferramenta de Integração Contínua de código fonte aberto e desenvolvido em Java. Pode ser usado para realizar a Integração Contínua em projetos de diversos tamanhos e com linguagens e tecnologias variadas, tais como: .NET, Ruby, Groovy, Grails, PHP, Python, Java e muito mais.
  • 11. Características 11 ● Disponível nas versões Release (semanal) e LTS (a cada 12 semanas); ● Licença MIT e código aberto https://github.com/jenkinsci/jenkins; ● Mais de 1600 plugins https://plugins.jenkins.io ● Suporte a Pipeline como código ● Fácil customização ● Vários temas disponíveis http://afonsof.com/jenkins-material-theme ● Documentação: https://jenkins.io/doc ● Gerencia credenciais de integração com outros sistemas ● Suporte a Active Directory, LDAP ● Fácil instalação em várias plataformas https://jenkins.io/download ● Gratuito ● Suporte a múltiplos nodes ● Suporte a múltiplas branches ● Suporte a linguagem Groovy ● E muito mais... ● Mantido pela Cloudbees https://www.cloudbees.com e pela comunidade de desenvolvedores.
  • 12. História 12 ● O Jenkins era conhecido pelo nome de Hudson. ● Foi desenvolvido como um hobby por Kohsuke Kawaguchi em 2004, quando trabalhava na Sun. ● Quando a Oracle comprou a Sun em 2009, acabou herdando a base de código do Hudson. ● No início de 2011, as tensões entre a Oracle e a comunidade de desenvolvedores aumentaram e houve uma ruptura. ● O projeto foi dividido em dois: o Jenkins, administrado pela maioria dos desenvolvedores iniciais, e o próprio Hudson, que permaneceu sob o controle do Oracle.
  • 13. Configuration as Code - CasC 13 ● Código fonte aberto https://github.com/jenkinsci/configuration-as-code-plugin ● Plugin usado para configurar o Jenkins como código, utilizando o padrão YAML https://pt.wikipedia.org/wiki/YAML ● Iniciado Set/2017 por Ewelina Wilkosz e mantido também engenheiros de software da CloudBees e comunidade. ● Primeira release estável lançada em Set/2018. ● Mais informações em: https://goo.gl/S7M7oB https://www.praqma.com/stories/jenkins-configuration-as-code https://goo.gl/HM3iur https://wiki.jenkins.io/display/JENKINS/Configuration+as+Code+Plugin https://www.cloudbees.com/blog/jenkins-configuration-code-look-ma-no-hand s https://www.cloudbees.com/blog/jenkins-configuration-code-migration https://www.cloudbees.com/blog/jenkins-configuration-code-documentation https://www.cloudbees.com/blog/jenkins-configuration-code-plugins https://www.cloudbees.com/blog/jenkins-configuration-code-sensitive-data https://www.cloudbees.com/blog/jenkins-configuration-code-need-speed
  • 15. Blue Ocean 15 ● Plugin que adiciona dashboards e recursos visuais deixando a visualização, edição e execução do pipeline mais intuitiva e elegante. https://jenkins.io/projects/blueocean ● Visualizações sofisticadas dos pipelines ● Editor de pipeline ● Personalização para atender às necessidades baseadas em funções de cada membro da equipe de desenvolvimento. ● Identificação precisa de quando há necessidade de intervenção ou quando surgem problemas na execução do pipeline. ● Integração nativa a branches e pull request ● A intenção da comunidade do Jenkins e desenvolvedores do plugin Blue Ocean é que ele ganhe mais melhorias e funcionalidades para paulatinamente substituir a interface clássica do Jenkins ● Documentação: https://jenkins.io/doc/book/blueocean
  • 17. Pipeline no Jenkins 17 ● É uma sequência de tarefas automatizadas que podem ser divididas em etapas e representa uma parte do processo de compilação, teste, verificação da qualidade do código e entrega do software. ● Plugin criado em 2017 que permite criar e executar o pipeline como código. ● Agrupamento de tarefas em stages ● Todos os aspectos do processo são visualizados graficamente ● Feedback: os membros da equipe aprendem sobre qualquer problema assim que ocorrem ● Consiste em dois tipos de elementos básicos: stage e step ● Usa uma sintaxe declarativa simples e compreensível (Jenkinsfile). ● Documentação: https://jenkins.io/doc/book/pipeline https://jenkins.io/doc/book/pipeline/syntax https://jenkins.io/doc/book/pipeline/jenkinsfile https://jenkins.io/doc/pipeline/steps https://jenkins.io/doc/book/pipeline/docker https://tinyurl.com/y8kgqwl8
  • 18. Pipeline no Jenkins 18 pipeline { agent any stages { stage('Primeiro stage') { steps { echo 'Step 1. Hello Universe' } } stage('Segundo Stage') { steps { echo 'Step 1. Hello World' echo 'Step 2. Hello Brazil' } } } }
  • 20. Um caso de uso Ferramentas usadas no pipeline 20
  • 21. Sobre o Gogs … 21 “É um sistema web capaz de gerenciar inúmeros repositórios git para fazer o controle de versão do código fonte de softwares, semelhante ao GitHub, Gitlab e Bitbucket, mas que mais simples e leve.“ ● No pipeline, o Gogs é usado para armazenar uma cópia de todos os códigos usados fontes da aplicação, dockerfiles e jenkinsfile. ● O Gogs também envia notificações ao Jenkins sempre que houver um push, geração de tag ou solicitação de merge numa determinada branch. ● A partir dessas notificações, o Jenkins inicia a execução de uma série de jobs para implementar a integração contínua. ● Mais informações em: https://gogs.io
  • 22. Sobre e 22 ● O Apache Maven https://maven.apache.org é importante para compilar uma aplicação Java, gerenciando uma série de dependências de pacotes. ● No pipeline, o Maven é gerado para gerar o pacote da aplicação Java a ser encapsulado numa imagem Docker. ● O Sonatype Nexus https://www.sonatype.com/nexus-repository-oss é um dos muitos repositórios de pacotes de software, que serve para armazenar organizadamente cada arquivo gerado para cada versão da aplicação. ● No pipeline, o Nexus é usado para armazenar uma cópia de todos os artefatos gerados com o uso do Apache Maven.
  • 23. Sobre o ... 23 ● O SonarQube https://www.sonarqube.org é sistema de código fonte aberto usado para fazer a análise contínua da qualidade do código fonte de uma aplicação. Tem suporte a Java, PHP, Python, Ruby, C e muitas outras linguagens de programação. ● No pipeline, o SonarQube é integrado ao maven para analisar a qualidade do código fonte e a cobertura de testes unitários de uma aplicação web desenvolvida em Java.
  • 24. Sobre o ... 24 “Platarforma de software que provê o gerenciamento de conteineres, que encapsulam as dependências necessárias para executar uma aplicação.” ● Mais informações em: http://docker.com http://blog.aeciopires.com/primeiros-passos-com-docker ● No pipeline, o Docker é usado para gerar as imagens Docker, contendo a aplicação web, arquivos de configuração, script de inicialização e dependências de software. ● Além disso, o DockerHub ou Docker Registry pode ser usado para armazenar as imagens Docker a serem executadas como conteineres nos ambientes de teste, homologação e produção.
  • 25. Sobre o ... 25 “É uma ferramenta que gerencia a infraestrutura como código provisionando um ambiente completo para que uma aplicação funcione, seja numa nuvem pública, privada ou outro serviço externo.” ● Código fonte aberto: https://github.com/hashicorp/terraform ● Suporte a Windows, Linux, MacOS, Solaris, FreeBSD, OpenBSD. ● Disponível nas versões Open Source e Enterprise ● Mais informações em: https://www.terraform.io/docs
  • 26. A aplicação web 26 ● Desenvolvida em Java, usando SpringBoot e Thymeleaf ● Um CRUD (Create, Read, Update, Delete) ● Um formulário simples que recebe e exibe informações do usuário ● Desenvolvida por Janaína Militão https://github.com/janainamilitao/applivro-jenkins
  • 27. Ciclo da execução do Pipeline Interações entre aplicações e VMs 27 Jenkins Master Node Slave Prod Interações entre as VMs
  • 31. Suporte e Documentação do Jenkins 31 ● Suporte comercial realizado através da CloudBees https://www.cloudbees.com ● No Brasil, a Instruct http://instruct.com.br é parceira da CloudBees. ● Documentação do Jenkins https://jenkins.io/doc ● Wiki Jenkins https://wiki.jenkins.io ● Plugins do Jenkins https://plugins.jenkins.io ● Comunidade JenkinsCI-BR – https://tinyurl.com/bqkbbuw ● Canais de interação na comunidade internacional: ● https://jenkins.io/participate ● https://jenkins.io/chat ● https://jenkins.io/mailing-lists ● Jenkins Style Guide https://tinyurl.com/y8kgqwl8
  • 32. Referências 32 ● Suzie Prince - The Product Managers’ Guide to Continuous Delivery and DevOps https://goo.gl/1Y9NJu