Availability Guide for Application Design
What Is Application Availability?
Availability Guide for Application Design—525637-004
1-21
Think Ahead About Changing the Application Online
Think Ahead About Changing the Application Online
Upgrading a departmental application from one revision to the next is often a major
reconfiguration effort. This effort can be even larger for an enterprise level application.
By taking the right steps when you first design the application, however, you can
minimize or even eliminate reduced availability or downtime for this task. HP calls this
“future-proofing” your application, and has identified the following requirements:
•
Flexibility to accommodate change—Unlike departmental and personal computing
applications, enterprise applications must be designed with a long-term
perspective. Enterprise applications are typically large, complex, distributed
client/server applications, and reengineering them is a time-consuming and
expensive proposition. Therefore, enterprise applications should be designed to
accommodate change. Because business conditions and user requirements are
not predictable (especially over multiple years), enterprise applications must be
adaptable.
A key attribute of adaptability is portability. Each year, new deployment platforms
are introduced to the market, each with its own strengths and weaknesses.
Application developers must be able to take advantage of the most promising and
commercially viable of these opportunities, without sacrificing the uniqueness and
key features of their programs.
•
Continuous availability for continuous commerce environments—Global
organizations must be able to conduct business at all hours of the day or night;
therefore, enterprise applications must be continuously and reliably available. Even
the smallest amount of application downtime can be devastating to a company’s
sales, customer satisfaction levels, and reputation for service.
The continuous availability of enterprise applications is the result of a focus on
failure prevention and rapid recovery. Every facet of the entire system (including
hardware, software, networks, and even the environment and operations practices)
must be designed to maximize uptime. In addition, applications and databases
must be easy to manage on an enterprise scale. Moreover, mechanisms must be
in place to facilitate the recovery from failures that do occur.
•
High scalability to meet fast-changing business needs—The need for absolute
scalability is a key difference between enterprise applications and their more
localized cousins. Enterprise applications must ensure that no limitations exist in at
least two major areas of scalability: internal management of access to shared
resources used by the application, and external manageability of the executing
application itself.
Several design techniques can help, such as designing a requester to be able to talk to
an alternate class of server. Good software engineering practices, such as modular
design and data isolation, will make the upgrade much easier.
Refer to Section 10, Designing Applications for Change, for some guidelines.