Application availability is a multifaceted issue that is as much affected by system infrastructure as it is by software architecture.
Taking a holistic view of uptime, and the threats to it, is required if you are to achieve your desired level of availability within the available budget.
With so many businesses now reliant on software, the subject of application availability has received increasing attention. For an ecommerce retailer, every hour of downtime can lead to thousands or even millions in lost revenues. For an ISV, downtime can result in customer defection and a permanently tarnished reputation. It's only natural therefore that businesses everywhere are looking for ways to achieve and ensure higher levels of application availability.
Two sides of the uptime coin
There are two major components to the uptime equation: the application and the infrastructure. Both have the potential to be the cause of unplanned downtime and both can, and should, be optimised to prevent it. There are also points of overlap, where the benefits of high availability measures applied to the infrastructure level can only be realised if complementary steps are taken within the software architecture.
Zero downtime: mission impossible
Obviously, the ideal situation is one with zero downtime. But, as we know, zero downtime is practically impossible to achieve within acceptable financial and environmental constraints. Furthermore, every incremental increase in availability will come with a corresponding increase in costs. Hence, when planning for high application availability, there are many choices and, ultimately, some compromises to be made - all based on what amount of downtime is acceptable to your organisation.
Highly available infrastructure
When tackling the infrastructure aspects of your application's availability, there are a wide range of factors to consider. Everything begins with the data centre tier upon which your cloud infrastructure is built. Thereafter, it is important that you look at:
- Removing single points of failure
- Infrastructure scalability - in tandem with application architecture
- Business continuity and disaster recovery provisions
- Service level agreements
- Data security measures
- Availability monitoring and measurement
For a more detailed account of how these, and more, factors affect your application's availability, and some of your choices for handling them, download our guide to ensuring application uptime in the cloud.