+ All Categories
Home > Technology > OOP 2014 - Lifecycle By Design

OOP 2014 - Lifecycle By Design

Date post: 10-May-2015
Category:
Upload: wolfgang-gottesheim
View: 269 times
Download: 2 times
Share this document with a friend
Description:
Performance is a key aspect when developing an application, but for developers, production performance usually is a black box. When production problems arise, a lack of insight into log files and performance metrics forces us to reproduce issues locally before we can start to tackle the root cause. Using real world examples, we show how a unified performance management platform helps teams across the lifecycle to monitor applications, detect problems early on, and collect data that enables developers to efficiently solve problems.
Popular Tags:
37
1 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE LIFECYCLE BY DESIGN Enabling Collaboration across Development, Test and Production Teams Wolfgang Gottesheim
Transcript
Page 1: OOP 2014 - Lifecycle By Design

11

COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE

LIFECYCLE BY DESIGN

Enabling Collaboration across Development, Test and Production Teams

Wolfgang Gottesheim

Page 2: OOP 2014 - Lifecycle By Design

22

Application Lifecycle Management…?Application Lifecycle Management…?

Page 3: OOP 2014 - Lifecycle By Design

33

Application Lifecycle ManagementApplication Lifecycle Management

Application lifecycle management (ALM) is the product lifecycle management (governance, development, and maintenance) of application software. It encompasses requirements management, software architecture, computer programming, software testing, software maintenance, change management, project management, and release management.

Source: http://en.wikipedia.org/wiki/Application_lifecycle_managementaccessed Dec 16, 2013

Page 4: OOP 2014 - Lifecycle By Design

44

The Application LifecycleThe Application Lifecycle

Source: http://www.teamquest.com/solutions/itil/application-management/

Page 5: OOP 2014 - Lifecycle By Design

55

Project deliverablesProject deliverables

…and what you get…and what you get

What you set out to build…What you set out to build…

Page 6: OOP 2014 - Lifecycle By Design

66

What we tried to do…What we tried to do…

• Update our Customer Self-Service Portal

Page 7: OOP 2014 - Lifecycle By Design

77

Our (Business) RequirementsOur (Business) Requirements

• “Provide a modern user experience”

– aka “Get the Community from Web 1.0 to Web 2.0”

– New features: AJAXified editors, Popups when someone else is editing the same page, notifications about new comments, auto refresh in the background,…

Page 8: OOP 2014 - Lifecycle By Design

88

What went wrong?

Our mistakes: We left PERFORMANCE outWe thought about new features instead of thinking about the user experience

Page 9: OOP 2014 - Lifecycle By Design

99

Page 10: OOP 2014 - Lifecycle By Design

1010

DesignDesign

• We wanted to continue using Confluence

– 3rd party software major design decisions made elsewhere

– Extended by custom plugins ensure compatibility

• Our mistake: assuming that resource usage will remain stable in the new version

Page 11: OOP 2014 - Lifecycle By Design

1111

Build/Integrate/TestBuild/Integrate/Test

• Testing was focused on FUNCTIONALITY

– “Does the site work as expected?”

– Tests in small-scale staging environment some findings disregarded because of environmental differences

• Our mistake: we didn’t test from the end-user perspective in a realistic environment

Page 12: OOP 2014 - Lifecycle By Design

1212

DeployDeploy

• Actual rollout was documented and well-tested in staging environment

• Also part of deployment phase: User Training

– We thought the new features are so obvious that people will find them

• Our mistake: we didn’t make sure that features are accessible

Page 13: OOP 2014 - Lifecycle By Design

1313

OperateOperate

• Mistakes we made earlier added up…

– Slow response times

– High resource usage (CPU, memory)

– Timeouts

– Crashes

– User complaints

• Blame it on IT?

Page 14: OOP 2014 - Lifecycle By Design

1414

What problems did we see?

Page 15: OOP 2014 - Lifecycle By Design

1515

Resource Pool ExhaustionResource Pool Exhaustion

Page 16: OOP 2014 - Lifecycle By Design

1616

Compatibility Issues with custom pluginsCompatibility Issues with custom plugins

Page 17: OOP 2014 - Lifecycle By Design

1717

Requesting too much data from DBRequesting too much data from DB

Page 18: OOP 2014 - Lifecycle By Design

1818

Oversized PagesOversized Pages

17! JS Files – 1.7MB in Size

Useless Information!Even might be a security risk!

Page 19: OOP 2014 - Lifecycle By Design

1919

CachesCaches

62! Resources not cached

49! Resources with short expiration

Page 20: OOP 2014 - Lifecycle By Design

2020

