© 2014 IBM Corporation1
DevOps
What is your definition of DevOps?Steve Boone
DevOps SME
@Steve_Boone
© 2014 IBM Corporation2
Jez Humble: Continuous Delivery
“DevOps is much of the ‘how’ of
achieving continuous delivery”
© 2014 IBM Corporation3
DevOps
IBM’s Definition:
“DevOps is an enterprise capability for
continuous software delivery that enables
clients to seize market opportunities and
reduce time to customer feedback”
© 2014 IBM Corporation4
DevOps
“DevOps is an enterprise capability for continuous software delivery that enables clients to seize market
opportunities and reduce time to customer feedback”
“Enterprise capability”
When we say that DevOps is an “enterprise capability”, we are saying quite a lot. First,
that there is no single individual, team or tool that “does DevOps”. DevOps emphasizes
systems thinking as opposed to silo’d thinking.
“Continuous Software Delivery”
Many organizations successfully underwent Agile transformations but lack the rapid
planning, testing, deployment and release capabilities to fully benefit from continuous
software delivery. DevOps integrates agile development with continuous testing and
deployment as well as continuous monitoring and customer feedback to assist in
planning and backlog prioritization.
“That enables clients to seize market opportunities”
Why are we doing DevOps? Because traditional IT practices are too slow to meet the
needs of our businesses. Companies increasingly compete on software and need to be
able to rapidly change course, or exploit a new or transient market opportunity. The
challenge before the industry is to become more nimble. DevOps focuses on building
this nimbleness as an enterprise capability.
© 2014 IBM Corporation5
DevOps
“DevOps is an enterprise capability for continuous software delivery that enables clients to seize market
opportunities and reduce time to customer feedback”
“Reduce time to customer feedback”
How do we know what to build? A big part is getting feedback from our users. While we
often think of continuous delivery as a “left to right” process moving from development
to production, knowledge flows “right to left” from test to development and from users in
production towards the business.
Periodic focus groups aren’t enough. We want near instant feedback on each of our
continuous, small releases. Are we making more money? Are the customers getting
tasks done quicker? How often are error pages showing up? Do we need to rollback or
change course?
© 2014 IBM Corporation6
DevOpsTransformation
The Hidden Factory Opportunity
Waste
Productive
80%
20%
50%
50%
Hidden Factory= additional value you could create if you eliminated waste and redirected those resources at innovation
© 2014 IBM Corporation7 7
The Big Sources of Wasted Efforts: Find the Hidden Factory
Type of Waste Create Feature Deliver Feature
Unnecessary
Overhead
Communicating ideas/knowledge Communicating between development
and operations
Unnecessary
Re-work
Tasks assigned back to developers
from testing and usage
Tasks assigned back to developers from
production rollbacks
Over-production Unnecessary functionality produced Unnecessary hardware, data center,
personnel
Non-Value-added waste
Value-added production work
Lean / DevOps
Transformation
© 2014 IBM Corporation8
DevOps approach: Apply Lean principles accelerate feedback and improve time to value
Line-of-
business
Customer
1
3
2
1. Get ideas into production fast
2. Get people to use it
3. Get feedback
Adopt DevOps approach to
continuously manage changes,
obtain feedback and , deliver
changes to users
Change speed must be an asset, Not an anchor
Non-Value-added waste
Value-added production work
Lean
Transformation
© 2014 IBM Corporation9
IBM DevOps Adoption ModelPractices, tools and services to plan and execute a staged adoption of DevOps to improve business outcomes
Feedback
Cycles
Productive Waste
Efficiency
Steer Product-based
Agile
Automated
Collaborative
Optimizing
More
Predictable
More
Transparent
More
Continuous
Process-based
Process-heavy
Manual
Silo-ed
Develop/Test
Deploy
Operate
Inefficient Leaner Leaner and Smarter
© 2014 IBM Corporation10
Why is DevOps Necessary?
To better answer this question, we should first take a look at our past.
Continuous Integration: Why do development teams choose to implement CI?
The reason teams do CI is simple, it helps improve quality. The more often we integrate the
code, and the more often we test the code by compiling it, the better we can determine the
quality of the build.
Once a build is complete, how do we further test for quality?
To further push our quality metric we need to deploy the built artifacts to a target server,
and execute our tests.
© 2014 IBM Corporation11
Agile and DevOps: it’s about Quality
Help deliver better quality software – faster.
DevOps is about ensuring quality into your Production environments.
1
1
Over the past years development teams have been widely
successful with CI and CD.
However, one main problem still existed.
The deployments were not being automated all the way into production.
The automation process was not truly "end to end."
© 2014 IBM Corporation12
Difference between DEV and OPS
DEV
Very High Tempo
Can rebuild database / app
from scratch
- No need for rollbacks
Audit is a nice to have
- Security, traceability,
separation of duties
New Environments are
common
1
2
OPS
• Slower Tempo
• Incremental updates to
Database and App
- Rollbacks are huge
• Audit is Critical
• New Environments are rare
© 2014 IBM Corporation13
DevOps: Agile reaches Ops
1
3
© 2014 IBM Corporation14
Common patterns impacting continuous delivery
Failures due to
inconsistent dev
and production
environments
Bottlenecks trying
to deliver more
frequent releases
to meet market
demands
Complex,
manual,
processes for
release lack
repeatability and
speed
Poor visibility into
dependencies
across releases,
resources, and
teams
How do we ensure that we release and deploy
What we want, When we want, Where we want!
© 2014 IBM Corporation15
Our customers are facing the same challenges
*Data based on UrbanCode customer survey
© 2014 IBM Corporation17
DevOps: Optimization of the Software Delivery Pipeline
Optimizing the software delivery pipeline
• Reduce time to market
• Improve quality
• Decrease costs
© 2014 IBM Corporation18
The Pipeline is an Assembly Line
© 2014 IBM Corporation19
Balancing the Assembly Line
19
Equal process throughput
avoids backlogs
Upgrading a proceeding
process causes
downstream backlogs
Upgrading downstream
process throughput re-
establishes balance
© 2014 IBM Corporation20
Basic DevOps toolchain
SCM
Build / CI
Server
Unit testing
Test
Automation
Test Stubbing
Delivery
Pipeline
Environment
Configuration
Automated
Monitoring
Asset
Repository
© 2014 IBM Corporation21
Continuous Delivery Pipeline
© 2014 IBM Corporation22
IBM DevOps Maturity Model
© 2014 IBM Corporation23
Multi-tier applications introduce additional complexity
Middle Tier ServerClient Tier Devices Back-end Data & Services
Coordinating separate pipelines for each tier is critical
• Disparate teams
• Different processes
• Separate tools
© 2014 IBM Corporation24
Systems of Engagement (SoE) Apps
Rapid
Releases AppStoreMonitor
and Optimize
Release
and DeployDevelop
and Test
Inte
gra
tio
n T
est
24
Monitor
and OptimizeDevelop
and Test
Web Apps
Frequent
Releases
Production
Environment
Databases
Systems of Record (SoR) Apps
Fewer
ReleasesDatabases
The Need: Integrate systems of engagement with systems of record
By bringing together the culture, processes, and tools across the entire
software delivery lifecycle – spanning mobile to mainframe platforms
© 2014 IBM Corporation25
Days
<10%
Quarters
35%
Months
40%
Weeks
15%
6-12 Month Delivery Cycles are still the Norm
Delivery cycle profile across 600 business enterprises
Profile source: A commissioned study conducted by Forrester Consulting on behalf of IBM, May 2014
Feedback cycles
© 2014 IBM Corporation26
Slow deployment of application environments
UrbanCode Deploy helps deploy applications faster to static and long running
environments
Static environments are becoming a challenge for continuous application delivery – New projects demand new environments for delivery pipeline
– Developers and testers don’t have enough test environments
– Seasonal demands to scale up production environments
Example: Building environments for a new delivery pipeline at Macquerie requires
$1M and 6 months effort
Release
Deploy
EnvironmentDeploy
Application
© 2014 IBM Corporation27
Manual environment build-outs
“I used the images you gave.. The
application works in Dev
environment”
“I gave you all machine images, still
your application doesn’t work on
production”
What did you do with your Dev / Test
instances of the images?”
Both: “Why is this not coming together?”
Development team Operations team
© 2014 IBM Corporation28
Rapidly deploy application environments in 3 simple steps
Provide portability across heterogeneous virtual datacenter, private and public clouds
3. Portable across different virtualized infrastructure
Assemble multi-tier application environments and define auto-scaling policies to meet operational needs.
2. Assemble multi-tier and scalable environment blueprints
1. Create stacks
Load Balancer
Web
Servers
App
Servers
Database
Servers
Firewall
Application
Compute, Storage,
Network Configuration
OS / Platform Image
Middleware
Configuration
Middleware
Po
licie
s
Describe full stack environments using infrastructure building blocks like Images, Middleware scripts, and Application code
VMware
vCenter
PrivatePublicVirtual
Datacenter
© 2014 IBM Corporation29
UrbanCode Deploy with Patterns
IBM UrbanCode Deploy
with Patterns
Pattern designer
Design open, full stack application environments in a diagram or textual editor
Design once, deploy anywhere
Deploy full stack environments to multiple clouds
Environment lifecycle management
Manage infrastructure change and easily apply changes to existing environments
Delivery process automation
Automated delivery process with integrated full stack environments
Application
Compute, Storage,
Network Configuration
OS / Platform Image
Middleware
Configuration
Middleware
Po
licie
s
VMware
vCenter
Private Public
Virtual
Datacenter
© 2014 IBM Corporation30
Faster, repeatable, reliable full-stack deployment processes
SCM Build Automation
QA PROD
App
Configure the entire
stack with your cloud
of choice.
Iterate on application
and infrastructure
changes seamlessly.
Promote changes to
your cloud
environments through
the entire delivery
lifecycle.
Publish
build
Pull
changes
IBM Cloud Orchestrator
DEVDEVDEVDEV
App
IBM PureApplication System
IBM UrbanCode Deploy
with PatternsIBM Cloud Manager with
OpenStack
IBM Bluemix
App
© 2014 IBM Corporation31
Implementation Rollout
Intended Audience:
Development, Deployment & Operations Organizations
Value Proposition
Immediate ROI by automating the deployment process
for a production application
Develop and validate the usage model for a high priority
subset of the future state solution
Build tool experience on a core technical team
Establish baselines and learnings for an enterprise
rollout
Resources (2-3 IBM Consultants)
Solution Architect
uDeploy SME
Project Manager
Key ActivitiesEstablish Core Team Define Working Model Prepare Project Project Execution
• Confirm goals and expectations
• Establish Core Team
• Define solution architecture
• Install and configure UCD
• Mentor system administrator on
installation
• Core Team Enablement
• Mentor core adoption team
• Define Usage Model • UCD Solution Configuration
• Develop Training
Material
• End User Training
• Production readiness
and testing
• Launch Production Project
• Measure outcomes and
capture improvements and
lessons