SlideShare a Scribd company logo
© IBM Corporation 1
Presented by:
Modern Continuous Delivery
Keeping it all together
Eric Minick
Application Release
Automation Market
Manager
© IBM Corporation 2
Presenting Today
Eric Minick
eminick@us.ibm.com
@EricMinick
Eric is a Product Manager and DevOps
Evangelist with IBM.
Today he works with customers and
industry leaders to find the best ways of
adopting continuous delivery and DevOps.
© IBM Corporation 3
Why Waterfall Fails
Idea
Requirements
Development
Test
Release
Validate code
Matches Reqs
Learn if idea & requirements
Match the market need
© IBM Corporation 4© IBM Corporation 4
Learning Faster
© IBM Corporation 5
Agenda
• Introduction to Continuous Delivery
• Continuous Delivery meets the Enterprise
• Adapting CD to Complex Apps
• Q&A
© IBM Corporation 6
text
What is Continuous Delivery?
Automated flow
from Build to
“ready for prod”
Push button
release to prod
Lots of feedback
Emphasis on
always shippable
Themes
© IBM Corporation 7
text
“Classic” CD
build
dev
test
system
test
UAT sign-off staging prod
© IBM Corporation 8© IBM Corporation 8
The Build Pipeline
build
dev
test
system
test
UAT sign-off staging prod
for (env in testEnvironments) {
deploy( build, env );
runTests (env.testType, env);
}
© IBM Corporation 9
Continuous Delivery is
a DevOps Strategy
• Successful implementation requires
assistance from developers, operations,
and others
• Cooperation and coordination between
developers and operations must improve
© IBM Corporation 10
Agenda
• Introduction to Continuous Delivery
• Continuous Delivery meets the Enterprise
• Adapting CD to Complex Apps
• Q&A
© IBM Corporation 11
What you need depends on how continuous
From “Lean Enterprise: How High Performance Organizations
Innovate at Scale” – Jez Humble
© IBM Corporation 12
What you need depends on how continuous
Today’s Focus 1 week to 1 quarter
From “Lean Enterprise: How High Performance Organizations
Innovate at Scale” – Jez Humble
© IBM Corporation 13
Enterprise Challenges
Complex, interconnected systems
?
Silos that need to work together
© IBM Corporation 14
The Hard Part is
Coordination
Image from wisc.edu
© IBM Corporation 15
Composite apps: many tiers & components
3rd Party
Services
© IBM Corporation 16
text
Composite apps: many tiers & components
An application might have
dozens of components
3rd Party
Services
© IBM Corporation 17
Composite apps: many tiers & components
An application might have
dozens of components
Delivered by Different Teams
3rd Party
Services
© IBM Corporation 18
Composite apps: many tiers & components
Which build does “Login” test?
3rd Party
Services
© IBM Corporation 19
What is the scope of a typical production deployment
effort?
These people
deploy one build
at a time to prod
88% deploy more than one
build to production a time
© IBM Corporation 20
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
© IBM Corporation 21© IBM Corporation 21
Some pieces aren’t built
Databases
Infrastructure
Content
Reports / ETL
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
© IBM Corporation 22
The Build Pipeline
fails to....
 Account for deployment time
dependencies
 Model things that aren’t built
 Deal with incremental updates