3rd Party Content3rd Party Content

Page 21: OOP 2014 - Lifecycle By Design

2121

Page 22: OOP 2014 - Lifecycle By Design

2222

OptimizeOptimize

• Monitor the impact of new features on server-side performance and end-user experience

• Monitor actual usage and consider tradeoff between performance and features

• Our success: after rollout, we were able to identify the bottlenecks and make necessary changes

Page 23: OOP 2014 - Lifecycle By Design

2323

Page 24: OOP 2014 - Lifecycle By Design

2424

Very “expensive” to work on these issuesVery “expensive” to work on these issues

~80% of problems

caused by ~20% patterns

YES we know this

BUT

Page 25: OOP 2014 - Lifecycle By Design

2525

Lots of Problems that could have been avoidedLots of Problems that could have been avoided

• BUT WHY are we still dragging them along across the lifecycle – up into production?

?

Page 26: OOP 2014 - Lifecycle By Design

2626

Requirements EXCLUDED in Stories / TasksRequirements EXCLUDED in Stories / Tasks

PerformancePerformance ScalabilityScalability

TestabilityTestability

DeployabilityDeployability

DeployabilityDeployability

Page 27: OOP 2014 - Lifecycle By Design

2727

Test and Ops EXCLUDED from Agile ProcessTest and Ops EXCLUDED from Agile Process

Stand-UpsStand-Ups Sharing ToolsSharing Tools

FeedbackFeedback

Page 28: OOP 2014 - Lifecycle By Design

2828

Automation EXCLUDESAutomation EXCLUDES

PerformancePerformance ScalabilityScalability

Shared ToolsShared Tools Automatic FeedbackAutomatic Feedback

Page 29: OOP 2014 - Lifecycle By Design

2929

Measurement: Define KPIs accepted by all teamsMeasurement: Define KPIs accepted by all teams

# of SQL Executions

# of Log Lines

MBs / Uses

Time for Deployment

Time for Rollback

Response TimesPerf Test Code Coverage

Page 30: OOP 2014 - Lifecycle By Design

3030

DevOps Automation in ActionDevOps Automation in Action

• Most problems can be identified in CI

12 0 120ms

3 1 68ms

Build 20 testPurchase OK

testSearch OK

Build 17 testPurchase OK

testSearch OK

Build 18 testPurchase FAILED

testSearch OK

Build 19 testPurchase OK

testSearch OK

Build # Test Case Status # SQL # Excep CPU

12 0 120ms

3 1 68ms

12 5 60ms

3 1 68ms

75 0 230ms

3 1 68ms

Test Framework Results Architectural Data

We identified a regresesion

Problem solved

Lets look behind the scenes

Exceptions probably reason for failed tests

Problem fixed but now we have an architectural regression

Problem fixed but now we have an architectural regression

Now we have the functional and architectural confidence

Page 31: OOP 2014 - Lifecycle By Design

3131

Performance Focus in Test AutomationPerformance Focus in Test Automation

Analyzing All Unit / Performance Tests

Analyzing Metrics such as DB Exec

Count

Jump in DB Callsfrom one Build to the next

Page 32: OOP 2014 - Lifecycle By Design

3232

Performance Focus in Test AutomationPerformance Focus in Test Automation

Cross Impact of KPIs

Page 33: OOP 2014 - Lifecycle By Design

3333

Performance Focus in Test AutomationPerformance Focus in Test Automation

Embed your Architectural Results in Jenkins

Page 34: OOP 2014 - Lifecycle By Design

3434

Performance Focus in Test AutomationPerformance Focus in Test Automation

Here is the difference!

Compare Build that shows BAD Behavior! With Build that shows GOOD Behavior!

Page 35: OOP 2014 - Lifecycle By Design

3535

Performance Focus in Test AutomationPerformance Focus in Test Automation

CalculateUserStats is the new Plugin that causes problems

Page 36: OOP 2014 - Lifecycle By Design

36© 2011 Compuware Corporation — All Rights Reserved © 2011 Compuware Corporation — All Rights Reserved

36

Participate in Compuware APM Discussion Forumsapmcommunity.compuware.com

Like us on Facebookfacebook.com/CompuwareAPM

Join our LinkedIn groupCompuware APM User Group

Follow us on Twittertwitter.com/CompuwareAPM

Read our Bloghttp://apmblog.compuware.com

Watch our Videos & product Demosyoutube.com/Compuware

www.compuware.com/APM

Thank YouThank You

Page 37: OOP 2014 - Lifecycle By Design

37© 2011 Compuware Corporation — All Rights Reserved © 2011 Compuware Corporation — All Rights Reserved

37 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE


Recommended