sydney continuous delivery meetup may 2014

62
Performance Quality Metrics along CD Pipeline @grabnerandi http:// apmblog.compuware.com

Upload: andreas-grabner

Post on 10-May-2015

574 views

Category:

Software


1 download

DESCRIPTION

I gave this presentation at the Sydney Continuous Delivery Meetup Group. The main goal was to talk about Performance Metrics that you should monitor along the pipeline. I examples in 4 different areas where deployments failed and how metrics would have helped preventing these problems

TRANSCRIPT

Page 1: Sydney Continuous Delivery Meetup May 2014

Performance Quality Metrics along CD

Pipeline@grabnerandi

http://apmblog.compuware.com

Page 2: Sydney Continuous Delivery Meetup May 2014
Page 3: Sydney Continuous Delivery Meetup May 2014
Page 4: Sydney Continuous Delivery Meetup May 2014
Page 5: Sydney Continuous Delivery Meetup May 2014
Page 6: Sydney Continuous Delivery Meetup May 2014

And just very recently @ Euro Song Contest

Page 7: Sydney Continuous Delivery Meetup May 2014
Page 8: Sydney Continuous Delivery Meetup May 2014

What you should check out …

Page 9: Sydney Continuous Delivery Meetup May 2014

Tonight we are here for …

Commit Stage• Compile• Execute Unit Test• Code Analysis• Build installers

Automated Acceptance

Testing

Automated Capacity Testing

Manual testing• Key showcases• Exploratory testing Release

Cont. Delivery / Deploy

Page 10: Sydney Continuous Delivery Meetup May 2014

Or – The Evolution of Software Engineering

Page 11: Sydney Continuous Delivery Meetup May 2014

Who is doing it? How many successful deployments can they do?

300 Deployments / Year

50-60 Deployments / Day

10+ Deployments / Day

Every 11.6 seconds

Page 12: Sydney Continuous Delivery Meetup May 2014

More on Amazons Story

75% fewer outages since 2006

90% fewer outage minutes

~0.001% of deployments cause a problem

Instantaneous automatic rollback

Deploying every 11.6s

Page 13: Sydney Continuous Delivery Meetup May 2014
Page 14: Sydney Continuous Delivery Meetup May 2014
Page 15: Sydney Continuous Delivery Meetup May 2014
Page 16: Sydney Continuous Delivery Meetup May 2014

Testing is Important – and gives Confidence

Page 17: Sydney Continuous Delivery Meetup May 2014

But are we ready for “The Real” world?

Page 18: Sydney Continuous Delivery Meetup May 2014

Measure Performance during the game

Ball Possession: 40 : 60Fouls: 0 : 0Score: 0 : 0

Minute 1 - 5

Page 19: Sydney Continuous Delivery Meetup May 2014

Measure Performance during the game

Minute 6 - 35

Ball Possession: 80 : 20Fouls: 2 : 12Score: 0 : 0

Page 20: Sydney Continuous Delivery Meetup May 2014

Deep Dive Analysis

Page 21: Sydney Continuous Delivery Meetup May 2014

Options “To Fix” the situation

Page 22: Sydney Continuous Delivery Meetup May 2014

Not always a happy ending

Minute 90

Ball Possession: 80 : 20Fouls: 4 : 25Score: 3 : 0

Page 23: Sydney Continuous Delivery Meetup May 2014

FRUSTRATED FANS!!

23

Page 24: Sydney Continuous Delivery Meetup May 2014

How does that relate to

Software?

How does that relate to

Software?

Page 25: Sydney Continuous Delivery Meetup May 2014

From Deploy to …

Deploy Promotion/Event Problems Ops Playbook War Room

Timeline

Page 26: Sydney Continuous Delivery Meetup May 2014

The “War Room” – back then

'Houston, we have a problem‘NASA Mission Control Center, Apollo 13, 1970

The “War Room” – back then

'Houston, we have a problem‘NASA Mission Control Center, Apollo 13, 1970

Page 27: Sydney Continuous Delivery Meetup May 2014

The “War Room” – NOW

Facebook – December 2012

The “War Room” – NOW

Facebook – December 2012

Page 28: Sydney Continuous Delivery Meetup May 2014

4 Situations on

WHY this happens,

HOW to avoid it

4 Situations on

WHY this happens,

HOW to avoid it

Page 29: Sydney Continuous Delivery Meetup May 2014
Page 30: Sydney Continuous Delivery Meetup May 2014

“Blindly” (Re)use Existing

Components

Page 31: Sydney Continuous Delivery Meetup May 2014

Requirement: We need a report

Page 32: Sydney Continuous Delivery Meetup May 2014

Using Hibernate results in 4k+ SQL Statements to display 3 items!

Hibernate Executes 4k+ Statements

Individual Execution VERY

FAST

But Total SUM takes 6s

