devops and performance - why, how and best practices - devops meetup sydney

61
DevOps and Performance Why, How & Best Practices @grabnerandi http:// apmblog.compuware.com

Upload: andreas-grabner

Post on 27-Aug-2014

4.292 views

Category:

Technology


0 download

DESCRIPTION

Talk given at DevOps Meetup in Sydney

TRANSCRIPT

Page 1: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

DevOps and PerformanceWhy, How & Best Practices

@grabnerandihttp://apmblog.compuware.com

Page 2: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney
Page 3: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

What you may have heard about Austrians

Page 4: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

And just very recently @ Euro Song Contest

Page 5: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

How we would like the world to see us

Page 6: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

What we are also proud of

Page 7: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

What you should check out …

Page 8: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Tonight we are here for …

Page 9: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Others Call ItThe stuff we did

when we were a Start Up and we All were

Devs, Testers and Ops

Page 10: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Or – The Evolution of Software Engineering

Page 11: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

YOU ARE NOT ALONE: Popularity on Google

Page 12: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

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 13: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

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 14: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney
Page 15: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney
Page 16: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney
Page 17: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney
Page 18: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Testing is Important – and gives Confidence

Page 19: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

But are we ready for “The Real” world?

Page 20: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Measure Performance during the game

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

Minute 1 - 5

Page 21: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Measure Performance during the game

Minute 6 - 35

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

Page 22: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Deep Dive Analysis

Page 23: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Options “To Fix” the situation

Page 24: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Not always a happy ending

Minute 90

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

Page 25: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

FRUSTRATED FANS!!

25

Page 26: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

How does that relate to

Software?

Page 27: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

From Deploy to …

Deploy Promotion/Event Problems Ops Playbook War Room

Timeline

Page 28: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

The “War Room” – back then

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

Page 29: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

The “War Room” – NOW

Facebook – December 2012

Page 30: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

3 Situations on

WHY this happens,

HOW to avoid it

Page 31: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Image taken from https://www.scriptrock.com/blog/devops-whats-hype-about/

Page 32: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

#Disconnected Teams

Page 33: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

“Teamwork” between Dev and Ops

SEV1 Problem in Production

Need access to log files

Where are they? Can’t get them

Need to increase log level

Can’t do! Can’t change config files in prod!

Page 34: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

“Solution”: Implement a Custom “On Demand” Remote Logger

Page 35: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Implementation and Rollout

Implemented Custom Logger

Worked well in Load Testing

Page 36: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

What happened?

~ 1Mio Lock Exceptions in 30 mins

Page 37: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Root Cause: A special WebSphere Setting!

Log Service provides a synchronized log file across ALL JVMs

Log Service provides a synchronized log file across

ALL JVMs

Page 38: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Metrics: # Log Messages, # Exceptions

Share: Same Server Settings

DevOps: Agree on Data for Troubleshooting

Page 39: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

12 000 000 $

Page 40: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

#No “Agile” Deployment

Page 41: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Ad on air

Availability dropped to 0%

Load Spike resulted in Unavailability

Page 42: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Alternative: “GoDaddy goes DevOps”

Response time improved 4x

1h before SuperBowl KickOff

1h after Game ended

Page 43: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Behind the Scenes

Page 44: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Metrics: AvailabilityPage Size, # Objects

# Hosts, # Connections

DevOps: “Feature” Switches

Page 45: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney
Page 46: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

#Push without a Plan

Page 47: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

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 48: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

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 49: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Critical Pages not Optimized!

Browse, Search and Product Info

performs well

… because they don’t follow best practices: 87 Requests, 28

Redirects, …

Critical Pages such as Shopping Cart are very

slow …

Page 50: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

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

# HTTP 3xx, 4xx, 5xx

Dev: Build for MobileTest: Test on MobileOps: Monitor Mobile

Page 51: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney
Page 53: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

#2: 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 54: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

54

#3: Share Results

Page 55: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

#4: 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 Tests ProductionMonitoring

Functional Tests

Page 56: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

#5: Integrate

Page 57: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

If we do all that

CANCELLED

Page 58: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

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

Page 59: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Want MORE of these and more details?

http://apmblog.compuware.com

Page 60: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

Recommended Book

https://itrevolution.wufoo.com/forms/phoenix-project-ebook-offer/

Page 61: DevOps and Performance - Why, How and Best Practices - DevOps Meetup Sydney

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