continuous architecture validationecsa2014.cs.univie.ac.at/industryday/ecsa2014... · continuous...

35
1 1 CONTINUOUS ARCHITECTURE VALIDATION Wolfgang Wolfgang Wolfgang Wolfgang Gottesheim Gottesheim Gottesheim Gottesheim Compuware APM Compuware APM Compuware APM Compuware APM

Upload: others

Post on 11-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

11

CONTINUOUS

ARCHITECTURE

VALIDATION

Wolfgang Wolfgang Wolfgang Wolfgang GottesheimGottesheimGottesheimGottesheim

Compuware APMCompuware APMCompuware APMCompuware APM

Page 2: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

22

Compuware?Compuware?Compuware?Compuware?Compuware?Compuware?Compuware?Compuware?

+

=

Page 3: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

33

Business

User Experience

Service Level Mgmt.

Impact Analysis

Transaction Types

Conversions

Deep

Code-Level

Context Information

Full Coverage

24x7 Transaction Tracing

All Transactions & Users

End-to-end

transaction capture

Across Java, .NET, PHP, Mainframe, NGINX,...

What We DoWhat We DoWhat We DoWhat We DoWhat We DoWhat We DoWhat We DoWhat We Do

Page 4: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

44

Why do we care about architectures?

Page 5: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

55

End User

Experience

Runtime Application

Architecture

Business TransactionsComponent Monitoring

Analytics/

Reporting Application

Performance

Management

Page 6: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

66

Runtime Application ArchitectureRuntime Application ArchitectureRuntime Application ArchitectureRuntime Application ArchitectureRuntime Application ArchitectureRuntime Application ArchitectureRuntime Application ArchitectureRuntime Application Architecture

…from a performance angle

»Understand relations and dependencies at runtime

»Raise awareness for performance impact of architectural problems among developers, testers, operators

»Help with the identification and resolution of architectural problems

»How does architecture relate to performance issues?

Page 7: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

77

The Problems We SolveThe Problems We SolveThe Problems We SolveThe Problems We SolveThe Problems We SolveThe Problems We SolveThe Problems We SolveThe Problems We Solve

Page 8: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

88

What We Often SeeWhat We Often SeeWhat We Often SeeWhat We Often SeeWhat We Often SeeWhat We Often SeeWhat We Often SeeWhat We Often See

"I couldn't help but notice your pain."

"My pain?"

"It runs deep. Share it with me!"

(Star Trek V)

»Performance is not a band aid you can stickon your application

»Architecture has enormous influence on performance

� You have to make sure your architecture supports your performance requirements!

Page 9: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

99

How does your architecture become a problem for

performance?

Page 10: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

1010

#1: Chatty Components#1: Chatty Components#1: Chatty Components#1: Chatty Components#1: Chatty Components#1: Chatty Components#1: Chatty Components#1: Chatty Components

Page 11: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

1111

#2: Implementation Flaws#2: Implementation Flaws#2: Implementation Flaws#2: Implementation Flaws#2: Implementation Flaws#2: Implementation Flaws#2: Implementation Flaws#2: Implementation Flaws

Front End

(Web)

Business

Logic

(JBoss) Common Services (JBoss)

Payment (.NET)

Oracle

MSSQL

Page 12: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

1212

#3: Too Many Database Calls#3: Too Many Database Calls#3: Too Many Database Calls#3: Too Many Database Calls#3: Too Many Database Calls#3: Too Many Database Calls#3: Too Many Database Calls#3: Too Many Database Calls

Page 13: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

1313

#3: Too #3: Too #3: Too #3: Too Many Database CallsMany Database CallsMany Database CallsMany Database Calls#3: Too #3: Too #3: Too #3: Too Many Database CallsMany Database CallsMany Database CallsMany Database Calls

Page 14: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

1414

#4: Architecture affected by Deployment#4: Architecture affected by Deployment#4: Architecture affected by Deployment#4: Architecture affected by Deployment#4: Architecture affected by Deployment#4: Architecture affected by Deployment#4: Architecture affected by Deployment#4: Architecture affected by Deployment

Page 15: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

1515

#5: “Falling Dominoes”#5: “Falling Dominoes”#5: “Falling Dominoes”#5: “Falling Dominoes”#5: “Falling Dominoes”#5: “Falling Dominoes”#5: “Falling Dominoes”#5: “Falling Dominoes”

Request dispatched

to first server

Request takes longer than 30sec

� Load balancer repeats request

to second server

Second server issues same

DB queries � stalls with DB lock

Application down

Smith, C. U., & Williams, L. G. (2003). More new software performance antipatterns: Even more ways to shoot yourself in the foot. In Computer Measurement Group Conference (pp. 717-725).

Page 16: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

1616

#6: Unnecessary work#6: Unnecessary work#6: Unnecessary work#6: Unnecessary work#6: Unnecessary work#6: Unnecessary work#6: Unnecessary work#6: Unnecessary work

Caching framework updates content that is never used

Page 17: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

1717

#7: “More is Less”#7: “More is Less”#7: “More is Less”#7: “More is Less”#7: “More is Less”#7: “More is Less”#7: “More is Less”#7: “More is Less”

