continuous delivery -...

50
Continuous Delivery Benefits, Best Practices and Practical Advice Mark Warren Perforce Software Jeffrey Hammond Forrester Research Ajit Zadgaonkar Edmunds.com

Upload: others

Post on 31-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Continuous Delivery Benefits, Best Practices and Practical Advice

Mark Warren

Perforce Software

Jeffrey Hammond

Forrester Research Ajit Zadgaonkar

Edmunds.com

Page 2: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Continuous Delivery: A Key Enabler

of Feedback and Flow

Jeffrey Hammond, VP, Principal Analyst

Sept. 24, 2013

Page 3: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

2 Entire contents © 2010 Forrester Research, Inc. All rights reserved.

How Would You

Describe Your Release

Management Process?

2 Entire contents © 2010 Forrester Research, Inc. All rights reserved. Source: Flickr (http://bit.ly/13haRZ6/)

Page 4: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

© 2013 Forrester Research, Inc. Reproduction Prohibited 3

Developers Employ Agile Practices…

Source: Forrsights Developer Survey, Q1 2013

Which of the following project management practices does your development team currently use?

19%

3%

3%

5%

6%

8%

8%

13%

12%

15%

20%

24%

28%

29%

35%

None of the above

Minimum viable product approach used to focus releases

A/B testing used to evaluate proposed changes

Kanban board used to show progress

Stage-gate project approvals

Code coverage threshold must be met for release

Pair programming

Use a burn-down list to prioritize day-to-day activity

Run retrospectives at the end of each development phase

Use visualization, visual prototyping, storyboarding, or wire-…

Product owner involved in development

Daily standup/Scrum meetings

Test-driven development

Short development iterations

Formal code review

Base: 698 Professional Developers, Game Developers, IT Developers, Consultants

Page 5: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

© 2013 Forrester Research, Inc. Reproduction Prohibited 4

… But Spend More Time On E-Mail Than Deploying Code or Writing Tests

Source: Forrsights Developer Survey, Q1 2013

How much time do you spend in a typical work day doing the following activities?

65%

52% 50% 49%

38% 35%

26% 23% 19%

14% 12%

Base: 651 Professional Developers, Game Developers, IT Developers, Consultants

% of Developer That Spend More Than an Hour A Day

Page 6: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

© 2013 Forrester Research, Inc. Reproduction Prohibited 5 Source: Flickr (http://bit.ly/13R9WgS/)

This type of thinking is becoming increasingly

obsolete…

Page 7: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

6 Entire contents © 2010 Forrester Research, Inc. All rights reserved.

Source: Flickr (http://www.flickr.com/photos/sashawolff/3793206523/sizes/l/)

9/11 1.3 M+ Android activations per day, 500 million+ total devices

9/12 400 M+ iOS devices sold to date

Over 700M smart phones sold worldwide in 2012

Samsung Galaxy SIII: 96 million, iPhone 5: 54 million

The Mobile Shift is upon us…

Page 8: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

© 2013 Forrester Research, Inc. Reproduction Prohibited 7

IT Shops Struggle To Keep Up With Mobile

Source: Forrsights Developer Survey, Q1 2013

How often does your development team release mobile apps?

21%

28%

11%

11%

12%

13%

4%

25%

39%

13%

2%

8%

10%

2%

0% 20% 40% 60%

<=1 release/yr/device

2-4 regular releases/yr/device

5+ regular releases/yr/device

Every month or more (as needed)

Releases to coincide with new versions ofdevice OS

We release patches for defects as needed andthen release major updates when we are ready

Other (please describe)

IT Dev

Pro Dev

Base: 172 Professional software developers and 87 IT developers building mobile applications

Page 9: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

© 2013 Forrester Research, Inc. Reproduction Prohibited 8

Mobile apps are just part of modern applications

Page 10: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

The way we develop is changing…

7 Traits of Modern Applications

1. Omni-channel clients

2. Deployed on elastic

infrastructure

3. Aggregate discrete services

4. Use managed APIs

5. Integrate open source

software

6. Employ dev-ops techniques

7. Focus on measurable

feedback

Page 11: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Systems of

Engagement

Delivering modern applications is hard

Time to Safety

Time to Certainty

Time to Feedback

Systems of

Operation

Systems of

Record

Lifecycle Focus

Page 12: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Getting real customer feedback is hard

without frequent production releases!

Page 13: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Continuous Delivery Enables Fast Feedback

Flow

Page 14: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

What’s your “Null Release” cycle time?

What is the “Null Release” ?

“If we changed one line of code in our application

(or system), how long would it take us to deploy

it into production using our regular release

process?”

Page 15: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

5 ways to streamline delivery

1. Improve pre-build processes

2. Expand release management throughput

3. Optimize your release pipeline

4. Architect software for rapid change

5. Create a common release portal

Page 16: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Improving pre-build processes

1. Outlaw private builds

and release streams

2. Employ gated check-

ins and pre-flight

builds

3. Make your continuous

integration process

change aware

Garbage in, garbage out

Page 17: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Expanding release throughput

X X X X

Sprint

2

Sprint

1

Sprint

3

Sprint

4

Sprint

6

Sprint

5

Sprint

7

Sprint

8

1. Apply the concept of a release

pipeline to your work.

2. Use "smoke tests" to evaluate

builds quickly

3. Decompose each process into

the smallest possible logically

independent steps

4. Automate repetitive steps

wherever possible

5. Use parallelism to speed up

builds

Page 18: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Adopt A Simple Release Pipeline

Page 19: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Optimize your delivery pipeline

› Use virtual images to enforce consistency

› Use parallelism to compress the testing phase

› Use masked production data to improve testing

fidelity

› Implement a developer self-service

environment

› Use configuration management to automate

deployment

› Use service virtualization to speed testing

Page 20: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

An Optimized Delivery Pipeline

Page 21: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Architect Software For Rapid Change

› Modularize your architecture

› Manage deployment by configuration

› Design systems to support "blue-green"

deployment

› Use runtime configurations of features to avoid

rollbacks

› Web services, message passing to decouple

layers

Page 22: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Create A Common Release Portal

What you need

1. Status of the release

pipeline

2. Drilldown metrics on

individual releases

3. Consistent locations and

links for "latest releases.

4. Links to all configuration

recipes and instances

5. Alerting

Page 23: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

© 2012 Forrester Research, Inc. Reproduction Prohibited

Tools help increase your rate of delivery

22

Release Planning

Release Automation and Orchestration

Work Item Management and Tracking

Continuous Integration and

Build Management

Service

Management

Configuration Management

Test Management And Execution

SCM

Portfolio Management

Monitoring

and APM

Page 24: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Systems of

Engagement

The “need for speed” may vary

Milestone builds

Release on demand

Hypothesis driven

Systems of

Operation

Systems of

Record

Page 25: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

© 2013 Forrester Research, Inc. Reproduction Prohibited 24

When release management works

› Amazon – a release every 11.6 seconds, leading

public cloud infrastructure

› Netflix – testing in production w/ the Simian

army, ~30% of NA internet traffic

› Instagram – 0 – 14 million customers in 1 year,

massive wealth creation for the dev team

› Eclipse foundation – 50M LOC shipped like

clockwork, every year for 6+ years.

Page 26: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

© 2013 Forrester Research, Inc. Reproduction Prohibited 25

Next steps

1. Make sure you are planning for faster releases

as part of your modern application strategy

2. Assess your current level of maturity, and what

it takes to get to the next level

3. Understand the cultural changes required to

get to a state of continuous delivery

4. Tools and practices will help reinforce cultural

change

5. Segment opportunities by complexity and

experience and act accordingly

Page 27: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Thank you

Jeffrey Hammond

+1 978.226.8886

[email protected]

Page 28: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Continuous Delivery The Role of Version Management

Mark Warren

Product Strategy Director

Perforce Software

Page 29: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

• Headquartered in Alameda,

California, international operations

in the United Kingdom, Canada

and Australia.

• Trusted with storing and versioning

the most valuable IP for the world's

most innovative companies

– Over 10,000 customers worldwide

– From start-ups to Fortune 100

– The leading cloud companies

Perforce Software

Page 30: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

CD Enabler – Version Management

SCM

De

ve

lop

me

nt

Bu

ild

& T

es

t

Re

lea

se

Op

era

tio

ns

& M

on

ito

rin

g

Page 31: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Version Everything

.doc .jpg

.mp4 .svg

Build

Script Libraries

DB

Script Compilers

Installer Env.

Config

.java .exe/.dll

.war .db

Java C#

.jsp

COBOL

CSS

Ruby

PHP

Python

.xls .docx

.proj

Not Just Software Developers

• Documenters, authors, artists,

project managers, release

managers, Natural

tools/UI/workflows

All Teams and Projects

• Wherever they are

Page 32: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Version Everything – CCP Games

• Version absolutely *everything*

• Branching – “where it makes sense”

• “Nobody is born a versioning hero”

• “Versioning everything requires an

investment. It’s worth it.”

Versioning is the nerve

center of the organization { }

Page 33: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Mainline Release Branching Strategy

Release 1.1.x

Release 1.0.x R R R

R R

merge

bugfix

merge

bugfix

• Visibility

• Always deployable

• Continuous Integration, only create branches for releases

• Manage what gets into mainline

Mainline

Page 34: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Mainline – Salesforce.com

• 150 teams, 5,000 testing VMs, 500,000 files.

• Up to 10 million Perforce transactions per day,

heading towards 15 – 20 million

• Mainline code model

• Fast feedback is key

• Security, audit, compliance. Easy audit process

• “Perforce is boring” – For ops team, that’s a very

good thing!

Mainline is critical to collaboration { }

Page 35: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Best Practices

• Version *everything*

• Automate everything

• Love the Operations team

• Invest in infrastructure

• Feedback early & often

• Used by everyone

Page 36: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

For more information

For more use cases and information on

the role of version management…

perforce.com

Page 37: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Continuous Delivery

Copyright Edmunds.com, Inc. (the “Company”). Edmunds and the Edmunds.com logo are registered

trademarks of the Company. This document contains proprietary and/or confidential information of the

Company. No part of this document or the information it contains may be used, or disclosed to any

person or entity, for any purpose other than advancing the best interests of the Company, and any such

disclosure requires the express approval of the Company.

Ajit Zadgaonkar Sr Director, Software Engineering

[email protected]

Sept 24, 2013

Page 38: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Edmunds.com

• 170M monthly page views

• 13M monthly unique visitors

• 500 Employees

• Externally Exposed APIs: 175+ apps /month

• 1300+ active developers

Page 39: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Software Delivery Pitfalls

• Longer shelf life of features waiting

for releases

• Lower code readiness confidence

• Recurring code integration issues

• Release qualifications & promotions

were ~ 90+man days

• Business was dependent on

release schedules

Page 40: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Need for CD

We wanted to…

• Be more agile, lean and nimble towards

delivering features to our consumers

• Operate in a proactive and faster manner

• Not compromise quality, stability and

reliability.

Page 41: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Transformation Path

• Only mainline code branch

• Ensure backwards and forwards compatibility

• Keep code in good state

• Avoid code merge

• Reliable, stable automated tests and monitoring

• Automated deployments

Page 42: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

The Difficult

Page 43: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Challenges

• Doing it right

• Automate for scalability and flexibility

• Employ tools – to gain efficiency

• Transition to adoption

• Having automated tests result into higher confidence

• Code compatibility

• Accepting feedback

Page 44: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

• Everything is code • Code need to be production ready all the time

• Remove conflicting or stale dependencies

• Clean up redundant code (feature, dependencies,

code, monitors)

• Let test results define code/feature readiness

• Time is of the essence • Faster running code, sooner feedback

• Build time, test execution time

• Immediate feedback is key - delay is build break!

• Fix-it-now (drop everything) culture • Fixing issues in our work is part of the same day,

same iteration

Critical Success Factors

Page 45: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Critical Success Factors

• Feedback matters, not the mechanism

• Must be followed up with immediate actions i.e.

• Code corrections

• Tests added / fixed / removed

• Deployments scripts fixed, Application

configuration updated

• Feedback Accountability

• Alerts / Monitors are for taking actions

• Feedback improves us, You will get feedback when

you are open

• You can’t improve what you don’t measure

• No tests, no benchmark,

no monitors = no feedback

Page 46: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Workflow

Checkin > static code scanning > unit Tests > code

coverage > build (parallel) > repository > CD invoke

> deploy (parallel)> post deployment checks >smoke

tests > regression tests > compatibility tests > Load

Performance tests > metric monitors > promote >

smoke test > monitor

Page 47: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Check-in Static code

scanning unit tests

code coverage

build(parallel) repository CD

invoke

deploy(parallel) Post deployment

checks

smoke

tests

regression tests

Metric

monitors promote

Smoke

test

monitor

Workflow

Compatibility

tests Load Performance tests

Page 48: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Overview: Environment

CI

DEV QA PROD

Build

Deploy Deploy Deploy

Test/Monitoring

Watch

Outside view: “it’s automation”

Inside view: “it’s confidence”

Continuous Delivery

Page 49: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

We did it, you can too

Page 50: Continuous Delivery - Perforceinfo.perforce.com/rs/perforce/images/Continuous-Delivery-Webinar... · as part of your modern application strategy 2. Assess your current level of maturity,

Jeffrey Hammond: @jhammond

Ajit Zadgaonkar: [email protected]

Mark Warren: @mark_warren