• No results found

Realizing Continuous Performance Management

N/A
N/A
Protected

Academic year: 2021

Share "Realizing Continuous Performance Management"

Copied!
40
0
0

Loading.... (view fulltext now)

Full text

(1)

Realizing Continuous Performance

Management

Steven Haines

Quest Software

Java Domain Expert

February 14, 2008

Your

logo here

(2)

Agenda

State of the Market

Cost of Mistakes

Test-Driven Development

Continuous Integration

Continuous Performance Management

CPM in Practice

Business Value

(3)

Industry Experts Say…

Forrester Research reports nearly 85 percent of companies with revenue of more

than $1 billion reported incidents of significant application performance problems.

Survey respondents identified the architecture and deployment as the primary

causes of these problems.

-Forrester Research

Medium-sized businesses* are losing an average of 1% of their annual

revenue, or $867K, to downtime. Application outages and degradations are

the biggest sources of downtime, costing these companies $213K annually.

-Infonetics Research

(4)

Impact of Poorly Performing Applications

Business-to-consumer

Direct loss of customer revenue

Loss of confidence

Business-to-business

Loss of reputation

Potential loss of business relationships

Intranet

Loss of productivity

(5)

Cost of Mistakes

Performance problems found later in

production cost almost 10x more to fix…

(6)

Why is the Current State of Testing Failing?

Test suites are written to out-of-date artifacts

Test suites are not comprehensive enough

Test suites are not automated

Not performed regularly

No regression testing

(7)

Test-Driven Development

Test cases must be written prior to

writing code

Test cases written by developers

Each code component must

(8)

Test Suite

Test

Code

Test

Code

Test

Code

Test-Driven Development

Continuous Integration

Source code

Repository

Continuous Performance Management

Picture to show profiling

of a test: JProbe or PAS

type of screen

Profile

Analyze

React

(9)

Test-Driven Development Lifecycle

Add a Test

(10)

Prove

Failure

Add a Test

Test Suite

(11)

Test-Driven Development Lifecycle

Prove

Failure

Add a Test

Implement New

Functionality

Test Suite

(12)

Test-Driven Development Lifecycle

Prove

Failure

Add a Test

Prove

Success

Implement New

Functionality

Test Suite

(13)

Prove

Failure

Re-factor

the Code

Add a Test

Prove

Success

Implement New

Functionality

Test Suite

Test-Driven Development Lifecycle

Shorter Development

Cycles

Limited Debugging

Faster Triaging

Clearly Solved Business

Problems

Confidence in

Deployment

(14)

Continuous Integration

The Challenge

With complicated applications, integration

can take longer than development

The Solution

Integrate after each code check-in

The Tool

(15)

Test Suite

Test

Code

Test

Code

Test

Code

Test-Driven Development

Continuous Integration

Source code

Repository

CI

Server

Build

Test

Publish

Continuous Performance Management

Picture to show profiling

of a test: JProbe or PAS

type of screen

Profile

Analyze

React

(16)

Continuous Integration Lifecycle

Monitors

SourceCode

Repository

Continuous

Integration

Server

(17)

Continuous Integration Lifecycle

Detects New

Check-Ins

Monitors

SourceCode

Repository

Continuous

Integration

Server

(18)

Continuous Integration Lifecycle

Detects New

Check-Ins

Monitors

SourceCode

Repository

Compiles Entire

Application

Continuous

Integration

Server

(19)

Continuous Integration Lifecycle

Detects New

Check-Ins

Monitors

SourceCode

Repository

Runs

Exhaustive

Test Suite

Compiles Entire

Application

Continuous

Integration

Server

(20)

Continuous Integration Lifecycle

Detects New

Check-Ins

Publishes

Build Results

Monitors

SourceCode

Repository

Runs

Exhaustive

Test Suite

• Commit Build

Compiles Entire

Application

Continuous

Integration

Server

Shorter integration

times

Integration issues

resolved as they

occur

Higher quality end

product

(21)

What is Continuous Performance Management?

Challenge in Performance Testing

Time consuming and error prone

because manual

Problems discovered at the end of

development effort often affect

assumptions made at the beginning of a

development effort

Requires re-factoring the architecture

Solution

Performance Management in a

Continuous Integration Environment

Proactive approach

Execute performance tests on every

(22)

Continuous Performance Management (CPM)

• Create additional

Secondary Builds that

implement performance

tests

1.

Performance Unit

Tests

2.

Performance

Integration Tests

• Business case

• Use case scenario

3.

Performance

Stress/Load Tests

Secondary

Build 2

Secondary

Build 3

Secondary

Build 1

CPM

(23)

Test Suite

Test

Code

Test

Code

Test

Code

Test-Driven Development

Continuous Integration

Source code

Repository

CI

Server

Build

Test

Publish

Continuous Performance Management

Profile

Analyze

Repair

(24)

Performance Unit Tests

• Memory

– Lingering Object References

(memory leaks)

– Object cycling

• Performance

– Identify slow running code

• Coverage

– Quantify the percentage of

classes, methods, lines of

code and conditions

(25)

Performance Integration Tests

Performance analysis of a single user

Identify request response times that exceed service-level

agreements

Triage to offending methods and SQL statements

Follow requests across tiers (and across JVMs)

Identify application problems prior to load

Find problems in isolation

Easier to pinpoint root cause

(26)

Performance Stress/Load Tests

Performance analysis under load (multiple users)

Identify request response times that exceed service-level agreements

Triage to offending methods and SQL statements

Follow requests across tiers (and across JVMs)

Validate environmental configuration

Identify resource contentions

Identify scalability problems prior to deployment

