guaranteeing performance throughout the development lifecycle

34
Guaranteeing Performance Throughout The Development Lifecycle Steven Haines J2EE Architect and Evangelist Quest Software

Upload: jackie72

Post on 22-May-2015

369 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Guaranteeing Performance Throughout The Development Lifecycle

Guaranteeing Performance Throughout The Development Lifecycle

Steven Haines

J2EE Architect and Evangelist

Quest Software

Page 2: Guaranteeing Performance Throughout The Development Lifecycle

Agenda

• Speaker introduction• Understanding the importance of

performance in J2EE custom applications• Overview of the processes that can ensure

performance for your users• Performance considerations in development,

testing and production• Introducing the Performance Management

Suite• Questions & Answers

Page 3: Guaranteeing Performance Throughout The Development Lifecycle

Speaker Introduction J2EE Architect and Evangelist for Quest Software Author of Java 2 Primer Plus and Java 2 From

Scratch Co-Author of Java Web Services Unleashed Java Host and columnist on InformIT.com (Pearson

Education) Java Instructor at the University of California, Irvine

(UCI) and previously Learning Tree University (LTU) Recruited as a J2EE architect in the “real world”

Page 4: Guaranteeing Performance Throughout The Development Lifecycle

The Importance of Performance in J2EE Custom Applications

Page 5: Guaranteeing Performance Throughout The Development Lifecycle

J2EE Performance in the Market

Customers demand performance and scalability from your J2EE systems

80% of production J2EE applications don’t meet their performance requirements

This can jeopardize your business through lost revenue from e-business sales or lost confidence (and partnerships) from B2B site failures

Page 6: Guaranteeing Performance Throughout The Development Lifecycle

J2EE Performance in the Market

Companies are beginning to understand that performance and scalability are problems that must be avoided early on in the cycle

Performance Management software for J2EE is one of the hottest segments of the market

However even with tools many feel overwhelmed

Page 7: Guaranteeing Performance Throughout The Development Lifecycle

Why Is It So Overwhelming?

J2EE is easy to learn and quick to develop This has increased its popularity and means

bigger, more complex and interrelated systems Architecture neutrality means apps need to work

in difficult and disparate environments Frameworks add black-box areas to your

application– Frameworks upon frameworks

– Performance and scalability is often unknown

Page 8: Guaranteeing Performance Throughout The Development Lifecycle

J2EE Layered Execution Model

Page 9: Guaranteeing Performance Throughout The Development Lifecycle

J2EE Layered Execution Model

Page 10: Guaranteeing Performance Throughout The Development Lifecycle

The Performance StakeholdersWhat code is behind the symptom?

Is the application architecture a problem?

What component is at fault?

Who should fix the problem?

?Which SQL statements need tuning?

Is the DB really the problem?

? Is the application available?

Is the app server configured correctly?

?

?

Page 11: Guaranteeing Performance Throughout The Development Lifecycle

The Challenge: Ensuring Application Performance

Requires two things:

1. A systematic approach to detect the problem, correctly diagnose the root cause and resolve the issue in a timely manner

2. An integrated tool set to provide detection of performance problems, power diagnostic capabilities, and quick resolution of problems once diagnosed

Page 12: Guaranteeing Performance Throughout The Development Lifecycle

Performance From Start to Finish: General Guidelines

Page 13: Guaranteeing Performance Throughout The Development Lifecycle

Understand What Performance Is

Web Page Response Time Application Server Resource Utilization JVM Heap Utilization System Resource Utilization Database Resource Utilization Network Activity

Page 14: Guaranteeing Performance Throughout The Development Lifecycle

Know Your Users

What do they expect? What Inconveniences them? What can they realistically put up with?

Page 15: Guaranteeing Performance Throughout The Development Lifecycle

Build Your Knowledge Base

Learn outside your comfort zone Keep notes, review them periodically and

develop wisdom

Page 16: Guaranteeing Performance Throughout The Development Lifecycle

Methodology

Establish performance criteria for successful applications– E.g. with 100 users, response time should be less than five seconds

Measure application performance throughout the development process

Open lines of communication between all domain experts– Application Architects, Developers, Testers, Database Administrators,

System Administrators and Application Owners all have a role to play

– If they aren’t communicating effectively it will effect your application

Build application performance into your development process

Page 17: Guaranteeing Performance Throughout The Development Lifecycle

Know How Tools Can Help

Use Monitoring Tools to detect problems early– Before your users start complaining!

Use Diagnostic Tools to quickly locate the problem– Drill down to the root cause of the problem

– Measure the effect of the problem

Use Resolution Tools to isolate and fix the problem– Which line of Java code? Which SQL call? Which system resource?

– Measure the performance of changes designed to resolve the problem

– Did the fix have have the desired effect?

