jenkins: from continuous integration to continuous delivery
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
JenkinsFrom Continuous Integration to Continuous Delivery
John Ferguson SmartCEOWakaleo Consulting
Who is this guy, anyway?
2
John Ferguson Smart
ConsultantTrainerMentorAuthorSpeakerCoder
Continuous Delivery
3
Ge5ng value to the business.Fast.
CI in the clouds
4
DEV
INTEGRATION
STAGING
PROD
Demonstration environment
Source code on Github
Demonstration environment
Jenkins instance on Amazon
Demonstration environment
Deploying to CloudBees @RUN
Demonstration environment
Our applicaLon
Branching into Continuous Delivery
or: How I Stopped Worring And Learned to Love Feature Branches
Branching into Continuous Delivery
Stable
Feature A
Feature B
Feature C
Branching into Continuous Delivery
Stable
Feature A
Feature B
Feature C Pick and choose what goes into a release
Everyone needs a canary or two
Branching into Continuous Delivery
The problem with feature branches
Branching into Continuous Delivery
Stable
IntegraLon
Branching into Continuous Delivery
Stable
IntegraLongameoflife-‐integraLon
Branching into Continuous Delivery
Feature branch integraLon is easy with git and Jenkins
DEMOThe integration branch in action
Smoke tests
ConLnuous Delivery is impossible without ConLnuous Quality
“Where there’s smoke, there’s fire”
Smoke tests
gameoflife-‐integraLon
gameoflife-‐smoke-‐tests
STAGING
INTEGRATION
PROD
DEV
Smoke tests
gameoflife-‐integraLon
gameoflife-‐smoke-‐tests
DEV
Smoke Tests can also be Automated Acceptance Tests
DEMOSmoke Tests in Action
Continuous Delivery
Deliveries when the business needs them
Continuous Delivery
Stable
Feature B
gameoflife-‐default
gameoflife-‐code-‐quality
gameoflife-‐release-‐candidate
gameoflife-‐smoke-‐tests
STAGING
1.2.3
DEMOProducing a release candidate
Build Pipeline
Pushing your code into producLon
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
Build Pipeline
DEMOThe build pipeline