© IBM Corporation 23
Agenda
• Introduction to Continuous Delivery
• Continuous Delivery meets the Enterprise
• Adapting CD to Complex Apps
• Q&A
© IBM Corporation 24© IBM Corporation 24
Adapting CD to our
Apps
• Account for deployment time dependencies
• Model things that aren’t built
• Deal with incremental updates
© IBM Corporation 25
Transitions of a Snapshot
Snapshot
Snapshots
Transitions of Components
Dev ProdQA
?
?
Snapshot Snapshot
QADev Prod
© IBM Corporation 26
Use the “Build of Builds” model as a start
Mega
Build
system
test
UAT sign-off staging prod
dev
test
Comp.
Build
dev
test
Comp.
Build
dev
test
Comp.
Build
© IBM Corporation 27
Shift to “Release Sets” or “Snapshots”
– We don’t need a new build
• we need a name for a collection of builds.
– Delay the creation of these until integration tests pass, and create based on
the successful integration tests
build
dev
test
system
test
build
dev
test
system
test
build
dev
test
system
test
UAT
Sign-
off
Stagin
g
Prod
Snapshots at “Application”
or “System” level.
© IBM Corporation 28
Don’t require “build”
– Extracts from existing systems, artifact repos, or source control are OK to
get deployable version.
Build
dev
test
system
test
Config
Extract
dev
test
system
test
Fetch from
SCM
dev
test
system
test
UAT
Sign-
off
Stagin
g
Prod
Snapshots at “Application”
or “System” level.
© IBM Corporation 29
Support multiple incremental moves
Incremental requires:
• Multiple versions of a component in snapshots
• Awareness when tracking what is where
• Order awareness when performing rollbacks.
Creating a Snapshot
Component Versions / Builds
1
1
2
2
3
3
321Web
Mid. Code
DB
Snapshot
3
2
1
Mid. Config 1 2 3 3
2
© IBM Corporation 30
Snapshot
3
2
1
3
2
Pipeline with Snapshots
Fetch from
SCM
dev
test
system
test
Config
Extract
dev
test
system
test
Fetch from
SCM
dev
test
system
test
UAT
Sign-
off
Stage Prod
Build
dev
test
system
test
Web
Mid.
Code
Mid. Config
DB
© IBM Corporation 31
In story form
A change to a component, creates a new
version (often by doing a build).
© IBM Corporation 32
In story form
A change to a component, creates a new
version (often by doing a build). The new
version is vetted, and then tested in an
integration environment.
© IBM Corporation 33
In story form
A change to a component, creates a new
version (often by doing a build).The new
version is vetted, and then tested in an
integration environment. When the integrated
system passes tests, a snapshot of all the
component versions in the system is created.
© IBM Corporation 34
In story form
A change to a component, creates a new
version (often by doing a build).The new
version is vetted, and then tested in an
integration environment. When the integrated
system passes tests, a snapshot of all the
component versions in the system is created.
Snapshot deployments don’t redeploy
unchanged components
© IBM Corporation 35
In story form
A change to a component, creates a new
version (often by doing a build). The new
version is vetted, and then tested in an
integration environment. When the integrated
system passes tests, a snapshot of all the
component versions in the system is created.
Snapshot deployments don’t redeploy
unchanged components. The snapshot is
promoted & released. Yay.
© IBM Corporation 36© IBM Corporation 36
In Summary
• Continuous Delivery can be hard in the enterprise
• People are trained not to work together
• Simple build pipelines don’t work for composite applications
• Plan of attack
• Embrace a DevOps culture.
• Collaborate like crazy.
• Use release sets to promote components that are tested together
© IBM Corporation 37© IBM Corporation 37
Yes, we sell
products that help
– IBM UrbanCode Build
• Continuous Integration that Scales
– IBM UrbanCode Deploy
• Application Deployment Automation
– IBM UrbanCode Release
• Coordination across many applications
© IBM Corporation 38
UrbanCode Deploy:
Press a button, a complex app is deployed to an environment
• Offer secure‘self-service’capabilities
• Manage configurations across
environments.
Automated Tracks Parts of Apps
• Know all the pieces of the app
tested together.
• Increase transparency
• Ensure governance and
compliance
© IBM Corporation 39
UrbanCode Release: Manage Related Applications
Quick Qualifying Question: When you release, do you do just one app or
do you coordinate changes to several?
Customer Portal
Inventory System
Customer Accounts
Credit Services
Planning is complex
Development work must be coordinated
across teams. Release schedules aligned.
Development is complex.
Interfaces understood, developed &
configured appropriately. Environments
composed & connected.
Testing complex.
Are the correct versions of all applications in
my environment? In which application did
the bug occur? Is the bug a code issue or
misconfiguration of the multi-application
environment?
Change Management is
complex.
If we pull an application from the Release
what will what other applications or projects
will be affected?
and dozens or hundreds more…
© IBM Corporation 40
Learn more
• Developer.ibm.com/urbancode
• Webinar - Death to Manual Deployments!
• eBook - Application Release and
Deployment For Dummies
• Analysts Study - The Total Economic
Impact of IBM UrbanCode Deploy
• Request Personal Demo of UrbanCode
Deploy
© IBM Corporation 41© IBM Corporation 41
Accelerating Digital Business

