Beruflich Dokumente
Kultur Dokumente
Performance engineering In today’s environment, timely Web response and availability can mean the differ-
ence between leading or trailing the industry. Whether your Web applications
Modeling and testing support your internal business functions or a dynamic Internet client community,
successful Web-application design will focus on addressing and meeting specific
Developing application performance objectives.
templates
Due to the rapid growth of the Internet, the development life cycle of Web appli-
Acquiring the right skills cations has been greatly compressed. Many applications were developed simply
to demonstrate a new technology or capability. In some cases, they have become
fully functional production applications supporting new business capabilities. Yet
because of the origins of these applications, performance issues were not under-
stood or addressed until the testing or delivery phase. Weekly press articles
highlight the “war stories” of several major Web application rollouts that either
were unable to attain their response-time objectives or failed to meet large surges
in demand.
The key lesson to learn from these unpleasant stories is that you need to design
performance into an application from the beginning at the conceptual design
phase. A focus on performance itself is not sufficient. Successful deployment
involves performance engineering. Performance engineering helps ensure good ap-
plication design and development and enables the inclusion of performance
principles and practices from start to end. Using information from several systems
management processes provides quantifiable data to measure the implications
of architectural and application logic changes.
IT operations Application
• Performance development
management life cycle
• Capacity • Testing
management • Modeling
Performance
engineering
2. Test: Conduct tests to capture empirical data, which can be used in the model for
key application logic flows. When test data isn’t available (such as during an early
life-cycle phase), use reasonable estimates based on comparable applications
or experience.
2
Figure 2. Cycle of performance engineering activities
1. Model
3. Validate
assumptions and
scenarios
4. Recalibrate: When running models, you may uncover new insights regarding an
application’s performance behavior. As test data comes in, you may also need
to recalibrate to better reflect the environment.
5. Conduct performance analysis: Each activity involves the review and analysis
of performance data to learn about the application, develop ways to improve
performance or design alternative means for delivering the function faster.
3
Modeling is a key process of performance engineering and is used to understand
the behavior of an application in different operating environments and implementa-
tions. Following are three levels of modeling used in this process, as seen in Figure 3.
Enterprisewide
IT component
Level of
modeling
Application logic
Use the application logic model as early as the conceptual design phase. Once
the basic logic of the application and the key IT components (i.e., servers, network,
database) are known, you can then create a model representing the application
and use it to perform what-if scenarios. This process helps you examine application
performance under various conditions.
Toward the end of the development life cycle, the enterprise model uses what you
now know about the overall target environment, and helps you understand how this
application performs with shared IT components and resources. The model results
show the effect of other applications, as well as different load volume stresses on
the developed application.
4
Logic templates enable quick development
The Web environment poses new challenges to the performance engineering pro-
cess by requiring that design choices be made quickly and accurately within a very
compressed development life cycle. This change is driven both by the development
of new business applications and the transition of legacy applications to the Web.
The typical cycle of modeling, testing, validating and recalibrating shown in Figure 2
in many cases is unaffordable and too lengthy to support these rapid changes.
However, there is a new approach that addresses these issues. The first step
requires that you develop an overall, generic, systemwide model of your current
Web environment. Next, you design a series of application logic templates that
reflect the top ten application logic flows that you expect to use for the new applica-
tions. This assumes that these top ten logic flows are supported by a well defined
reference architecture.
Once these steps are completed and documented, you can quickly model new
applications, providing that they map closely to one of the initial application flows.
New application development requires a few hours with a performance engineer
to describe the basic logic flow of the proposed application and map it into one
of the modeling templates. You can then conduct a series of “what-if” analyses to
determine whether the application will perform to expectations. This approach
enables analysts to implement modeling and produce performance results in hours
instead of weeks. In a Web application environment, where actual development may
only take two weeks, this greatly improves your ability to plan for performance.
The benefits of this approach can only be realized by investing in the time and
effort necessary to develop the overall model and prototypes. The payoff is rapid
turnaround in modeling application logic and architecture choices, based on the
information you have gathered.
5
The skills of a performance engineer
Implementing a quick or standard approach to Web-application performance engi-
neering requires the skills of an analyst with experience in several competencies.
Performance engineers are multitalented IT architects. They must be as savvy in
current application technologies as they are in capacity planning, modeling and
performance tuning. This unique combination of skills makes for an effective perform-
ance engineer, who can quickly capture and identify the performance impact of
application design and architecture choices. Typical job responsibilities are included
in the following job description:
6
Summary
As Web applications expand to support e-business transactions and effective
communications, performance engineering processes can help you effectively
meet the growing demands of users. You may choose to implement a standard
approach for more complex and strategic projects, and a template-based approach
for projects that have quicker implementation requirements. Whatever choice you
make, the return on investment in performance engineering can result in more satis-
fied users, increased availability of business functions and reduced risk of losing
valuable customers.
7
© Copyright IBM Corporation 2000
G563-0337-00