jenkins: from continuous integration to continuous delivery

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

Upload: wakaleo-consulting

Post on 11-May-2015

16.601 views

Category:

Technology


3 download

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

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