Identify environmental configuration issues

Resolve scalability and reliability problems

(27)

Continuous Performance Management Toolset

Continuous Integration Server –

CruiseControl

Build Environment – Apache Ant

Test Bed – JUnit

Load Generator – Apache JMeter

Performance Testing:

Unit tests:

Quest JProbe

(28)

CPM – Too Arduous a Task?

It is a common misconception

that CPM is too risky and time

consuming of an undertaking

We’ve gone through painstaking

efforts to make CPM as easy as

possible to implement

Only requires a handful of build

(29)

CPM In Practice – Performance Unit Tests

Additions to Ant build script to profile all your JUnit tests

Easy to do – can paste on a single slide

<!-- Set location of the JProbe Enterprise Tools -->

<property name="jprobe.enterprisetools.home“ location="c:\jprobe-ent" /> <!-- Define the Pre-processor CLASSPATH -->

<path id="classpath.preprocessor">

<fileset dir="${jprobe.enterprisetools.home}" includes="lib/*.jar"/> </path>

<!-- Execute the preprocessor -->

<java classname="com.javasrc.anttools.JProbePreprocessor"> <sysproperty key="src.dirs" value="${src};${src.test}" />

<sysproperty key="jprobe.home" value="C:\Program Files\JProbe 7.0" />

<sysproperty key="jprobe.build.dest" value="${jprobe.enterprisetools.home}\jprobe.xml" /> <classpath refid="classpath.preprocessor"/>

(30)
(31)
(32)

Performance Unit Testing – Quest JProbe

Three analysis enablers:

Memory

Performance

Coverage

(33)

CPM In Practice – Integration / Load Tests

Additions to Ant build script to launch JMeter

Easy to do – can paste on a single slide

<!-- Import the JMeter task -->

<taskdef name="jmeter“ classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>

<!-- Execute the test script -->

<jmeter jmeterhome="C:\lib\jakarta-jmeter-2.2" testplan="${basedir}/mytests/MyTest.jmx"

resultlog="${basedir}/mytests/MyTestResults.jtl">

<property name="jmeter.save.saveservice.output_format" value="xml" /> </jmeter>

<!-- Generate an HTML Report -->

<xslt in="${basedir}/mytests/MyTestResults.jtl" out="${basedir}/mytests/MyTestResults.html"

(34)

CPM In Practice – Integration / Load Tests

Additions to Ant build script to record a performance session

<property name="pas.home" location="j:\PerformaSure5.0" />

<target name="pas" description= "Start a PerformaSure recording" > <!-- Execute nexusctl --> <exec executable="cmd"> <arg value="/c" /> <arg value="${pas.home}/scripts/nexusctl.cmd" /> <arg value="start-recording" /> <arg value="-user" /> <arg value="user" /> <arg value="-l" /> <arg value="30m" /> <arg value="-t" /> <arg value="10s" /> <arg value="-f" /> </exec>

(35)

Performance Integration/Load Testing – Quest PerformaSure

Quest Management Server

(36)
(37)

Business Value

Benefits

Reduce R&D and QA time in

performance testing

Better performing applications

Results

Faster time-to-market = more time to

add features that give you a

competitive advantage over your

competition

Higher quality applications = higher

(38)

Next Steps…

Download one of my whitepapers from

www.quest.com

under Application

Management, solutions for Java:

Extending the Continuous Integration Environment with Performance

Testing (Part 1)

Achieving Continuous Performance Management (Part II)

Best Practices in Java Environment Performance Testing

A Formal Performance Tuning Methodology: Wait-Based Tuning

Sign up for my upcoming “Java Performance Winner’s Circle” webcast

series on performance testing, tuning, and management at

www.quest.com

under Application Management, solutions for Java (starts in March 2008)

Watch my Continuous Integration OnSoftware Video Podcast on

www.informit.com

(or iTunes)

Read my forthcoming digital shortcut book, Agile Java Development with

(39)

Next Steps cont’d…

Quest Software Product Information:

JProbe –

www.quest.com/jprobe

PerformaSure –

www.quest.com/performasure

Other Resources:

JProbe Live Product Demo –

www.quest.com/events

PerformaSure Product Demand –

www.quest.com/performasure

Contact Quest Software Sales:

(40)

State of the Market

Test-Driven Development

Continuous Integration

Continuous Performance Management

CPM in Practice

Business Value

Next Steps…

Thank You -- Q&A

References

Related documents

Therefore, in this case the increase in information to a select group of buyers results in lower total welfare than the standard lemons market, as the same number of low quality

On the other hand field data plots showed high amplitude due to the variance between the DE and NDE response by 23 um to 25 um , such results show that the used numerical

Logistic regression analysis (Chan, 2005) was used to study associations of salivary IL-17A and IL- 1β concentrations with different periodontal health stat e ( I ), salivary

In this paper, a new chaotic encryption framework is proposed for palmprint data based on fractional wavelet packet transform (FrWPT), chaotic map and Hessenberg decomposition..

The inexplicable thing about this is that the balls are solid ivory, which fact the conjurer takes care to impress upon the onlookers by taking one of the three with his disengaged

Igualmente, este estudio analiza los conflictos sociales en los municipios del área de influencia de Santurbán y re- salta la confrontación entre el modelo de desarrollo del

The Relationship of Red-Cell Distribution Width and Carotid Intima Media in Chronic Kidney Disease.. Kronik Böbrek Yetmezliği Hastalarında Kırmızı Küre Dağılım Hacmi ve

Recurrent programmes (excl. Reruns, sports events, programmes aired less than 3 times, programmes shorter than 3 minutes)... guests in DVR- or IPTV-households,