guaranteeing performance throughout the development lifecycle
TRANSCRIPT
Guaranteeing Performance Throughout The Development Lifecycle
Steven Haines
J2EE Architect and Evangelist
Quest Software
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
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”
The Importance of Performance in J2EE Custom Applications
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
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
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
J2EE Layered Execution Model
J2EE Layered Execution Model
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?
?
?
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
Performance From Start to Finish: General Guidelines
Understand What Performance Is
Web Page Response Time Application Server Resource Utilization JVM Heap Utilization System Resource Utilization Database Resource Utilization Network Activity
Know Your Users
What do they expect? What Inconveniences them? What can they realistically put up with?
Build Your Knowledge Base
Learn outside your comfort zone Keep notes, review them periodically and
develop wisdom
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
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
Performance From Start to Finish: Specific Suggestions
Get a Head-Start
Define what you mean by performance Setting performance SLAs
– Specific
– Realistic
– Flexible
Collaborate with parties responsible for ensuring SLAs
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
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!
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!
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!
Application Confidence:The Payoff
What Are Your Fears?
Lost credibility Lost revenue Lost job
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
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
The Application Performance Management Suite
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
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
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
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
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
Thank you
http://www.quest.com