Smith, C. U., & Williams, L. G. (2003). More new software performance antipatterns: Even more ways to shoot yourself in the foot. In Computer Measurement Group Conference (pp. 717-725).

Too many workerToo many workerToo many workerToo many workerthreads for available DB connectionsthreads for available DB connectionsthreads for available DB connectionsthreads for available DB connections

Page 18: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

1818

What can we do?

Page 19: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

1919

Who Cares About Performance?Who Cares About Performance?Who Cares About Performance?Who Cares About Performance?Who Cares About Performance?Who Cares About Performance?Who Cares About Performance?Who Cares About Performance?

Developers?

Architects?

Testers?

Operators?

Business?

Page 20: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

2020

Everone!Everone!Everone!Everone!Everone!Everone!Everone!Everone!

Developers

Architects

Testers

Operators

Business

Page 21: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

2121

But remember:

Page 22: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

2222

Monitor Architecture Across the LifecycleMonitor Architecture Across the LifecycleMonitor Architecture Across the LifecycleMonitor Architecture Across the LifecycleMonitor Architecture Across the LifecycleMonitor Architecture Across the LifecycleMonitor Architecture Across the LifecycleMonitor Architecture Across the Lifecycle

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

Page 23: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

2323

Page 24: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

2424

Define Architectural KPIs Define Architectural KPIs Define Architectural KPIs Define Architectural KPIs accepted by all teamsaccepted by all teamsaccepted by all teamsaccepted by all teamsDefine Architectural KPIs Define Architectural KPIs Define Architectural KPIs Define Architectural KPIs accepted by all teamsaccepted by all teamsaccepted by all teamsaccepted by all teams

# of SQL Executions

# of Log Lines

MBs / Uses

Response Times# of Web Service Calls

Page 25: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

2525

ReleaseReleaseAcceptance

Testing

Acceptance

TestingUnit TestingUnit TestingPerformance

Testing

Performance

Testing

How?How?How?How?How?How?How?How?

Monitor Tests

Analyze Results

Integrate with Build Infrastructure

Page 26: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

2626

Monitor Automated TestsMonitor Automated TestsMonitor Automated TestsMonitor Automated TestsMonitor Automated TestsMonitor Automated TestsMonitor Automated TestsMonitor Automated Tests

dynaTraceServer

set meta information for tests

(version, build,…)

collect results

Page 27: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

2727

Analyze Analyze Analyze Analyze ResultsResultsResultsResultsAnalyze Analyze Analyze Analyze ResultsResultsResultsResults

Automatic Baseline

• Architecural validation• # of DB calls• # Exceptions

• Response time of tests• Method hotspots

• No need to definethresholds manually

• Identify tests that arenot normal

Test Automation Dashlet

• Analyze tests• Compare tests• Configure alerting

TestersDevelopers Operators

Page 28: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

2828

Continuous Performance ValidationContinuous Performance ValidationContinuous Performance ValidationContinuous Performance ValidationContinuous Performance ValidationContinuous Performance ValidationContinuous Performance ValidationContinuous Performance Validation

12 0

3 1

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

12 0

3 1

12 5

3 1

75 0

3 1

Test Framework Results Architectural Data

We identified a regresesion

Problem solved

Lets look behind the scenes

Exceptions probably reason for failed testsProblem fixed but now we have an

architectural regressionNow we have the functional and architectural confidence

Page 29: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

2929

Performance Focus in Test AutomationPerformance Focus in Test AutomationPerformance Focus in Test AutomationPerformance Focus in Test AutomationPerformance Focus in Test AutomationPerformance Focus in Test AutomationPerformance Focus in Test AutomationPerformance Focus in Test Automation

Analyzing All Unit / Performance Tests

Analyzing Metrics Analyzing Metrics such as DB Exec

Count

Jump in DB Callsfrom one Build to the

next

Page 30: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

3030

Performance Focus in Test AutomationPerformance Focus in Test AutomationPerformance Focus in Test AutomationPerformance Focus in Test AutomationPerformance Focus in Test AutomationPerformance Focus in Test AutomationPerformance Focus in Test AutomationPerformance Focus in Test Automation

Embed your Architectural Results

in Jenkins

Page 31: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

3131

Performance Focus in Test AutomationPerformance Focus in Test AutomationPerformance Focus in Test AutomationPerformance Focus in Test AutomationPerformance Focus in Test AutomationPerformance Focus in Test AutomationPerformance 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 32: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

3232

Sequence Diagram GenerationSequence Diagram GenerationSequence Diagram GenerationSequence Diagram GenerationSequence Diagram GenerationSequence Diagram GenerationSequence Diagram GenerationSequence Diagram Generation

Page 33: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

3333

Check out our trial

http://bit.ly/dtecsa2014

Page 34: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

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

34

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 35: CONTINUOUS ARCHITECTURE VALIDATIONecsa2014.cs.univie.ac.at/industryday/ECSA2014... · Continuous Performance Validation 12 0 3 1 Build 20 testPurchase OK testSearch OK Build 17 testPurchase

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

35 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE