SlideShare a Scribd company logo
©2015 CloudBees, Inc. and IBM All Rights Reserved 1©2015 CloudBees, Inc. and IBM All Rights Reserved
Continuous Delivery with Jenkins
Enterprise and UrbanCode Deploy
Kohsuke Kawaguchi / CTO, CloudBees, Inc.
- kk@kohsuke.org / @kohsukekawa
Eric Minick / Release Automation Product Manager, IBM
- eminick@us.ibm.com / @EricMinick
©2015 CloudBees, Inc. and IBM All Rights Reserved 2
Ground Rules
We’re all friends today!
Do you also compete in some circumstances?
Do you integrate with the other’s competitors?
Don’t you overlap in some way?
Valid questions
we won’t discuss today
©2015 CloudBees, Inc. and IBM All Rights Reserved 3
©2015 CloudBees, Inc. and IBM All Rights Reserved 4
©2015 CloudBees, Inc. and IBM All Rights Reserved 5
Infrastructure as Code
IaaS
PaaS
Automated Testing
©2015 CloudBees, Inc. and IBM All Rights Reserved 6
©2015 CloudBees, Inc. and IBM All Rights Reserved 7
Introducing Jenkins
©2010 CloudBees, Inc. All
©2015 CloudBees, Inc. and IBM All Rights Reserved 8
Extensible through 950+ plugins
©2015 CloudBees, Inc. and IBM All Rights Reserved 9
©2015 CloudBees, Inc. and IBM All Rights Reserved 10
©2015 CloudBees, Inc. and IBM All Rights Reserved 11
0
500,000
1,000,000
1,500,000
2,000,000
2,500,000
3,000,000
3,500,000
4,000,000
Number of Jobs
©2015 CloudBees, Inc. and IBM All Rights Reserved 12
0
500,000
1,000,000
1,500,000
2,000,000
2,500,000
3,000,000
3,500,000
4,000,000
Number of Jobs
©2015 CloudBees, Inc. and IBM All Rights Reserved 13
Jenkins is everywhere
©2015 CloudBees, Inc. and IBM All Rights Reserved 14
©2015 CloudBees, Inc. and IBM All Rights Reserved 15
©2015 CloudBees, Inc. and IBM All Rights Reserved 16
Copyright Google
©2015 CloudBees, Inc. and IBM All Rights Reserved 17
Copyright Google
©2015 CloudBees, Inc. and IBM All Rights Reserved 18
Dockercon keynote
©2015 CloudBees, Inc. and IBM All Rights Reserved 19
Dockercon keynote
©2015 CloudBees, Inc. and IBM All Rights Reserved 20
Dockercon keynote
©2015 CloudBees, Inc. and IBM All Rights Reserved 21
Copyright HBO
©2015 CloudBees, Inc. and IBM All Rights Reserved 22
Even on a TV show
©2015 CloudBees, Inc. and IBM All Rights Reserved 23
©2015 CloudBees, Inc. and IBM All Rights Reserved 24
Traceability with Puppet/Chef
Dev
Ops
 Traceability to the checkin
 Traceability to the deployment
 Traceability to the machine