Simplify the Detection, Diagnosis and Resolution of application problems

Page 18: Guaranteeing Performance Throughout The Development Lifecycle

Performance From Start to Finish: Specific Suggestions

Page 19: Guaranteeing Performance Throughout The Development Lifecycle

Get a Head-Start

Define what you mean by performance Setting performance SLAs

– Specific

– Realistic

– Flexible

Collaborate with parties responsible for ensuring SLAs

Page 20: Guaranteeing Performance Throughout The Development Lifecycle

Avoid Problems with Early Detail

Explicit design documents that include an understanding of:– When objects are to be created

– The duration of their usefulness

– The point at which they should be eliminated

You can’t be too explicit about your requirements

Page 21: Guaranteeing Performance Throughout The Development Lifecycle

Development Pitfalls

Test performance at every milestone If you have a unit test for functionality, test for

memory efficiency and performance at the same time

Watch for common errors– Come back for our next webinar for more on this!

Page 22: Guaranteeing Performance Throughout The Development Lifecycle

QA / Testing Concerns

Functionality, performance, scalability Remember: Applications are rarely deployed

in isolation so why are you testing them as if they will be?

Change the perception of QA How to test for performance and scalability

– The third webinar in this series will address this!

Page 23: Guaranteeing Performance Throughout The Development Lifecycle

Production Dangers

Be realistic about resource requirements (hardware, network, app server)

You should see fewer problems if you’ve done your work up-front in development and testing

Monitor closely and dynamically – The fourth and final webinar in this series will discuss

this!

Page 24: Guaranteeing Performance Throughout The Development Lifecycle

Application Confidence:The Payoff

Page 25: Guaranteeing Performance Throughout The Development Lifecycle

What Are Your Fears?

Lost credibility Lost revenue Lost job

Page 26: Guaranteeing Performance Throughout The Development Lifecycle

What Is Application Confidence?

The knowledge that thanks to your testing process you are assuring your application’s success

A feeling of calm when you application is rolled out

Page 27: Guaranteeing Performance Throughout The Development Lifecycle

Application Confidence For Performance Stakeholders Optimize code to

resolve the problems

Deliver high-quality apps to testing

Avoid firefighting

Rapidly isolate poorly performing components during load testing

Accurately assess scalability

Identify slow SQL Asses performance of

the database system Know when the DB is

at fault … and when it’s not

Rapidly isolate problems in production

Automatically trigger deeper diagnostics

Asses the Performance of the application server

Meet SLAs

Page 28: Guaranteeing Performance Throughout The Development Lifecycle

The Application Performance Management Suite

Page 29: Guaranteeing Performance Throughout The Development Lifecycle

Detection: Monitoring In Production

Foglight 24x7 Distributed application monitoring solution Cartridges for application servers, databases, etc. Intelligent rules help you keep track of the health of

your OS, Databases, J2EE Applications, Packaged Applications, and warn you of dangerous situations with progressive alerts

Lightweight web console allows anyone in the company to view the data they need when they need it

MyFoglight allows you to customize your views to suit each individual or group with data that’s relevant to them

Page 30: Guaranteeing Performance Throughout The Development Lifecycle

Lightweight Production Diagnosis

Spotlight A real-time diagnostic tool that identifies bottlenecks on

the server and troubleshoots problems with deployed J2EE applications.

Eliminate guess work with color-coded alerts and intelligent drill-down that lead you quickly to the heart of the problem

Expert advice helps solve the problem and tuning suggestions can be used to improve performance

Page 31: Guaranteeing Performance Throughout The Development Lifecycle

Deep Diagnosis in Production and QA

PerformaSure End-to-End power diagnostic tool for production or

pre-production analysis of J2EE problems Low, configurable overhead can give you detail down

to the method-level for Java as well as give you insight into inefficient SQL and stored procedures

Intuitive interface makes finding the root cause easy, even if you’re not a J2EE expert

Share analysis sessions between developers, DBAs, QA testers and Production support groups to speed time to resolution

Page 32: Guaranteeing Performance Throughout The Development Lifecycle

Problem Resolution JProbe

– The premier Java Profiling tool– Get statement-level performance and object allocation

data– Find memory leaks quickly and easily– Integrated with PerformaSure

Quest Central– Quest Central provides everything you need to

manage single or multi-platform database environments within an integrated console

– Has set the industry standard for heterogeneous database administration, performance diagnostics, SQL tuning, and space management

Page 33: Guaranteeing Performance Throughout The Development Lifecycle

Summary

There are many stakeholders in J2EE application performance

Diagnosing performance problems in real-world J2EE applications can be challenging

We need two things to simplify the process of identifying and resolving the root cause of performance problems:– Methodology

– Tools

Page 34: Guaranteeing Performance Throughout The Development Lifecycle

Thank you

http://www.quest.com