agile australia conference 2011 - devops live accounts- continuous delivery_st

42
LiveAccounts: Continuous Delivery in the Real World Nish Mahanty Lawrence Song

Upload: nishith-mahanty

Post on 15-Jan-2015

146 views

Category:

Technology


1 download

DESCRIPTION

Presentation at Agile Australia 2011 http://www.agileaustralia.com.au/2011/topics-day-one.html#liveaccounts-devops Nish Mahanty - Software Delivery Manager, MYOB » Lawrence Song - Technical Architect, MYOB Live Accounts is an online accounting application. It was a 10 year-old legacy system with complex architecture and no test or build scripts. The manual deployment was quite complex, involving deploying one Java application and three DotNet applications to three windows servers. Over the past six months, MYOB has progressed incrementally from manual build and deploy processes based on Perforce, to CI and semi-automated deployments (using Perforce, Hudson, Maven,) to fully automated delivery (using Go, Git, Rake). This talk summarises that journey, and explores the technical challenges and lessons-learned. MYOB has measured the increase in number of deployments, decrease in deployment issues, and decrease in deployment time over the six months. Developers were working closely with Ops to understand the pain points and automated the deployment process as much as possible to make their lives easier. This talk explains the business problem and how to begin the incremental, iterative, adaptive journey to Continuous Delivery for a complex legacy system, illustrated with data and technical tips. Attendees will discover: » The value argument for Continuous Delivery » Clear steps on how to integrate DevOps and progress on the automation journey » Insights into a common set of tools, with the opportunity for a technical in-depth pros and cons discussion

TRANSCRIPT

Page 1: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

LiveAccounts: Continuous Delivery in the Real World

Nish Mahanty

Lawrence Song

Page 2: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

“Rapidly deliver value to our customers” CTO

Page 3: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Good news journey Quadrupled our feature throughput Shortened our delivery times by 87% Improved team satisfaction Metrics Team empowerment Tools

Page 4: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Just the facts Ma’am

Page 5: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Legacy code

Page 6: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Manual Build

Page 7: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Unpredictability

Page 8: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Distributed team

Page 9: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Real bug?

Page 10: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Late night deployments

Page 11: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Develop Smoke

Functional

Smoke Regression

Smoke

Delivery Value Stream

3 3 1

Prod Staging QA 1 3 0.3

Compile Assemble Package Restore DB Apply DB Changes Deploy Package

Assemble Package Restore DB Apply DB Changes Deploy Package

Assemble Package Apply DB Changes Deploy Package

Dev

Page 12: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Page 13: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Dude, where’s my new feature?

Page 14: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

(and what we don’t)

What we believe in

Page 15: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Code quality

Current Before

Page 16: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Automated functional tests

0

21

56

79

110

132 146

160 173

S O N D J F M A M

# of Scenarios

Page 17: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

60 65 65 65

80 83

93 94 94

S O N D J F M A M

% Coverage

Unit test coverage – new code

Page 18: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Code branches

5

2 1

Before Now Next

Page 19: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Deployment Duration

S O N D J F M

130 98

Page 20: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Cycle Time (Features and Defects)

S O N D J F M

30

9.8

Page 21: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Delivery

Duration

87% faster release

11

1

Page 22: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

How we did it

Page 23: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

One team

Develop Smoke

Functional

Smoke Regression

Smoke 3 3 1

Prod Staging QA 1 3 0.3

Dev

Page 24: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Build a common vision

Page 25: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Common KPIs

Build Trust

Improve Comms

Page 26: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Empower the team to change things

Page 27: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Approach

• Close collaboration

• Incremental

• Data driven

• Automation

• Consensus base

Page 28: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Develop Smoke

Functional

Smoke Regression

Smoke

Development Environment

3 3 1

Prod Staging QA 1 3 0.3

Dev

3 days to set up environment Shared database Shared environment Manual build No continuous integration build

30 min to set up Database change management Development sandbox Automated builds

Page 29: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Evolution, not revolution

Maven Buildr

Hudson Go

Perforce Git

Manual

No CI

Page 30: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Code Quality

• Agreed on coding standards as a team

• Unit Test Code Coverage: Minimum Value 80%

• Cyclomatic Complexity <= 7

• Checkstyle

• JsLint

• Fail a build

Page 31: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Develop Smoke

Functional

Smoke Regression

Smoke

Deployment

3 3 1

Prod Staging QA 1 3 0.3

Dev

3 days to QA environment 20 page checklist 1 day getting prod data to env Similar timeframes for stg/prod Frustrated QAs

30 min to each environment Auto configuration management 1 click deployment 1 click restore prod db

Page 32: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Develop Smoke

Functional

Smoke Regression

Smoke

Testing

3 3 1

Prod Staging QA 1 3 0.3

Dev

4 days (4 QAs) Tedious regression Slow feedback cycle

1 day (2 QAs) Automated functional tests

Page 33: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Behaviour Driven Dev’t by empowered testers

Page 34: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Page 35: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Automated continuous delivery pipeline

Dev Team

Version Control

Build, Test & Assemble

Automated regression test

QA Env & Smoke test

Staging Smoke Test

check in

trigger

Prod & Smoke Test

trigger

feedback

feedback

one click

one click

one click

feedback

feedback

feedback

Page 36: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

What did we learn?

• Automation, Automation, Automation

• Continuous feedback/improvement

• Takes longer to automate for Windows

• Put infrastructure configuration into version control

• Run automated smoke tests for each deployment

Page 37: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Change in value stream times

1 hr 7 hrs 1 hr

Develop Smoke

Functional

Smoke Regression

Smoke 3 3 1

Prod Staging QA

1 3 2 hrs

Dev

30 min 30 min 30 min

Page 38: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Delivery

Duration

87% faster release

11

1

Page 39: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

How you can do it

Page 40: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

How do I sell this to my stakeholders?

Emphasise business benefits

– increased delivery predictability

– shorter time-to-market

– less rework

– lower risk

– lower application total cost of operation

Show them the metrics!

Page 41: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Where do I start?

Team: What’s the major pain point?

Automate manual processes

Measure stuff!

Use experts to accelerate adoption and reduce learning curve

Page 42: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

We’re hiring...

@nishmahanty

[email protected]

@lawrencesong

[email protected]