©2015 CloudBees, Inc. and IBM All Rights Reserved 25
Host that runs Docker
Jenkins + Docker = elastic build slave
©2015 CloudBees, Inc. and IBM All Rights Reserved 26
Host that runs Docker
Jenkins + Docker = elastic build slave
©2015 CloudBees, Inc. and IBM All Rights Reserved 27
Host that runs Docker
Jenkins + Docker = elastic build slave
©2015 CloudBees, Inc. and IBM All Rights Reserved 28
Jenkins + Git = validated merge
• No more broken builds
• Improve developer efficiency
• Run tests more efficiently
upstream
repo
gate
repo
©2015 CloudBees, Inc. and IBM All Rights Reserved 29
Jenkins & UrbanCode Deploy
• Push artifacts as new component version
urbancode
deploy
v1.0.${BUILD_NUMBER}
©2015 CloudBees, Inc. and IBM All Rights Reserved 30
Jenkins & UrbanCode Deploy
• Trigger a process
urbancode
deploy
©2015 CloudBees, Inc. and IBM All Rights Reserved 31
Jenkins & UrbanCode Deploy
• Lots of options to compose them
– single linear pipeline
– build promotion
• “thumbs up” based approach
• For example,
– Build, unit test, and deploy automatically
– Allow someone to put “a thumb up” on a build
– Automatically trigger deployment to UAT
– Ops can use UC Deploy to push it into prod
©2015 CloudBees, Inc. and IBM All Rights Reserved 32
Build Promotion Illustration
Foo #5
©2015 CloudBees, Inc. and IBM All Rights Reserved 33
Build Promotion Illustration
Foo #5
FooTest #10
©2015 CloudBees, Inc. and IBM All Rights Reserved 34
Build Promotion Illustration
Foo #5
FooTest #10
BarTest #16
©2015 CloudBees, Inc. and IBM All Rights Reserved 35
Build Promotion Illustration
Foo #5
FooTest #10
BarTest #16
©2015 CloudBees, Inc. and IBM All Rights Reserved 36
Build Promotion Illustration
Foo #5
FooTest #10
BarTest #16
FooIntTest #9
©2015 CloudBees, Inc. and IBM All Rights Reserved 37
Build Promotion Illustration
Foo #5
FooTest #10
BarTest #16
FooIntTest #9
FooIntTest #10
©2015 CloudBees, Inc. and IBM All Rights Reserved 38
Build Promotion Illustration
Foo #5
FooTest #10
BarTest #16
FooIntTest #9
FooIntTest #10
©2015 CloudBees, Inc. and IBM All Rights Reserved 39
Build Promotion Illustration
Foo #5
FooTest #10
BarTest #16
FooIntTest #9
FooIntTest #10
Deploy #19
©2015 CloudBees, Inc. and IBM All Rights Reserved 40
©2015 CloudBees, Inc. and IBM All Rights Reserved 41http://www.flickr.com/photos/81305097@N00/370896570/
©2015 CloudBees, Inc. and IBM All Rights Reserved 42
Containerized components
©2015 CloudBees, Inc. and IBM All Rights Reserved 43
rspec-puppet test as PR validation
©2015 CloudBees, Inc. and IBM All Rights Reserved 44
On-server testing with serverspec
©2015 CloudBees, Inc. and IBM All Rights Reserved 45
r10k + puppet enterprise
Every branch automatically
becomes environment
©2015 CloudBees, Inc. and IBM All Rights Reserved 46
Two key branches & environments
‘staging’ branch
‘production’ branch
©2015 CloudBees, Inc. and IBM All Rights Reserved 47http://commons.wikimedia.org/wiki/File:Close_up_of_Hand_Cut_Jigsaw_Puzzle.JPG
©2015 CloudBees, Inc. and IBM All Rights Reserved 48http://www.flickr.com/photos/81305097@N00/370896570/
©2015 CloudBees, Inc. and IBM All Rights Reserved 49
©2015 CloudBees, Inc. and IBM All Rights Reserved 50
Workflow as code
node {
workspace {
git(url: ‘http://server/myapp.git’)
for ( i in 0..<10)
sh ‘mvn test –Dsuite=${i}’
}
}
©2015 CloudBees, Inc. and IBM All Rights Reserved 51
More reasons why we like buildflow
• Rich control flow
• Rich abstractions
• Meaningful diff
©2015 CloudBees, Inc. and IBM All Rights Reserved 52
Leap: one place for everything
• Not just calling other jobs
• Check out source code
• Fork processes
• Archive artifacts
• …
©2015 CloudBees, Inc. and IBM All Rights Reserved 53
Leap: resilience
Build #153
©2015 CloudBees, Inc. and IBM All Rights Reserved 54
Leap: resilience
Build #153
©2015 CloudBees, Inc. and IBM All Rights Reserved 55
Leap: resilience
Build #153Build #153
©2015 CloudBees, Inc. and IBM All Rights Reserved 56
©2015 CloudBees, Inc. and IBM All Rights Reserved 57
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 58
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 59
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 60
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 61
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 62
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 63
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 64
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 65
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 66
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 67
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 68
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 69
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 70
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 71
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 72
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 73
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 74
Leap: checkpointing
©2015 CloudBees, Inc. and IBM All Rights Reserved 75
As the usage grows:
Jenkins Enterprise by CloudBees
Professional support
High availability
Large installations
Security
Optimized utilization
©2015 CloudBees, Inc. and IBM All Rights Reserved 76
Conclusions
• More and more integrations
• Non-prescriptive approach for the win
• Many successful CD pipelines with Jenkins
• Workflow ties them all together
©2015 CloudBees, Inc. and IBM All Rights Reserved 77
©2015 CloudBees, Inc. and IBM All Rights Reserved 78
“Classic” CD
build
dev
test
system
test
UAT sign-off staging prod
©2015 CloudBees, Inc. and IBM All Rights Reserved 79
Enterprise Challenges
?
Complex Systems
have many parts
many specialists and
teams too
Image credit: https://www.flickr.com/photos/billward/155440416
©2015 CloudBees, Inc. and IBM All Rights Reserved 80
Composite apps: many tiers & components
©2015 CloudBees, Inc. and IBM All Rights Reserved 81
Composite apps: many tiers & components
An Application might have
dozens of components
©2015 CloudBees, Inc. and IBM All Rights Reserved 82
Composite apps: many tiers & components
An Application might have
dozens of components
Delivered by Different Teams
©2015 CloudBees, Inc. and IBM All Rights Reserved 83
Composite apps: many tiers & components
Which build does “Login” test?
©2015 CloudBees, Inc. and IBM All Rights Reserved 84
Build pipelines in composite applications
build
dev
test
system
test
UAT sign-off staging prod
build
dev
test
system
test
UAT sign-off staging prod
build
dev
test
system
test
UAT sign-off staging prod
build
dev
test
system
test
UAT sign-off staging prod
build
dev
test
system
test
UAT sign-off staging prod
build
dev
test
system
test
UAT sign-off staging prod
build
dev
test
system
test
UAT sign-off staging prod
build
dev
test
system
test
UAT sign-off staging prod
build
dev
test
system
test
UAT sign-off staging prod
build
dev
test
system
test
UAT sign-off staging prod
build
dev
test
system
test
UAT sign-off staging prod
build
dev
test
system
test
UAT sign-off staging prod
©2015 CloudBees, Inc. and IBM All Rights Reserved 85
These people
deploy one build
at a time to prod
88% Deploy More than one
build to production a time
√
√
√
©2015 CloudBees, Inc. and IBM All Rights Reserved 86
Key “Gotchas”
• Related stuff is deployed / released together
• Some of it isn’t built
• Some of it is incremental
Man… Databases,
content, middleware
config are a pain
©2015 CloudBees, Inc. and IBM All Rights Reserved 87
The Plan!
• Continuous Delivery Overview
• Jenkins is awesome
• What’s new in Enterprise Jenkins
• Deployment “gotchas” for CD
• UrbanCode Deploy is awesome
• What’s new in UrbanCode Deploy
• The integrated scenario
©2015 CloudBees, Inc. and IBM All Rights Reserved 88
Intuitive and Scalable Model Driven Deployment
Composite Applications
Components
Re-usable Processes
Environment
Management
SIT
PROD
The “What”
The “How”
The “Where”
Deployment
Automation
©2015 CloudBees, Inc. and IBM All Rights Reserved 89
Components:
- Individual deployable projects
Application:
- A complete collection of components
- Describes inter-component dependencies
Applications are made of Components
©2015 CloudBees, Inc. and IBM All Rights Reserved 90
Application Deployments made of Component
Deployments
Application Process
- Orchestrate deployment of many components
- Represents deploy-time dependencies
Component Process
- How to deploy a thing to a target
Drag-and-Drop Workflow Designer
Processes are Versioned with Change Logs
Create Custom Steps
©2015 CloudBees, Inc. and IBM All Rights Reserved 91
Snapshots promote tested versions ….
• Manage a set of tested component versions as a single unit
• Guarantee the validated versions of related components are
deployed together
• Ease of promoting applications between environments
1
1
2
3
UAT Stage PROD
Promote Promote
Web
Mid. Code
Mid. Config
DB
Snapshot
©2015 CloudBees, Inc. and IBM All Rights Reserved 92
The Plan!
• Continuous Delivery Overview
• Jenkins is awesome
• What’s new in Enterprise Jenkins
• Deployment “gotchas” for CD
• UrbanCode Deploy is awesome
• What’s new in UrbanCode Deploy
• The integrated scenario
©2015 CloudBees, Inc. and IBM All Rights Reserved 93
What’s new
93
©2015 CloudBees, Inc. and IBM All Rights Reserved 94
Lots of new integrations
94
developer.ibm.com / urbancode / plugins
©2015 CloudBees, Inc. and IBM All Rights Reserved 95
Dev/Test with Hybrid Cloud
95
Off-PremOn-Prem
Image Registry
IBM Bluemix
IBM UrbanCode Deploy
PRODSTAGING
©2015 CloudBees, Inc. and IBM All Rights Reserved 96
The Plan!
• Continuous Delivery Overview
• Jenkins is awesome
• What’s new in Enterprise Jenkins
• Deployment “gotchas” for CD
• UrbanCode Deploy is awesome
• What’s new in UrbanCode Deploy
• The integrated scenario
©2015 CloudBees, Inc. and IBM All Rights Reserved 97
Plugin to push files / trigger deploys
Jenkins can Easily:
• Tell UC Deploy about
new versions
• Trigger deployments to
dev and test
environments
Use Workflow to promote
through independent
testing environments.
©2015 CloudBees, Inc. and IBM All Rights Reserved 98
On build completion, Jenkins
publishes the latest artifacts
to UrbanCode Deploy and
deployed to a development
or SIT environment.
After deployment,
automated tests are started.
If they pass, we mark the
tested versions as such.
Before any
deployments to
production, manual
approvals are
required.
The exact combination of
component versions which
passed tests is captured in a
snapshot.
Putting it all together – Continuous Delivery
The “What”
The “Where”
The “How”
©2015 CloudBees, Inc. and IBM All Rights Reserved 99©2015 CloudBees, Inc. and IBM All Rights Reserved
Questions?
Kohsuke Kawaguchi / CTO, CloudBees, Inc.
- kk@kohsuke.org / @kohsukekawa
Eric Minick / Release Automation Product Manager, IBM
- eminick@us.ibm.com / @EricMinick

More Related Content

Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy

  • 1. ©2015 CloudBees, Inc. and IBM All Rights Reserved 1©2015 CloudBees, Inc. and IBM All Rights Reserved Continuous Delivery with Jenkins Enterprise and UrbanCode Deploy Kohsuke Kawaguchi / CTO, CloudBees, Inc. - kk@kohsuke.org / @kohsukekawa Eric Minick / Release Automation Product Manager, IBM - eminick@us.ibm.com / @EricMinick
  • 2. ©2015 CloudBees, Inc. and IBM All Rights Reserved 2 Ground Rules We’re all friends today! Do you also compete in some circumstances? Do you integrate with the other’s competitors? Don’t you overlap in some way? Valid questions we won’t discuss today
  • 3. ©2015 CloudBees, Inc. and IBM All Rights Reserved 3
  • 4. ©2015 CloudBees, Inc. and IBM All Rights Reserved 4
  • 5. ©2015 CloudBees, Inc. and IBM All Rights Reserved 5 Infrastructure as Code IaaS PaaS Automated Testing
  • 6. ©2015 CloudBees, Inc. and IBM All Rights Reserved 6
  • 7. ©2015 CloudBees, Inc. and IBM All Rights Reserved 7 Introducing Jenkins ©2010 CloudBees, Inc. All
  • 8. ©2015 CloudBees, Inc. and IBM All Rights Reserved 8 Extensible through 950+ plugins
  • 9. ©2015 CloudBees, Inc. and IBM All Rights Reserved 9
  • 10. ©2015 CloudBees, Inc. and IBM All Rights Reserved 10
  • 11. ©2015 CloudBees, Inc. and IBM All Rights Reserved 11 0 500,000 1,000,000 1,500,000 2,000,000 2,500,000 3,000,000 3,500,000 4,000,000 Number of Jobs
  • 12. ©2015 CloudBees, Inc. and IBM All Rights Reserved 12 0 500,000 1,000,000 1,500,000 2,000,000 2,500,000 3,000,000 3,500,000 4,000,000 Number of Jobs
  • 13. ©2015 CloudBees, Inc. and IBM All Rights Reserved 13 Jenkins is everywhere
  • 14. ©2015 CloudBees, Inc. and IBM All Rights Reserved 14
  • 15. ©2015 CloudBees, Inc. and IBM All Rights Reserved 15
  • 16. ©2015 CloudBees, Inc. and IBM All Rights Reserved 16 Copyright Google
  • 17. ©2015 CloudBees, Inc. and IBM All Rights Reserved 17 Copyright Google
  • 18. ©2015 CloudBees, Inc. and IBM All Rights Reserved 18 Dockercon keynote
  • 19. ©2015 CloudBees, Inc. and IBM All Rights Reserved 19 Dockercon keynote
  • 20. ©2015 CloudBees, Inc. and IBM All Rights Reserved 20 Dockercon keynote
  • 21. ©2015 CloudBees, Inc. and IBM All Rights Reserved 21 Copyright HBO
  • 22. ©2015 CloudBees, Inc. and IBM All Rights Reserved 22 Even on a TV show
  • 23. ©2015 CloudBees, Inc. and IBM All Rights Reserved 23
  • 24. ©2015 CloudBees, Inc. and IBM All Rights Reserved 24 Traceability with Puppet/Chef Dev Ops  Traceability to the checkin  Traceability to the deployment  Traceability to the machine
  • 25. ©2015 CloudBees, Inc. and IBM All Rights Reserved 25 Host that runs Docker Jenkins + Docker = elastic build slave
  • 26. ©2015 CloudBees, Inc. and IBM All Rights Reserved 26 Host that runs Docker Jenkins + Docker = elastic build slave
  • 27. ©2015 CloudBees, Inc. and IBM All Rights Reserved 27 Host that runs Docker Jenkins + Docker = elastic build slave
  • 28. ©2015 CloudBees, Inc. and IBM All Rights Reserved 28 Jenkins + Git = validated merge • No more broken builds • Improve developer efficiency • Run tests more efficiently upstream repo gate repo
  • 29. ©2015 CloudBees, Inc. and IBM All Rights Reserved 29 Jenkins & UrbanCode Deploy • Push artifacts as new component version urbancode deploy v1.0.${BUILD_NUMBER}
  • 30. ©2015 CloudBees, Inc. and IBM All Rights Reserved 30 Jenkins & UrbanCode Deploy • Trigger a process urbancode deploy
  • 31. ©2015 CloudBees, Inc. and IBM All Rights Reserved 31 Jenkins & UrbanCode Deploy • Lots of options to compose them – single linear pipeline – build promotion • “thumbs up” based approach • For example, – Build, unit test, and deploy automatically – Allow someone to put “a thumb up” on a build – Automatically trigger deployment to UAT – Ops can use UC Deploy to push it into prod
  • 32. ©2015 CloudBees, Inc. and IBM All Rights Reserved 32 Build Promotion Illustration Foo #5
  • 33. ©2015 CloudBees, Inc. and IBM All Rights Reserved 33 Build Promotion Illustration Foo #5 FooTest #10
  • 34. ©2015 CloudBees, Inc. and IBM All Rights Reserved 34 Build Promotion Illustration Foo #5 FooTest #10 BarTest #16
  • 35. ©2015 CloudBees, Inc. and IBM All Rights Reserved 35 Build Promotion Illustration Foo #5 FooTest #10 BarTest #16
  • 36. ©2015 CloudBees, Inc. and IBM All Rights Reserved 36 Build Promotion Illustration Foo #5 FooTest #10 BarTest #16 FooIntTest #9
  • 37. ©2015 CloudBees, Inc. and IBM All Rights Reserved 37 Build Promotion Illustration Foo #5 FooTest #10 BarTest #16 FooIntTest #9 FooIntTest #10
  • 38. ©2015 CloudBees, Inc. and IBM All Rights Reserved 38 Build Promotion Illustration Foo #5 FooTest #10 BarTest #16 FooIntTest #9 FooIntTest #10
  • 39. ©2015 CloudBees, Inc. and IBM All Rights Reserved 39 Build Promotion Illustration Foo #5 FooTest #10 BarTest #16 FooIntTest #9 FooIntTest #10 Deploy #19
  • 40. ©2015 CloudBees, Inc. and IBM All Rights Reserved 40
  • 41. ©2015 CloudBees, Inc. and IBM All Rights Reserved 41http://www.flickr.com/photos/81305097@N00/370896570/
  • 42. ©2015 CloudBees, Inc. and IBM All Rights Reserved 42 Containerized components
  • 43. ©2015 CloudBees, Inc. and IBM All Rights Reserved 43 rspec-puppet test as PR validation
  • 44. ©2015 CloudBees, Inc. and IBM All Rights Reserved 44 On-server testing with serverspec
  • 45. ©2015 CloudBees, Inc. and IBM All Rights Reserved 45 r10k + puppet enterprise Every branch automatically becomes environment
  • 46. ©2015 CloudBees, Inc. and IBM All Rights Reserved 46 Two key branches & environments ‘staging’ branch ‘production’ branch
  • 47. ©2015 CloudBees, Inc. and IBM All Rights Reserved 47http://commons.wikimedia.org/wiki/File:Close_up_of_Hand_Cut_Jigsaw_Puzzle.JPG
  • 48. ©2015 CloudBees, Inc. and IBM All Rights Reserved 48http://www.flickr.com/photos/81305097@N00/370896570/
  • 49. ©2015 CloudBees, Inc. and IBM All Rights Reserved 49
  • 50. ©2015 CloudBees, Inc. and IBM All Rights Reserved 50 Workflow as code node { workspace { git(url: ‘http://server/myapp.git’) for ( i in 0..<10) sh ‘mvn test –Dsuite=${i}’ } }
  • 51. ©2015 CloudBees, Inc. and IBM All Rights Reserved 51 More reasons why we like buildflow • Rich control flow • Rich abstractions • Meaningful diff
  • 52. ©2015 CloudBees, Inc. and IBM All Rights Reserved 52 Leap: one place for everything • Not just calling other jobs • Check out source code • Fork processes • Archive artifacts • …
  • 53. ©2015 CloudBees, Inc. and IBM All Rights Reserved 53 Leap: resilience Build #153
  • 54. ©2015 CloudBees, Inc. and IBM All Rights Reserved 54 Leap: resilience Build #153
  • 55. ©2015 CloudBees, Inc. and IBM All Rights Reserved 55 Leap: resilience Build #153Build #153
  • 56. ©2015 CloudBees, Inc. and IBM All Rights Reserved 56
  • 57. ©2015 CloudBees, Inc. and IBM All Rights Reserved 57 Leap: checkpointing
  • 58. ©2015 CloudBees, Inc. and IBM All Rights Reserved 58 Leap: checkpointing
  • 59. ©2015 CloudBees, Inc. and IBM All Rights Reserved 59 Leap: checkpointing
  • 60. ©2015 CloudBees, Inc. and IBM All Rights Reserved 60 Leap: checkpointing
  • 61. ©2015 CloudBees, Inc. and IBM All Rights Reserved 61 Leap: checkpointing
  • 62. ©2015 CloudBees, Inc. and IBM All Rights Reserved 62 Leap: checkpointing
  • 63. ©2015 CloudBees, Inc. and IBM All Rights Reserved 63 Leap: checkpointing
  • 64. ©2015 CloudBees, Inc. and IBM All Rights Reserved 64 Leap: checkpointing
  • 65. ©2015 CloudBees, Inc. and IBM All Rights Reserved 65 Leap: checkpointing
  • 66. ©2015 CloudBees, Inc. and IBM All Rights Reserved 66 Leap: checkpointing
  • 67. ©2015 CloudBees, Inc. and IBM All Rights Reserved 67 Leap: checkpointing
  • 68. ©2015 CloudBees, Inc. and IBM All Rights Reserved 68 Leap: checkpointing
  • 69. ©2015 CloudBees, Inc. and IBM All Rights Reserved 69 Leap: checkpointing
  • 70. ©2015 CloudBees, Inc. and IBM All Rights Reserved 70 Leap: checkpointing
  • 71. ©2015 CloudBees, Inc. and IBM All Rights Reserved 71 Leap: checkpointing
  • 72. ©2015 CloudBees, Inc. and IBM All Rights Reserved 72 Leap: checkpointing
  • 73. ©2015 CloudBees, Inc. and IBM All Rights Reserved 73 Leap: checkpointing
  • 74. ©2015 CloudBees, Inc. and IBM All Rights Reserved 74 Leap: checkpointing
  • 75. ©2015 CloudBees, Inc. and IBM All Rights Reserved 75 As the usage grows: Jenkins Enterprise by CloudBees Professional support High availability Large installations Security Optimized utilization
  • 76. ©2015 CloudBees, Inc. and IBM All Rights Reserved 76 Conclusions • More and more integrations • Non-prescriptive approach for the win • Many successful CD pipelines with Jenkins • Workflow ties them all together
  • 77. ©2015 CloudBees, Inc. and IBM All Rights Reserved 77
  • 78. ©2015 CloudBees, Inc. and IBM All Rights Reserved 78 “Classic” CD build dev test system test UAT sign-off staging prod
  • 79. ©2015 CloudBees, Inc. and IBM All Rights Reserved 79 Enterprise Challenges ? Complex Systems have many parts many specialists and teams too Image credit: https://www.flickr.com/photos/billward/155440416
  • 80. ©2015 CloudBees, Inc. and IBM All Rights Reserved 80 Composite apps: many tiers & components
  • 81. ©2015 CloudBees, Inc. and IBM All Rights Reserved 81 Composite apps: many tiers & components An Application might have dozens of components
  • 82. ©2015 CloudBees, Inc. and IBM All Rights Reserved 82 Composite apps: many tiers & components An Application might have dozens of components Delivered by Different Teams
  • 83. ©2015 CloudBees, Inc. and IBM All Rights Reserved 83 Composite apps: many tiers & components Which build does “Login” test?
  • 84. ©2015 CloudBees, Inc. and IBM All Rights Reserved 84 Build pipelines in composite applications build dev test system test UAT sign-off staging prod build dev test system test UAT sign-off staging prod build dev test system test UAT sign-off staging prod build dev test system test UAT sign-off staging prod build dev test system test UAT sign-off staging prod build dev test system test UAT sign-off staging prod build dev test system test UAT sign-off staging prod build dev test system test UAT sign-off staging prod build dev test system test UAT sign-off staging prod build dev test system test UAT sign-off staging prod build dev test system test UAT sign-off staging prod build dev test system test UAT sign-off staging prod
  • 85. ©2015 CloudBees, Inc. and IBM All Rights Reserved 85 These people deploy one build at a time to prod 88% Deploy More than one build to production a time √ √ √
  • 86. ©2015 CloudBees, Inc. and IBM All Rights Reserved 86 Key “Gotchas” • Related stuff is deployed / released together • Some of it isn’t built • Some of it is incremental Man… Databases, content, middleware config are a pain
  • 87. ©2015 CloudBees, Inc. and IBM All Rights Reserved 87 The Plan! • Continuous Delivery Overview • Jenkins is awesome • What’s new in Enterprise Jenkins • Deployment “gotchas” for CD • UrbanCode Deploy is awesome • What’s new in UrbanCode Deploy • The integrated scenario
  • 88. ©2015 CloudBees, Inc. and IBM All Rights Reserved 88 Intuitive and Scalable Model Driven Deployment Composite Applications Components Re-usable Processes Environment Management SIT PROD The “What” The “How” The “Where” Deployment Automation
  • 89. ©2015 CloudBees, Inc. and IBM All Rights Reserved 89 Components: - Individual deployable projects Application: - A complete collection of components - Describes inter-component dependencies Applications are made of Components
  • 90. ©2015 CloudBees, Inc. and IBM All Rights Reserved 90 Application Deployments made of Component Deployments Application Process - Orchestrate deployment of many components - Represents deploy-time dependencies Component Process - How to deploy a thing to a target Drag-and-Drop Workflow Designer Processes are Versioned with Change Logs Create Custom Steps
  • 91. ©2015 CloudBees, Inc. and IBM All Rights Reserved 91 Snapshots promote tested versions …. • Manage a set of tested component versions as a single unit • Guarantee the validated versions of related components are deployed together • Ease of promoting applications between environments 1 1 2 3 UAT Stage PROD Promote Promote Web Mid. Code Mid. Config DB Snapshot
  • 92. ©2015 CloudBees, Inc. and IBM All Rights Reserved 92 The Plan! • Continuous Delivery Overview • Jenkins is awesome • What’s new in Enterprise Jenkins • Deployment “gotchas” for CD • UrbanCode Deploy is awesome • What’s new in UrbanCode Deploy • The integrated scenario
  • 93. ©2015 CloudBees, Inc. and IBM All Rights Reserved 93 What’s new 93
  • 94. ©2015 CloudBees, Inc. and IBM All Rights Reserved 94 Lots of new integrations 94 developer.ibm.com / urbancode / plugins
  • 95. ©2015 CloudBees, Inc. and IBM All Rights Reserved 95 Dev/Test with Hybrid Cloud 95 Off-PremOn-Prem Image Registry IBM Bluemix IBM UrbanCode Deploy PRODSTAGING
  • 96. ©2015 CloudBees, Inc. and IBM All Rights Reserved 96 The Plan! • Continuous Delivery Overview • Jenkins is awesome • What’s new in Enterprise Jenkins • Deployment “gotchas” for CD • UrbanCode Deploy is awesome • What’s new in UrbanCode Deploy • The integrated scenario
  • 97. ©2015 CloudBees, Inc. and IBM All Rights Reserved 97 Plugin to push files / trigger deploys Jenkins can Easily: • Tell UC Deploy about new versions • Trigger deployments to dev and test environments Use Workflow to promote through independent testing environments.
  • 98. ©2015 CloudBees, Inc. and IBM All Rights Reserved 98 On build completion, Jenkins publishes the latest artifacts to UrbanCode Deploy and deployed to a development or SIT environment. After deployment, automated tests are started. If they pass, we mark the tested versions as such. Before any deployments to production, manual approvals are required. The exact combination of component versions which passed tests is captured in a snapshot. Putting it all together – Continuous Delivery The “What” The “Where” The “How”
  • 99. ©2015 CloudBees, Inc. and IBM All Rights Reserved 99©2015 CloudBees, Inc. and IBM All Rights Reserved Questions? Kohsuke Kawaguchi / CTO, CloudBees, Inc. - kk@kohsuke.org / @kohsukekawa Eric Minick / Release Automation Product Manager, IBM - eminick@us.ibm.com / @EricMinick