SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
Jenkins Pipeline
(previamente Workflow)
Continuous Delivery
• Definición de una línea de entrega
• Control de fases
• Fiabilidad
• Flexibilidad
Un poco de historia
1. Downstream jobs
• Definición de dependencias entre jobs (en la
propia configuración de cada job)
• Grafo de dependencias invisible/inmanejable
• Rígido, sin comunicación entre jobs
Un poco de historia
1. Build Flow Plugin
• Definición de dependencias entre jobs (mediante
un meta-job que define el flujo)
• Rígido, sintaxis limitada
• Sólo permite encadenar una sería de jobs
Un poco de historia
1. Build Flow Plugin
b = build( "job1", param1: "foo", param2: "bar" )
build( "job2", param1: b.build.number )
El presente
1. Pipeline Plugin
• Definición de dependencias entre jobs (mediante
un meta-job que define el flujo)
• Flexible, tanto como Groovy
• Posibilidad de definir qué sucede entre dos
steps
Jenkins Pipeline
• Definición de una línea de entrega (build, stage)
• Control de fases (stage, input)
• Fiabilidad (restarts y resume)
• Flexibilidad (groovy)
El presente
1. Pipeline Plugin
parallel
linux {
node(‘linux-worker’) {
git ‘https://github.com/amuniz/maven-hello’
sh ‘mvn clean install’
}
},
windows {
node(‘windows-worker’) {
git ‘https://github.com/amuniz/maven-hello’
bat ‘mvn clean install’
}
}
El presente
1. Pipeline Plugin
node {
stage ‘build’
git ‘https://github.com/amuniz/maven-hello’
sh ‘mvn clean install’
input ‘Todo correcto?’
stage name: ’deploy’, concurrency: 1
sh ‘mvn deploy’
}
Pipeline
Definición de la línea de entrega (pipeline)
node {
stage ‘Build’
git ‘https://github.com/amuniz/maven-hello’
sh ‘mvn clean install’
input ‘Todo correcto?’
stage name: ‘Deploy’, concurrency: 1
sh ‘mvn deploy’
}
Pipeline
Definición de la línea de entrega (pipeline)
Pipeline
Control de fases
node {
stage ‘build’
git ‘https://github.com/amuniz/maven-hello’
sh ‘mvn clean install’
input ‘Todo correcto?’
stage name: ’deploy’, concurrency: 1
sh ‘mvn deploy’
}
Pipeline
Fiabilidad
node {
stage ‘build’
git ‘https://github.com/amuniz/maven-hello’
sh ‘mvn clean install’
input ‘Todo correcto?’
———— Jenkins restart ————
stage name: ’deploy’, concurrency: 1
sh ‘mvn deploy’
}
–Spiderman uncle
“Un gran poder conlleva una gran
responsabilidad”
Antonio Muñiz
@amunizmartin
amuniz@cloudbees.com
Sevilla y olé!
Preguntas?

Contenu connexe

Tendances

Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015
Gustavo Andres Brey
 

Tendances (20)

Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallosTesteando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Flujo de trabajo básico con git
Flujo de trabajo básico con gitFlujo de trabajo básico con git
Flujo de trabajo básico con git
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativo
 
Maven
MavenMaven
Maven
 
Dynamics saturday madrid 2018 bc-on-docker - jakub
Dynamics saturday madrid 2018   bc-on-docker - jakubDynamics saturday madrid 2018   bc-on-docker - jakub
Dynamics saturday madrid 2018 bc-on-docker - jakub
 
Introduccion Power BI Report Server
Introduccion Power BI Report ServerIntroduccion Power BI Report Server
Introduccion Power BI Report Server
 
Contenedores como Servicio con Docker
Contenedores como Servicio con DockerContenedores como Servicio con Docker
Contenedores como Servicio con Docker
 
Migrando de Angular 1 a Angular 2: adaptabilidad del contenido
Migrando de Angular 1 a Angular 2: adaptabilidad del contenidoMigrando de Angular 1 a Angular 2: adaptabilidad del contenido
Migrando de Angular 1 a Angular 2: adaptabilidad del contenido
 
The modern perl toolchain
The modern perl toolchainThe modern perl toolchain
The modern perl toolchain
 
Dokerize rails
Dokerize railsDokerize rails
Dokerize rails
 
Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015
 
Docker containers-itb-2021
Docker containers-itb-2021Docker containers-itb-2021
Docker containers-itb-2021
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
NetBeans para Java, C, C++
NetBeans para Java, C, C++NetBeans para Java, C, C++
NetBeans para Java, C, C++
 
GraalVM - MálagaJUG 2018-11-29
GraalVM - MálagaJUG 2018-11-29GraalVM - MálagaJUG 2018-11-29
GraalVM - MálagaJUG 2018-11-29
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Keda o como convertir Kubernetess en Serverless
Keda o como convertir Kubernetess en ServerlessKeda o como convertir Kubernetess en Serverless
Keda o como convertir Kubernetess en Serverless
 

En vedette

AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
Amazon Web Services
 

En vedette (20)

Scaling your Jenkins CI pipeline
Scaling your Jenkins CI pipelineScaling your Jenkins CI pipeline
Scaling your Jenkins CI pipeline
 
JCConf2016 Jenkins Pipeline
JCConf2016 Jenkins PipelineJCConf2016 Jenkins Pipeline
JCConf2016 Jenkins Pipeline
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous Delivery
 
Pivotal cf for_devops_mkim_20141209
Pivotal cf for_devops_mkim_20141209Pivotal cf for_devops_mkim_20141209
Pivotal cf for_devops_mkim_20141209
 
