Continuous Delivery in the Enterprise - with IBM UrbanCode
-
Upload
ibm-urbancode-products -
Category
Software
-
view
1.910 -
download
3
Transcript of Continuous Delivery in the Enterprise - with IBM UrbanCode
© 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
@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 Prod QA
?
?
Snapshot Snapshot
QA Dev 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
Staging
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
Staging
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