Top Banner
DEVOPS != DEV+ OPS Shalu Ahuja [email protected]
15

Dev ops != Dev+Ops

Feb 14, 2017

Download

Engineering

Shalu Ahuja
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Dev ops != Dev+Ops

DEVOPS != DEV+ OPS

Shalu [email protected]

Page 2: Dev ops != Dev+Ops

• 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

Page 3: Dev ops != Dev+Ops

What is DevOps

3

DevOps != Dev + Ops

DevOps == Customer+Business+Analyst+Infra+Design+Developmnet+Test+Env+Ops

DevOps == ^(?<dept>.+)Ops$

Page 4: Dev ops != Dev+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.

Page 5: Dev ops != Dev+Ops

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

Page 6: Dev ops != Dev+Ops

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

Page 7: Dev ops != Dev+Ops

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

Page 8: Dev ops != Dev+Ops

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

Page 9: Dev ops != Dev+Ops

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

Page 10: Dev ops != Dev+Ops

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

Page 11: Dev ops != Dev+Ops

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

Page 12: Dev ops != Dev+Ops

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

Page 13: Dev ops != Dev+Ops

Ways to Go

13

Page 14: Dev ops != Dev+Ops

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/

Page 15: Dev ops != Dev+Ops

YOUR PERSPECTIVES PLEASE ….