Jenkins: From Continuous Integration to Continuous Delivery

28
Jenkins From Continuous Integration to Continuous Delivery John Ferguson Smart CEO Wakaleo Consulting

description

Continuous Delivery is the highest form of Continuous Integration. More than just automated deployment, Continuous Delivery involves a mindset change - any build that passes the necessary quality gates can be deployed into production on demand.In this talk, 'Jenkins: The Definitive Guide' author John Ferguson Smart discusses strategies enabling you to turn your Jenkins server into a Continuous Delivery platform, including:- Ways to ensure your builds are always production-ready - automatically!- Parameterizing your builds with style!- Using build pipelines and build promotion in Jenkins to filter out poor builds and streamline the build process.- Reusing artifacts across builds- Rolling back and redeploying previous builds- Deploying to app servers and to the cloudThis talk is aimed at developers and build engineers with some previous experience with Hudson/Jenkins.

Transcript of Jenkins: From Continuous Integration to Continuous Delivery

Page 1: Jenkins: From Continuous Integration to Continuous Delivery

JenkinsFrom Continuous Integration to Continuous Delivery

John Ferguson SmartCEOWakaleo Consulting

Page 2: Jenkins: From Continuous Integration to Continuous Delivery

Who is this guy, anyway?

2

John Ferguson Smart

ConsultantTrainerMentorAuthorSpeakerCoder

Page 3: Jenkins: From Continuous Integration to Continuous Delivery

Continuous Delivery

3

Ge5ng  value  to  the  business.Fast.

Page 4: Jenkins: From Continuous Integration to Continuous Delivery

CI in the clouds

4

DEV

INTEGRATION

STAGING

PROD

Page 5: Jenkins: From Continuous Integration to Continuous Delivery

Demonstration environment

Source  code  on  Github

Page 6: Jenkins: From Continuous Integration to Continuous Delivery

Demonstration environment

Jenkins  instance  on  Amazon

Page 7: Jenkins: From Continuous Integration to Continuous Delivery

Demonstration environment

Deploying  to  CloudBees  @RUN

Page 8: Jenkins: From Continuous Integration to Continuous Delivery

Demonstration environment

Our  applicaLon

Page 9: Jenkins: From Continuous Integration to Continuous Delivery

Branching into Continuous Delivery

or:   How   I   Stopped   Worring   And  Learned  to  Love  Feature  Branches

Page 10: Jenkins: From Continuous Integration to Continuous Delivery

Branching into Continuous Delivery

Stable  

Feature  A  

Feature  B  

Feature  C  

Page 11: Jenkins: From Continuous Integration to Continuous Delivery

Branching into Continuous Delivery

Stable  

Feature  A  

Feature  B  

Feature  C  Pick  and  choose  what  goes  into  a  release

Page 12: Jenkins: From Continuous Integration to Continuous Delivery

Everyone  needs  a  canary  or  two

Branching into Continuous Delivery

The  problem  with  feature  branches

Page 13: Jenkins: From Continuous Integration to Continuous Delivery

Branching into Continuous Delivery

Stable  

IntegraLon

Page 14: Jenkins: From Continuous Integration to Continuous Delivery

Branching into Continuous Delivery

Stable  

IntegraLongameoflife-­‐integraLon

Page 15: Jenkins: From Continuous Integration to Continuous Delivery

Branching into Continuous Delivery

Feature  branch  integraLon  is  easy  with  git  and  Jenkins

Page 16: Jenkins: From Continuous Integration to Continuous Delivery

DEMOThe integration branch in action

Page 17: Jenkins: From Continuous Integration to Continuous Delivery

Smoke tests

ConLnuous  Delivery  is  impossible  without  ConLnuous  Quality

“Where  there’s  smoke,  there’s  fire”

Page 18: Jenkins: From Continuous Integration to Continuous Delivery

Smoke tests

gameoflife-­‐integraLon

gameoflife-­‐smoke-­‐tests

STAGING

INTEGRATION

PROD

DEV

Page 19: Jenkins: From Continuous Integration to Continuous Delivery

Smoke tests

gameoflife-­‐integraLon

gameoflife-­‐smoke-­‐tests

DEV

Smoke  Tests  can  also  be  Automated  Acceptance  Tests

Page 20: Jenkins: From Continuous Integration to Continuous Delivery

DEMOSmoke Tests in Action

Page 21: Jenkins: From Continuous Integration to Continuous Delivery

Continuous Delivery

Deliveries  when  the  business  needs  them

Page 22: Jenkins: From Continuous Integration to Continuous Delivery

Continuous Delivery

Stable  

Feature  B  

gameoflife-­‐default

gameoflife-­‐code-­‐quality

gameoflife-­‐release-­‐candidate

gameoflife-­‐smoke-­‐tests

STAGING

1.2.3

Page 23: Jenkins: From Continuous Integration to Continuous Delivery

DEMOProducing a release candidate

Page 24: Jenkins: From Continuous Integration to Continuous Delivery

Build Pipeline

Pushing  your  code  into  producLon

Page 25: Jenkins: From Continuous Integration to Continuous Delivery

Build Pipeline

Stable  

gameoflife-­‐default

gameoflife-­‐code-­‐quality

gameoflife-­‐release-­‐candidate

gameoflife-­‐smoke-­‐tests

STAGING

gameoflife-­‐deploy-­‐to-­‐prod

gameoflife-­‐smoke-­‐tests

PROD

1.2.3

Page 26: Jenkins: From Continuous Integration to Continuous Delivery

Build Pipeline

Page 27: Jenkins: From Continuous Integration to Continuous Delivery

DEMOThe build pipeline

Page 28: Jenkins: From Continuous Integration to Continuous Delivery

THANK YOU!John  Ferguson  Smart

Email:  [email protected]:  h`p://www.wakaleo.com

Twi`er:  wakaleo