|
|
Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs
It is always the middle of the day in some part of the world. For an online business, operating hours are 24 hours, seven days a week. This means maintaining uninterrupted uptime is of primary importance to commercial Websites. Any application outage means customers lack access to information or services offered by the business. This results in potential loss of revenue and dissatisfied customers.
The most obvious step for improving the availability of applications running high-traffic Websites is to host them in environments designed for high availability. Availability in the infrastructure is typically achieved by building redundancies at all levels. But to fully leverage the availability built in an environment, application designers must design their applications with high availability in mind. It is important to be conscious of the fact that certain application design choices that would work well in a simple environment may not be as effective in a highly available environment. For applications that do not have the luxury of being deployed in a highly available environment, some design considerations can improve their availability.
This article sets the stage by briefly discussing the characteristics of a highly available (HA) environment. Then, it discusses special design considerations for applications deployed in HA environments. And finally, it introduces application-level best practices for improving availability even if an application is not being deployed in an HA environment.
Below are two illustrations of hosting environments that represent the two ends of the HA infrastructures spectrum. Figure 1 shows a complete Java EE (Java Platform, Enterprise Edition) delivery environment hosted entirely on one server.

Figure 1. Single-server hosting environment
In this type of environment, the HTTP, Java EE, and RDBM (relational database management) servers, all coexist on the same physical machine. This is the most cost-effective Java EE environment possible, but also the least fault-tolerant because every infrastructure component is a potential single point of failure.
On the other end of the spectrum is an infrastructure as depicted in Figure 2.
Figure 2. High availability hosting environment. Click on thumbnail to view full-sized image.
This deployment environment consists of multiple data centers, typically in different geographic locations, and each identical in hardware and software levels. Almost everything about them is redundant down to their connections to different Internet backbones. In this environment, each infrastructure component is housed on a separate piece of fault-tolerant hardware. These geographically disparate data delivery environments rely on both data and cluster synchronization so each data center can field requests simultaneously.
The two most important characteristics of HA environments are:
Having an HA infrastructure does not by itself guarantee high availability for an application. If an application is not designed to leverage high availability in the infrastructure, it will not achieve its availability goals. Applications designed for these types of environments need special design and implementation considerations.
Archived Discussions (Read only)