IBM Rational DevOps Introduction Mark Roberts IT Specialist, IBM Rational UK © 2013 IBM Corporation
Oct 21, 2014
IBM Rational DevOps Introduction Mark Roberts IT Specialist, IBM Rational UK
© 2013 IBM Corporation
Why Do Software Project Fail? Understanding the software engineering lifecycle
1. Unstable, changing requirements (95%)
2. Inadequate quality control and poor quality measures (90%)
3. Inadequate progress tracking (85%) 4. Inadequate cost and schedule estimating (80%)
5. False promises by marketing and sales personnel (80%)
6. Rejecting good schedule estimates for arbitrary dates (75%)
7. Informal, unstructured development (70%)
8. Inexperienced clients who can't articulate requirements (60%)
9. Inexperienced project managers (50%)
10. Inadequate tools for quality/analysis, lack of inspections (55%)
11. Reusing assets filled with bugs (30%)
12. Inexperienced, unqualified software engineering teams (20%)
Visualization of change and complexity From Caper Jones
The emergence of Agile development Compressing the software delivery lifecycle
Compressing the Software Delivery Lifecycle
Operations
Creative B
ehavior
Procedural R
igor
Development
Operations C
reative Behavior
Procedural R
igor
Development Cross over – DevOps
Waterfall Process Platform
Agile Delivery Process Platform
Blended roles and repeated operations
Software development: obsolescence by software delivery
Software Development
Economic governance tailored to risk / reward profiles
Business value and outcome led
Distributed, web based collaboration
Common platform of integrated process / tooling
Sequence of released capabilities with ever increasing value
No distinct boundary between development and maintenance
Continuously evolving systems
Software Delivery
Standard engineering governance
Engineering practitioner led
Collocated teams
Phase and role specific tools
Requirements-design-code-test sequence
Distinct handoff to maintenance
Distinct development phase
§ Many tools from many vendors
Heterogeneous environments that are flexible for partners and suppliers
§ Many teams in many places Distributed development, cross site
product development
Many levels of teams PMO, Bus, dev teams, ops teams, etc
§ Coherent process
Flexible and robust process supporting Lifecycle / Agile Methods
Measure and improve effectiveness
Environmental reality adds significant complexity
6
Tool E UI
LOGIC
DB
UI
LOGIC
DB
UI
LOGIC
DB
UI
LOGIC
DB
UI
LOGIC
DB
Tool B
Tool D
Tool C
Tool A
Customers!
Desire for fast and continuous innovation!
Line of Business!
Requirements!
Dev & Test Teams!
Code & Tests!
Operations Team!
Business Services!
1st Gap!
2nd Gap!
Delivery Challenges
Today’s business and technical needs are pushing traditional delivery approaches to the breaking point
“At some point, you take a step back, and you realize you have an awful lot of siloe’d systems that are limiting transparency across strategic projects”.
- Development Director Temenos, Inc.
People
Process
Information
41% experience
development delays
34% experience deployment
delays
45% experience production
delays
4-6weeks to deliver
code changes
A lack of continuous delivery impacts the entire business
Operations/ Production
Development/ Test Customers Business
Owners
Costly, error prone manual processes and efforts
to deliver software across an enterprise
CHALLENGES
Upgrade risk due to managing multiple application
configurations and versions across servers
Slow deployment to development and test
environments leave teams waiting and unproductive
Agile Dev"
Customers!
Desire for fast and continuous innovation!
Line of Business!
Requirements!
Dev & Test Teams!
Code & Tests!
Operations Team!
Business Services!
1st Gap!
2nd Gap!
Addressing BusDev gaps
1. Iterative and Incremental Process 2. Traceability
Addressed by...!
In Context Collaboration
On-Site (Europe)
Off-Shore (India/China)
Near-Shore (East Europe)
Analysis Design Construction
Function & Performance Test
Component Test
Deployment Project Management
100% 100%
40%
60%
70%
30%
60%
40%
80%
20% 20%
20%
60%
Contractors/external staffing
Global Delivery of Software: An Issue ?
Customers!
Desire for fast and continuous innovation!
Line of Business!
Requirements!
Dev & Test Teams!
Code & Tests!
Operations Team!
Business Services!
2nd Gap!
Dev!Ops!
Addressing Application Lifecycle Management gaps
With only Agile Development improvements…
Agile Dev"
CI builds are piling up
Functional Testing
Acceptance Testing
Production Operator
Setup (weeks)
Install
Test and Ops teams have increased pressures to keep up with increased loads but continue to use waterfall approaches and traditional tools.
Why DevOps?
14
Failures due to differences in dev and ops environments
Time to market pressure for more frequent releases
Manual (tribal) processes for release lack
repeatability/speed
Major releases take days, 100 people and are managed
by a spreadsheet
Daily Build
Release
Who did this last time?
Dave…
Dave’s not here man…
Dev
Prod
I’ll order breakfast
What is DevOps?
DevOps is an enterprise capability for continuous software delivery that enables clients to seize market opportunities and reduce time to customer feedback
15
What is DevOps?
DevOps is an enterprise capability for continuous software delivery that enables clients to seize market opportunities and reduce time to customer feedback
16
• Everybody does it
What is DevOps?
DevOps is an enterprise capability for continuous software delivery that enables clients to seize market opportunities and reduce time to customer feedback
17
• Everybody does it • Software working in production
What is DevOps?
DevOps is an enterprise capability for continuous software delivery that enables clients to seize market opportunities and reduce time to customer feedback
18
• Everybody does it • Software working in production • Build Agility across the enterprise
What is DevOps?
DevOps is an enterprise capability for continuous software delivery that enables clients to seize market opportunities and reduce time to customer feedback
19
• Everybody does it • Software working in production • Build Agility across the enterprise • Knowledge flows from right to left
Agile Development and Delivery Continuous Integration extends to Continuous Delivery
Continuous Feedback
Agile Dev
Design
Prioritize
Build
Test Dev Ops Test
Monitor
Publish
Deploy
§ Automate deployments to test environments (Int, QA, UAT etc.) – Generate confidence in the applications and your ability to deploy
– Remove human variability – Fine granularity of deployment
Develop, integrate, build, deploy and test in small work packages
§ Test in production-like environments – Use virtualized environments for testing but also use real databases, queues, host systems etc.
§ Document the strategy – automatically – Provide a full audit trail of all deployments including the content and operations used
§ Treat deployment as a part of the development lifecycle – Not ‘something done by someone else’
– Architectural awareness
DevOps Principles & Values
People
Process
Information
22
A Continuous Delivery Pipeline
Development Testing Staging Production Business Owners Customers
§ Validate on more production-like conditions earlier
§ Automate hand-offs/promotions to increase velocity through the different stages
§ Standardization on processes and assets between Dev and Ops
§ Automated monitoring and dashboarding of quality and performance against service level agreements at multiple stages
Ensure applications are production-ready throughout the lifecycle and can be released at any time while minimizing rollback due to quality issues
DevOps Adoption
§ What is the value to you of integrated delivery management ? – Build a Business Case
§ Extend the cross team collaboration / break down the ‘team’ barriers – People – Processes – Tools
§ Identify Capabilities and practices to Adopt / Enhance – Include deployment considerations at all times
23
DevOps Adoption – 1 / 2
§ Requirements Management – Requirements Management and communication across Development and Operations
§ Versioning of all DevOps assets – Versioning of Deployment Scripts and Source Code
§ Access to Production-like Environments – Documentation of Production-like environments as Patterns
– Developers have ability to launch and destroy production-like environments from these patterns
§ Deployment Automation – Pattern based reusable deployment scripts
– Ability to deploy applications in One-step
– Daily deployment and verification of applications to a production-like environment
24
DevOps Adoption – 2 / 2
§ Change Management – Linking bugs, issues and work items to application changes
– Linking production issues to associated deployment bugs
§ Automated Testing – Automated testing is used to validate application and platform function and characteristics
§ Monitoring – Monitoring Deployed applications to validate performance and reliability
§ Delivery Pipeline – Having a dashboard to track application stages thru the delivery pipeline and track deployment velocity
25
Continuous Delivery Adoption Maturity
26
Common Source Control
Automated Builds (Build Definitions)
Continuous Integration (CI)
Automated Delivery
Continuous Delivery to Test
Continuous Delivery to Production-like Systems
Continuous Delivery through to Production
27
IBM UrbanCode Deploy Deployment Automation
Deployment of Applications through Environments
§ Rapidly deliver to multiple environments for testing
§ Visibility into deployment status via dashboards
§ Easily roll back applications due to errors or changes
§ Compliance via audit trails and security
§ Integrated with existing investments (Open Source, Tivoli, Cloud, Microsoft, Commerce, Portal)
Versioned Artifacts
QA Environment
Production Environment
Development Environment
Artifacts Artifacts Artifacts
Execute Against Execute Against Execute Against
Deploy or Rollback
Deploy or Rollback
Deploy or Rollback
Application Blueprint
28
IBM UrbanCode Release Release planning and orchestration
Collaborative release management solution : § Replaces error-prone manual
spreadsheets and streamlines release activities
§ Orchestrate release of multiple applications across multiple environments
§ Centralized release processes control desk with real-time status
§ Environments-to-releases allocation
29
IBM UrbanCode Release – Release planning and orchestration
Collaborative release management solution that replaces error-prone manual spreadsheets and streamlines release activities § Orchestrate release of multiple
applications across multiple environments
§ Centralized release processes control desk with real-time status
§ Environments-to-releases allocation