Hochverfügbarkeit

Planning for High Availability

08.05.2003
Von Bob Zimmerman

Transaction-aware design: Transaction management features (e.g., of application servers and DBMSes) will ensure transaction integrity, but only if the failure occurs within the context of transaction control boundaries. Some transactions can be submitted multiple times with no loss of integrity (e.g., an address update) while some cannot (e.g., an account withdrawal). Upon a request failure, the application should validate whether the transaction was properly applied and, if not, restart it (or perhaps notify an end user).

Indirection: The principle of indirection underlies many design principles, i.e., an application element should never know the physical address of another -- instead, elements should find each other by name. This allows elements to be moved and reconnected in a failure scenario without changing the application.

HA design adds significant cost to an application delivery effort (and HA infrastructure will add additional costs discussed below). In addition, testing an HA application is more expensive because it is often difficult to re-create various failure scenarios. There are also impacts on performance and operations management, so the appropriate level of HA design for any given application is highly dependent on business considerations and the identifiable business risks and impacts of downtime for the application.

HA Cost Considerations

The duplicated hardware, software license fees, facilities, etc., are easily priced, but the ongoing support costs can grow dramatically. Maintaining the IT infrastructure is an ongoing process, made even more critical in HA mode, and companies must routinely re-evaluate their requirements:

1. Identify IT needs, goals and measurement metrics.
2. Review the company's current architecture and support.
3. Evaluate gaps between the actual performance and the goals.
4. Construct a plan for reducing the gaps.
5. Assess the costs required to attain goals and adjust goals if needed.
6. Determine whether to conduct an ROI or cost/benefit analysis.
7. If deemed necessary, perform an ROI study and define metrics before implementing new projects or purchasing support.

Zur Startseite