Containers: Don't Skeu Them Up. Use Microservices Instead.
Containers: Don't Skeu Them Up. Use Microservices Instead.Containers: Don't Skeu Them Up. Use Microservices Instead.
Containers: Don't Skeu Them Up. Use Microservices Instead.
 
Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...
Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...
Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...
 
Devops: Enabled Through a Recasting of Operational Roles
Devops: Enabled Through a Recasting of Operational RolesDevops: Enabled Through a Recasting of Operational Roles
Devops: Enabled Through a Recasting of Operational Roles
 
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalkContinuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
 
Docker and DevOps - Why it matters
Docker and DevOps - Why it mattersDocker and DevOps - Why it matters
Docker and DevOps - Why it matters
 
Continuous Delivery Pipeline with Docker and Jenkins
Continuous Delivery Pipeline with Docker and JenkinsContinuous Delivery Pipeline with Docker and Jenkins
Continuous Delivery Pipeline with Docker and Jenkins
 
AWS Power Tools: Advanced AWS CloudFormation and CLI
AWS Power Tools: Advanced AWS CloudFormation and CLIAWS Power Tools: Advanced AWS CloudFormation and CLI
AWS Power Tools: Advanced AWS CloudFormation and CLI
 
Delivering Go.CD with Terraform and Docker
Delivering Go.CD with Terraform and DockerDelivering Go.CD with Terraform and Docker
Delivering Go.CD with Terraform and Docker
 
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
 
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
 
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
 
Manufacturing Plus Open Source Equals DevOps
Manufacturing Plus Open Source Equals DevOpsManufacturing Plus Open Source Equals DevOps
Manufacturing Plus Open Source Equals DevOps
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Integration in the age of DevOps
Integration in the age of DevOpsIntegration in the age of DevOps
Integration in the age of DevOps
 
AWS Partner: REAN: Join Us to Explore DevOps on AWS
AWS Partner: REAN: Join Us to Explore DevOps on AWSAWS Partner: REAN: Join Us to Explore DevOps on AWS
AWS Partner: REAN: Join Us to Explore DevOps on AWS
 
AWS re:Invent 2016: DevOps on AWS: Accelerating Software Delivery with the AW...
AWS re:Invent 2016: DevOps on AWS: Accelerating Software Delivery with the AW...AWS re:Invent 2016: DevOps on AWS: Accelerating Software Delivery with the AW...
AWS re:Invent 2016: DevOps on AWS: Accelerating Software Delivery with the AW...
 

Dernier

INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
evercoyla
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
Ricardo705519
 

Dernier (20)

INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
 
Control estadistico de procesos Primera parte.pdf
Control estadistico de procesos Primera parte.pdfControl estadistico de procesos Primera parte.pdf
Control estadistico de procesos Primera parte.pdf
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptx
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestaciones
 
Sesion 03 Formas de absorcion de agua.pptx
Sesion 03 Formas de absorcion de agua.pptxSesion 03 Formas de absorcion de agua.pptx
Sesion 03 Formas de absorcion de agua.pptx
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdf
 
422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 

Jenkins Pipeline - Seville JAM

  • 2. Continuous Delivery • Definición de una línea de entrega • Control de fases • Fiabilidad • Flexibilidad
  • 3. Un poco de historia 1. Downstream jobs • Definición de dependencias entre jobs (en la propia configuración de cada job) • Grafo de dependencias invisible/inmanejable • Rígido, sin comunicación entre jobs
  • 4. Un poco de historia 1. Build Flow Plugin • Definición de dependencias entre jobs (mediante un meta-job que define el flujo) • Rígido, sintaxis limitada • Sólo permite encadenar una sería de jobs
  • 5. Un poco de historia 1. Build Flow Plugin b = build( "job1", param1: "foo", param2: "bar" ) build( "job2", param1: b.build.number )
  • 6. El presente 1. Pipeline Plugin • Definición de dependencias entre jobs (mediante un meta-job que define el flujo) • Flexible, tanto como Groovy • Posibilidad de definir qué sucede entre dos steps
  • 7. Jenkins Pipeline • Definición de una línea de entrega (build, stage) • Control de fases (stage, input) • Fiabilidad (restarts y resume) • Flexibilidad (groovy)
  • 8. El presente 1. Pipeline Plugin parallel linux { node(‘linux-worker’) { git ‘https://github.com/amuniz/maven-hello’ sh ‘mvn clean install’ } }, windows { node(‘windows-worker’) { git ‘https://github.com/amuniz/maven-hello’ bat ‘mvn clean install’ } }
  • 9. El presente 1. Pipeline Plugin node { stage ‘build’ git ‘https://github.com/amuniz/maven-hello’ sh ‘mvn clean install’ input ‘Todo correcto?’ stage name: ’deploy’, concurrency: 1 sh ‘mvn deploy’ }
  • 10. Pipeline Definición de la línea de entrega (pipeline) node { stage ‘Build’ git ‘https://github.com/amuniz/maven-hello’ sh ‘mvn clean install’ input ‘Todo correcto?’ stage name: ‘Deploy’, concurrency: 1 sh ‘mvn deploy’ }
  • 11. Pipeline Definición de la línea de entrega (pipeline)
  • 12. Pipeline Control de fases node { stage ‘build’ git ‘https://github.com/amuniz/maven-hello’ sh ‘mvn clean install’ input ‘Todo correcto?’ stage name: ’deploy’, concurrency: 1 sh ‘mvn deploy’ }
  • 13. Pipeline Fiabilidad node { stage ‘build’ git ‘https://github.com/amuniz/maven-hello’ sh ‘mvn clean install’ input ‘Todo correcto?’ ———— Jenkins restart ———— stage name: ’deploy’, concurrency: 1 sh ‘mvn deploy’ }
  • 14. –Spiderman uncle “Un gran poder conlleva una gran responsabilidad”