More Related Content

Continuous Delivery in the Enterprise - with IBM UrbanCode

  • 1. © IBM Corporation 1 Presented by: Modern Continuous Delivery Keeping it all together Eric Minick Application Release Automation Market Manager
  • 2. © IBM Corporation 2 Presenting Today Eric Minick eminick@us.ibm.com @EricMinick Eric is a Product Manager and DevOps Evangelist with IBM. Today he works with customers and industry leaders to find the best ways of adopting continuous delivery and DevOps.
  • 3. © IBM Corporation 3 Why Waterfall Fails Idea Requirements Development Test Release Validate code Matches Reqs Learn if idea & requirements Match the market need
  • 4. © IBM Corporation 4© IBM Corporation 4 Learning Faster
  • 5. © IBM Corporation 5 Agenda • Introduction to Continuous Delivery • Continuous Delivery meets the Enterprise • Adapting CD to Complex Apps • Q&A
  • 6. © IBM Corporation 6 text What is Continuous Delivery? Automated flow from Build to “ready for prod” Push button release to prod Lots of feedback Emphasis on always shippable Themes
  • 7. © IBM Corporation 7 text “Classic” CD build dev test system test UAT sign-off staging prod
  • 8. © IBM Corporation 8© IBM Corporation 8 The Build Pipeline build dev test system test UAT sign-off staging prod for (env in testEnvironments) { deploy( build, env ); runTests (env.testType, env); }
  • 9. © IBM Corporation 9 Continuous Delivery is a DevOps Strategy • Successful implementation requires assistance from developers, operations, and others • Cooperation and coordination between developers and operations must improve
  • 10. © IBM Corporation 10 Agenda • Introduction to Continuous Delivery • Continuous Delivery meets the Enterprise • Adapting CD to Complex Apps • Q&A
  • 11. © IBM Corporation 11 What you need depends on how continuous From “Lean Enterprise: How High Performance Organizations Innovate at Scale” – Jez Humble
  • 12. © IBM Corporation 12 What you need depends on how continuous Today’s Focus 1 week to 1 quarter From “Lean Enterprise: How High Performance Organizations Innovate at Scale” – Jez Humble
  • 13. © IBM Corporation 13 Enterprise Challenges Complex, interconnected systems ? Silos that need to work together
  • 14. © IBM Corporation 14 The Hard Part is Coordination Image from wisc.edu
  • 15. © IBM Corporation 15 Composite apps: many tiers & components 3rd Party Services
  • 16. © IBM Corporation 16 text Composite apps: many tiers & components An application might have dozens of components 3rd Party Services
  • 17. © IBM Corporation 17 Composite apps: many tiers & components An application might have dozens of components Delivered by Different Teams 3rd Party Services
  • 18. © IBM Corporation 18 Composite apps: many tiers & components Which build does “Login” test? 3rd Party Services
  • 19. © IBM Corporation 19 What is the scope of a typical production deployment effort? These people deploy one build at a time to prod 88% deploy more than one build to production a time
  • 20. © IBM Corporation 20 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
  • 21. © IBM Corporation 21© IBM Corporation 21 Some pieces aren’t built Databases Infrastructure Content Reports / ETL 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
  • 22. © IBM Corporation 22 The Build Pipeline fails to....  Account for deployment time dependencies  Model things that aren’t built  Deal with incremental updates
  • 23. © IBM Corporation 23 Agenda • Introduction to Continuous Delivery • Continuous Delivery meets the Enterprise • Adapting CD to Complex Apps • Q&A
  • 24. © IBM Corporation 24© IBM Corporation 24 Adapting CD to our Apps • Account for deployment time dependencies • Model things that aren’t built • Deal with incremental updates
  • 25. © IBM Corporation 25 Transitions of a Snapshot Snapshot Snapshots Transitions of Components Dev ProdQA ? ? Snapshot Snapshot QADev Prod
  • 26. © IBM Corporation 26 Use the “Build of Builds” model as a start Mega Build system test UAT sign-off staging prod dev test Comp. Build dev test Comp. Build dev test Comp. Build
  • 27. © IBM Corporation 27 Shift to “Release Sets” or “Snapshots” – We don’t need a new build • we need a name for a collection of builds. – Delay the creation of these until integration tests pass, and create based on the successful integration tests build dev test system test build dev test system test build dev test system test UAT Sign- off Stagin g Prod Snapshots at “Application” or “System” level.
  • 28. © IBM Corporation 28 Don’t require “build” – Extracts from existing systems, artifact repos, or source control are OK to get deployable version. Build dev test system test Config Extract dev test system test Fetch from SCM dev test system test UAT Sign- off Stagin g Prod Snapshots at “Application” or “System” level.
  • 29. © IBM Corporation 29 Support multiple incremental moves Incremental requires: • Multiple versions of a component in snapshots • Awareness when tracking what is where • Order awareness when performing rollbacks. Creating a Snapshot Component Versions / Builds 1 1 2 2 3 3 321Web Mid. Code DB Snapshot 3 2 1 Mid. Config 1 2 3 3 2
  • 30. © IBM Corporation 30 Snapshot 3 2 1 3 2 Pipeline with Snapshots Fetch from SCM dev test system test Config Extract dev test system test Fetch from SCM dev test system test UAT Sign- off Stage Prod Build dev test system test Web Mid. Code Mid. Config DB
  • 31. © IBM Corporation 31 In story form A change to a component, creates a new version (often by doing a build).
  • 32. © IBM Corporation 32 In story form A change to a component, creates a new version (often by doing a build). The new version is vetted, and then tested in an integration environment.
  • 33. © IBM Corporation 33 In story form A change to a component, creates a new version (often by doing a build).The new version is vetted, and then tested in an integration environment. When the integrated system passes tests, a snapshot of all the component versions in the system is created.
  • 34. © IBM Corporation 34 In story form A change to a component, creates a new version (often by doing a build).The new version is vetted, and then tested in an integration environment. When the integrated system passes tests, a snapshot of all the component versions in the system is created. Snapshot deployments don’t redeploy unchanged components
  • 35. © IBM Corporation 35 In story form A change to a component, creates a new version (often by doing a build). The new version is vetted, and then tested in an integration environment. When the integrated system passes tests, a snapshot of all the component versions in the system is created. Snapshot deployments don’t redeploy unchanged components. The snapshot is promoted & released. Yay.
  • 36. © IBM Corporation 36© IBM Corporation 36 In Summary • Continuous Delivery can be hard in the enterprise • People are trained not to work together • Simple build pipelines don’t work for composite applications • Plan of attack • Embrace a DevOps culture. • Collaborate like crazy. • Use release sets to promote components that are tested together
  • 37. © IBM Corporation 37© IBM Corporation 37 Yes, we sell products that help – IBM UrbanCode Build • Continuous Integration that Scales – IBM UrbanCode Deploy • Application Deployment Automation – IBM UrbanCode Release • Coordination across many applications
  • 38. © IBM Corporation 38 UrbanCode Deploy: Press a button, a complex app is deployed to an environment • Offer secure‘self-service’capabilities • Manage configurations across environments. Automated Tracks Parts of Apps • Know all the pieces of the app tested together. • Increase transparency • Ensure governance and compliance
  • 39. © IBM Corporation 39 UrbanCode Release: Manage Related Applications Quick Qualifying Question: When you release, do you do just one app or do you coordinate changes to several? Customer Portal Inventory System Customer Accounts Credit Services Planning is complex Development work must be coordinated across teams. Release schedules aligned. Development is complex. Interfaces understood, developed & configured appropriately. Environments composed & connected. Testing complex. Are the correct versions of all applications in my environment? In which application did the bug occur? Is the bug a code issue or misconfiguration of the multi-application environment? Change Management is complex. If we pull an application from the Release what will what other applications or projects will be affected? and dozens or hundreds more…
  • 40. © IBM Corporation 40 Learn more • Developer.ibm.com/urbancode • Webinar - Death to Manual Deployments! • eBook - Application Release and Deployment For Dummies • Analysts Study - The Total Economic Impact of IBM UrbanCode Deploy • Request Personal Demo of UrbanCode Deploy
  • 41. © IBM Corporation 41© IBM Corporation 41 Accelerating Digital Business