Page 33: Sydney Continuous Delivery Meetup May 2014

Requirement: We need a fancy UI

Page 34: Sydney Continuous Delivery Meetup May 2014

Using Telerik Controls Results in 9s for Data-Binding of UI Controls

#1: Slow Stored ProcedureDepending on Request

execution time of this SP varies between 1 and 7.5s

#2: 240! Similar SQL StatementsMost of these 240! Statements are

not prepared and just differ in things like Column Names

Page 35: Sydney Continuous Delivery Meetup May 2014

Metrics: # Total SQLs# SQLs / Web Request# Same SQLs / Request

Transferred Rows

Test: With realistic Data

Dev: “Learn” Frameworks

Page 36: Sydney Continuous Delivery Meetup May 2014
Page 37: Sydney Continuous Delivery Meetup May 2014

Implementation Flaws

Page 39: Sydney Continuous Delivery Meetup May 2014

Solution: Cache to the RESCUE!!

Page 40: Sydney Continuous Delivery Meetup May 2014

Implementation and Rollout

Implemented InMemory Cache

Worked well in Load Testing

Page 41: Sydney Continuous Delivery Meetup May 2014

Result: Out of Memory Crashes!!

Still crashes

Problem fixed!Fixed Version Deployed

Page 42: Sydney Continuous Delivery Meetup May 2014

Metrics: Heap Size, # Objects Allocated,# Objects in Cache

Cache Hit Ratio

Test: With realistic Data

Page 43: Sydney Continuous Delivery Meetup May 2014

12 000 000 $

Page 44: Sydney Continuous Delivery Meetup May 2014

#No “Agile” Deployment

Page 45: Sydney Continuous Delivery Meetup May 2014

Ad on air

Availability dropped to 0%

Load Spike resulted in Unavailability

Page 46: Sydney Continuous Delivery Meetup May 2014

Alternative: “GoDaddy goes DevOps”

Response time improved 4x

1h before SuperBowl KickOff

1h after Game ended

Page 47: Sydney Continuous Delivery Meetup May 2014

Behind the Scenes

Page 48: Sydney Continuous Delivery Meetup May 2014

Metrics: AvailabilityPage Size, # Objects

# Hosts, # Connections

DevOps: “Feature” Switches

Page 49: Sydney Continuous Delivery Meetup May 2014
Page 50: Sydney Continuous Delivery Meetup May 2014

#Push without a Plan

Page 51: Sydney Continuous Delivery Meetup May 2014

Mobile Landing Page of Super Bowl Ad

434 Resources in total on that page:230 JPEGs, 75 PNGs, 50 GIFs, …

Total size of ~ 20MB

Page 52: Sydney Continuous Delivery Meetup May 2014

m.store.com redirects to www.store.com

ALL CSS and JS files are redirected to the www domain

This is a lot of time “wasted” especially on high latency mobile

connections

Page 53: Sydney Continuous Delivery Meetup May 2014

Metrics: Load Time, # Resources (Images, …),

# HTTP 3xx, 4xx, 5xx

Dev: Build for Mobile

Test: Test on Mobile

Ops: Monitor Mobile

Page 54: Sydney Continuous Delivery Meetup May 2014
Page 55: Sydney Continuous Delivery Meetup May 2014

#1: Define Measures# of Requests / User

# of Log Messages

# of Exceptions

# Objects Allocated

# Objects In Cache

Cache Hit Ratio

# of Images

# of SQLs

# SQLs per RequestAvailability

# HTTP 3xx, 4xx

Page Size

Page 56: Sydney Continuous Delivery Meetup May 2014

#2: Automate

Commit Stage• Compile• Execute Unit Test• Code Analysis• Build installers

Automated Acceptance

Testing

Automated Capacity Testing

Manual testing• Key showcases• Exploratory testing Release

Unit & Integration Tests

Functional Tests

Performance TestsProductionMonitoring

Functional Tests

Page 57: Sydney Continuous Delivery Meetup May 2014

57

#3: Share Results

Page 58: Sydney Continuous Delivery Meetup May 2014

#4: Integrate

Page 59: Sydney Continuous Delivery Meetup May 2014

If we do all that

CANCELLED

Page 60: Sydney Continuous Delivery Meetup May 2014

Which gives you more time for the real important things in life …

Page 61: Sydney Continuous Delivery Meetup May 2014

Want MORE of these and more details?

http://apmblog.compuware.com

Page 62: Sydney Continuous Delivery Meetup May 2014

FREE Products & More Info

• dynaTrace Enterprise– Full End-to-End Visibility in your Java, .NET, PHP Apps

– Sign up for a 15 Days Free Trial on http://compuwareapm.com

• dynaTrace AJAX Edition– Browser Diagnostics for IE + FF

– Download @ http://ajax.dynatrace.com

• Our Blog: http://apmblog.compuware.com