DevOps, sibling of Agile is born of the need to improve IT service delivery agility to the more stable environment.
DevOps movement emphasizes tearing the boundaries between makers (Development) & caretakers (Operations) of IT services/products.
2. • What is DevOps
• Why DevOps
• How DevOps
• DevOps – One step at a time
• Key Enabler : Continuous Delivery
• Implementation Approach
• Move up the maturity level
• Common Enterprise Challenges
• Ways forward
2
3. What is DevOps
3
DevOps != Dev + Ops
DevOps == Customer+Business+Analyst+Infra+Design+Developmnet+Test+Env+Ops
DevOps == ^(?<dept>.+)Ops$
4. Why DevOps
4
Customer need more with less i.e. Cheaper, Better, Faster
Digital transformation requires speed, agility, and 24/7 performance
DevOps helps to
Increase collaboration between departments
Increase deployment frequency
Improve quality
Reduce cost on development and operations
Today’s leading companies are already becoming obsolete. In 10 years,
40% of the Fortune 500 was replaced.
5. 5
How DevOps
DevOps Objectives
•Automate as much as possible
•Automate the building of environments
•Automate the building of deliverables
•Automate the testing of code
•Automate the pushing of deliverables from one
environment to another
•Automate the monitoring of what was built
DevOps Benefits
•Code changes are continuously and
automatically versioned
•Code changes are continuously and
automatically built, tested, and promoted to
higher environments
•Code change are at each environment
promotion event
6. Big Bang Transformation
Dream
Big Bang Transformation
Reality
What works better :
Continuous Improvement
DevOps – As it evolved one step at a time … Take one step at a time to make it work
Start
Results
Start
Fear
Results
Panic Abort
Maybe
Start
Results
7. Key Enabler : Continuous Delivery
• Continuous Integration is a software development practice where members of a team integrate their work
frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each
integration is verified by an automated build (including test) to detect integration errors as quickly as
possible.” - Martin Fowler
• Continuous delivery is set of patterns and best practices that can help software team dramatically improve
the pace and quality of software delivery.
Time
Value
1
2
3
4
1
2
3
1
2
1
Risk
ReleaseRelease
1
2
3
4
1
2
3
1
21
Current State
Monthly/Qtrly Production releases
Pre-release QA cycle 1-2 weeks
Error in Prod? Lots of stress, late night
Project idea to go-live in 6-12 months
Business stakeholders frustrated
Deliver before your competitor do
Production release ~twice a week
QA cycle < 1 day
Switch to Blue in <1 minute, fix next day
New project can be in Prod in 1 week
Business stakeholders happy
Technology supports all this, but the team still has to deliver working code.
Time
Value
8. Continuous Integration and Delivery – Process Revisited
Development TeamDevelopment Team
User Stories
(Rally)
Source Code
Version Control
System
Version Control
System
Source Code Build
Static Analysis CodeStatic Analysis Code Run Automated Unit TestsRun Automated Unit Tests Code Coverage AnalysisCode Coverage Analysis
1
Set Up Test FixturesSet Up Test Fixtures
234
5 6
Provision and Deploy
to Test Environment
Provision and Deploy
to Test Environment
Build Artifact7
8
9
Run Automated
Functional Tests
Run Automated
Functional Tests
10
Publish Code
12 11
Continuous
Integration
1
build
unit
tests
integration
tests
validation
tests
deploy to
Stage/pre-prod Env
MANUAL
Continuous Delivery / Deployment
AUTO
9. DevOps : Implementation Approach
Where to start: Culture, process, tools?
Taking agile transformation from delivery to business to stable systems is not an overnight journey, it is a
Marathon and so what shall be an approach.
• Bottom Up: Have a team follow the approach, make a success story and lead along. But this could take us
SO far. As most projects are small scale and high performance won’t scale across the organization.
Honestly I always lived with understanding that better people make better country and better country
make better world
• Top Down: When it comes to Culture i.e. change human operating system, changes most of times need to
be enforced by C-Suite. Here most common problem is failure to commit and focused effort
• Total Approach: Follow the total approach. Touch program, portfolio and organization together.
Understand
current tools
& process
Access gaps
& define
approach
Move step on
step
Encourage
benefits
Rule of Thumb is “If you have to go fast run
ONE and to reach far you need to have ALL
along “. Tap on Structure …Keep string
Governance & don’t go for Free size for tools
& processes
Structure
Governance Metrics / Tools
10. 10
Move up the Maturity Model - Sample
• Instill agile mindset in team (collaboration, empowerment, focus on working code, etc.)
• Create cross-functional teams
• Drive business focused stories
• Ensure feature and user story backlog is created and maintained on cadence
• Clearly Understand Technology Foundation
• Well Define Modules and Interfaces
• Drive Componentized Delivery
• Set up Code Repository
• Set up Build Environment and Servers
• Drive Scripted Builds
• Create Build Schedule
• Script Deployments
• Acceptance Tests Written as Concrete Examples in Domain Specific Languages (e.g. Gherkin)
• Tests Completed During Iteration (i.e. not after)
• Automate as Many Tests as Possible
• Build and Deploy Reporting
• Code Quality Reporting
• Trend Analysis
Culture &
Methodology
Design &
Architecture
Build, Deploy,
Devops
Testing &
Verification
Metrics &
Reporting
11. 11
Measure it tight
Dimenstion Value mapping Measure
Application progress
Continuous Business Planning
•Matrix/ Cross functional SCRUM teams with no functional boundaries Speed to Value Yes
•Streamlined business backlog grooming Speed to Value 90
•Feature driven teams working for Minimial deployable feature/product every 2 weeks Speed to Value Yes
•Business, Product owners engaged throughout Optimization 100
• Business behavior drives testing Quality 65
Continuous & Collaborative Development
•Use Rally & other planning tools for burn down and velocity track Productivity Yes
•SCM to support Distributed development e.g. GIT Optimization Partial
•Enforce extreme programming/Lean practices/ reduce cost of coordination
(pair programming/ peer review/Kanban) Quality & Speed to value Pair Programming
•Test driven development (Developer writing UT prior to developmnet) Quality 75
•Reducing impact (during development) because of upstream/downstream systems
unavailibility : Self contained automate test suite Optimization 55
Continuous Integration & Delivery
•Setup code repository
•Branching & Merging Strategy defined Optimization Yes
•Separate build environment and CI server defined for esch delivery team and teams
integrate their work daily
(e.g 4 Env set for 4 SCRUM teams) Speed to Value Yes
•Setup & Configure CI Server (E.g.Jenkins) Optimization Yes
•Implement CI workflow Speed to Value 60
•Automate Configuration & Env Setup Optimization 0
•Automate Deployment Speed to Value 0
Continuous Testing & Verification
•Define Acceptance Test Strategy (Test from UI using Selenium/Cucumber) : Dev & QA Quality 35
•All Acceptance tests automated : QA Optimization 60
•Implement TDD best practices. (Team writes tests first) : Dev Quality 50
•Acceptance tests for stories executed while code is written Quality 65
•Implement code quality tooling using Sonar Quality Fortify
Continuous Operations & feedback
•Implement standard agile reporting metrics Speed to value Yes
•Implement checkin & merge reporting Speed to value Partial
•Implement build reporting Speed to value Automated
•Implement code coverage reporting Speed to value No
•Implement deploymnet reporting Speed to value No
•Implement test pass/fail reporting Speed to value No
•Implement env availibility reporting Speed to value No
•Implement application monitoring reporting Speed to value Partial
12. 12
Common Enterprise Challenges
Each functional area having different
systems , own goals and metrics
DevOps Culture
• Collaboration
• Embrace shared data,
• Shared tools and
• Shared approaches
One Size doesn’t for ALL
(Each system have different business,
process & technology challenges)
• AS IS assessment to have individual system
Empower team to pick their own tools
• Keep the tools current and make sure they actually
address user needs
Continuous Delivery can not be
accomplished without continuous testing
• Automated functional testing
• Test Data management
• Test Env automation
Existing Application Ecosystem
(it's not easy to make legacy apps work
well with modern tools)
• Setup hybrid environment with on premise tools like
NGIS Env, PaaS.
• Making seemingly incompatible tools jive together to
meet business needs
Network Layer Configuration
Changing, moving or replicating any part
of network layer like F5, Proxy server
often seems impossible
• Leverage advanced virtualization tools (i.e.
converting legacy systems to virtual machines)
• Modern software-defined networking (SDN)
technology to spin/configure the Env runtime
Challenges Ways Forward
14. References
• Why DevOps: definition and Business benefit, written by Luca Relandini on January 25, 2015 and
available at http://lucarelandini.blogspot.it/2015/01/why-devops-definition-and-business.html
• What is DevOps, published by The Agile Admin and available at http://theagileadmin.com/what-is-
devops/
• Just enough developed Infrastructure, written by Patrick Debois and available at
http://www.jedi.be/blog/2010/02/12/what-is-this-devops-thing-anyway/
• What happens when Dev and Ops come together, by CA Technologies and available at
http://www.ca.com/in/lpg/devops-portfolio-b.aspx#
• DevOps = Better Execution, published by Rajat Bhargava, CEO & Co-Founder, JumpCloud Inc. and
available at http://www.rackspace.com/blog/devops-better-execution/
• DevOps-an Extension of Agile Methodology – How It will Impact QA, written by Aniket Deshpande and
available at http://www.softwaretestinghelp.com/devops-and-software-testing/
Customer is getting more demanding and IT can make a huge impact.
This calls for Digital transformation
Digital = Investing in new technologies : mobile, big data, analytics, Cloud
Transformation = Reinventing business model, customer interactions
Accelerate time to market
Increase application quality
Increase customer responsiveness
Current State : Monthly/Qtrly Production releases
Pre-release QA cycle 1-2 weeks
Error in Prod? Lots of stress, late night
Project idea to go-live in 6-12 months
Business stakeholders frustrated
Works on Dev machine and specific Env
Duplicative Regulatory Spend
Deliver before your competitor do
Production release ~twice a week
QA cycle < 1 day
Switch to Blue in <1 minute, fix next day
New project can be in Prod in 1 week
Business stakeholders happy
Significant Dev Ops Savings
Remediate Once