• 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
What is DevOps
3
DevOps != Dev + Ops
DevOps == Customer+Business+Analyst+Infra+Design+Developmnet+Test+Env+Ops
DevOps == ^(?<dept>.+)Ops$
Why DevOps
4
Customer need more with less i.e. Cheaper, Better, FasterDigital transformation requires speed, agility, and 24/7 performance
DevOps helps toIncrease collaboration between departmentsIncrease deployment frequencyImprove qualityReduce cost on development and operations
Today’s leading companies are already becoming obsolete. In 10 years, 40% of the Fortune 500 was replaced.
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
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
StartFear
Results
Panic Abort
Maybe
Start
Results
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
Continuous Integration and Delivery – Process Revisited
Development TeamDevelopment Team
User Stories(Rally)
Source Code
Version ControlSystem
Version ControlSystem
Source Code Build
Static Analysis CodeStatic Analysis Code Run Automated Unit TestsRun Automated Unit Tests Code Coverage AnalysisCode Coverage Analysis
Set Up Test FixturesSet Up Test Fixtures
5 6
Provision and Deploy to Test Environment
Provision and Deploy to Test Environment
Build Artifact7
89
Run Automated Functional TestsRun Automated Functional Tests
10
Publish Code
Continuous Integration
build unittests
integrationtests
validationtests
deploy toStage/pre-prod Env
MANUAL
Continuous Delivery / Deployment
AUTO
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
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
Measure it tight
Dimenstion Value mapping Measure
Application progressContinuous 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
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 ConfigurationChanging, 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
Ways to Go
13
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/
YOUR PERSPECTIVES PLEASE ….