This document discusses leveraging DevOps principles for improving software release and deployment processes. It notes that while agile development has increased innovation speed, it has pushed bottlenecks to IT operations due to differing goals between development and operations teams. To address this, the document recommends applying DevOps principles such as automating processes, keeping all code and configurations in version control, integrating release and deployment tools, and establishing continuous delivery practices to create repeatable, reliable processes that improve responsiveness to business needs.
2. 2
2
The Problem
This is a software-
powered world
Agile development has
increased the pace of
innovation
But has just pushed the
bottleneck down to IT
Operations
4. 4
Slow, Costly and Error-Prone Application Releases
Poor release quality due to
ineffective hand-offs
between Dev and Ops
Global Commercial Bank
Time consuming and
error-prone manual
deployments
Human errors deploying to
100 servers, no standard
process and no audit trail
Global Insurer Regional Retailer
50% of companies are
dissatisfied with key portions of
their release management
process
95% of IT organizations lack a
centralized release management
process…and this contributes
up to 80% of production defects
Forrester Research Gartner
Lost $440M in 45 minutes
Stalled commuter trains for 3
hours
Knight Capital BART
6. 6
Silo’s Are Walls of Isolation
Release Management
Release
Policy
Release
Planning SDLC
Build and
Configure
Release
Quality
Review
Roll Out
Plan
Implement
Release
Verify
Release
Accept
Release
8. 8
8
How to Start – The Mantra
• What matters to the business
• Define and measure success
• See the system and follow the flow
• Eliminate waste
• Create a culture of continuous
improvement
• Apply Agile and DevOps principles
• Implement Incremental changes
• Deliver quick wins
9. 9
9
What Matters to the Business?
• Yes, go ask the people
• Gain visibility and insight into the
business
• Align your objectives to the
objectives of the business
• Agree on metrics to messure
10. 10
How Responsive are you to the Business?
• Where do you start to improve?
• How do you measure success?
• Average cycle time for moving a business
request from Development to Production?
• Number of business requests implements this
week, month, year?
• Cost of moving a unit of change through your
application lifecycle?
• Percentage of a release focused on technical
debt?
• Percentage of a release focused on innovation?
• Develop metrics to support what matters to the
business
11. 11
11
See the System and Follow the Flow
• Business
request
to
the
production
• Detailed
picture
of
your
current
process
• Follow
the
flow
of
information
and
artifacts
• Where
does
your
deployable
assets
reside?
• Identify
feedback
loops
required
12. 12
12
Simplify the Process and Eliminate Waste
• Look for ways to optimize throughput
• Simplify process
• Lean Methodologies
– Value Stream Mapping
– Timeline Analysis
– Waste Analysis
• Financial
Cost
Accounting
14. 14
Continuous Delivery: Goal and Principles
• Create a repeatable, reliable process for releasing software
• Automate almost everything
• Keep everything in version control
• If it hurts, do it more frequently
• Build quality in
• Done means released
• Everyone is responsible for the delivery process
“To find ways to deliver high-quality, valuable software in an efficient, fast,
and reliable manner.”
15. 15
Create a Repeatable and Reliable Release Process
• Single system of record
for release planning and
execution
– Updated in real-time
– Schedules
– Milestones
– Gates and Approvals
• Automatic cycle-time
capture
• Ensure audit trails for
compliance and learning
17. 17
Release Management
• We align to Change Management
• We plan and manage long term Releases
• We can document and demonstrate
traceability and compliance…
A “Release” Method Needs to Support Different Modes
Continuous Delivery
• We align to Change Management
• We can automate continuous Releases
• We can build traceability compliance in…
18. 18
Select a Release Method for each “Modal” Application
• Change Approval Method
• Artifact centric – aligns to Continuous Delivery
• Deployment artifacts linked to RFC for Approval
• Sometimes only created for Production deployments
• Release Package Method
• Artifact/Process centric – evolves Continuous Delivery for the Enterprise
• Release Packages linked to Deployment artifacts
• Release Packages models Path to Production through Deployment Pipelines
• Release Train Method
• Process centric – aligns to ITIL/Service Transition Release Management
• Release Trains are planned/scheduled and deployed through Release Packages
• Release Planning, Deployment Planning, Change Management
RFC
Artifacts
Release
Package
Artifacts
Deployment
Pipeline
Release
Package
Artifacts
Release
Package
Artifacts
Release
Train
19. 19
Manage Environments
• Improve availabiliy and readiness of environments
• Calendar shows environment contention and
availability issues
• Process drives environment provisioning,
management, and decommissioning
• Automatic notification of environment readiness and
status changes
20. 20
20
Eliminate Inefficient Deployment Processes
• Define, build, orchestrate and manage all
deployment turnovers and tasks
• Capture environment and deployment tribal
knowledge in a “runbook”
• Formalize packaging and process of the handoff
• Same set of semantics
• Eliminate “million dollar” release meetings
21. 21
21
Automate Almost Everything
• People should not move the “bits”
• Automate code and config deployments with a
single set of deployment processes across all
environments
• All preprod deployments should be rehearsals
for the final deploy into prod
• Use common tools across all environments
• Quick incremental wins with big impact
22. 22
Keep Everything in Version Control
• Version control everything
• Include infrastructure and configuration code
• Aggregate assets into a single source of the truth
• Should reside in a secure repository
23. 23
Make Gates and Approvals Visible
• Establish minimum entrance requirements to
an environment
• Consider applying more rigor to higher level
environments
• Auto-revert/gated commits
• Ensure mitigation plans to pull stories/changes
from a release
24. 24
24
Integrate Release and Deployment Toolchains
• Process and Artifacts transition across
tools
• Seamless integration of the deployment
pipeline
• Plug-in architecture to abstract tool
implementations
• Integration with change, configuration
and ITSM solutions
25. 25
Summary
• Velocity and Complexity of application releases continue to increase as
businesses adapt to new economic conditions.
• Responsiveness to the business and operational efficiencies are the value
drivers
• Manual deployments, poor collaboration between teams, and lack of control
lead to poor quality releases at a high cost
• High levels of performance demands an agile and lean approach
• Automation is the quickest route to high performance
• Quick wins and continuous improvement trumps big bang rollouts