Application availability in the cloud
Application availability can be affected as much by system infrastructure as by software architecture so, to reach the desired level of availability it is important to take an holistic view of uptime.
As we all know the results of downtime can be catastrophic. Every hour of unavailability can lead to lost revenue for online retailers while for ISVs, the result can be customer defection and reputational damage.
It is therefore important to work with your hosting provider to ensure you get the application availability and uptime assurances you need.
The uptime equation
Uptime is the measure of the availability of a component or system and in the context of cloud hosting is usually used to indicate the availability of the data centre facilities being used. However there are two major components to the uptime equation: the application as well as the infrastructure. Both should be optimised to prevent it downtime. 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. It is important to understand that other factors can affect availability in addition to your uptime guarantee.
Although the ‘holy grail’ is zero downtime, this is almost impossible to achieve within acceptable financial and environmental constraints. When planning for high application availability, there are choices and, ultimately, some compromises to be made. The fact is that you need to decide what amount of downtime is acceptable to your organisation. How quickly do you need your systems and applications to recover in the event of an IT failure and what amount of data loss can you cope with? Understanding your recovery time objective (RTO) and recovery point objective (RPO) will help you make the right choices.
Highly available infrastructure
When tackling the infrastructure aspects of your application’s availability it all begins with the data centre tier upon which your cloud infrastructure is built. There are four tiers of data centres offering different levels of uptime. Consider what tier best suits your availability requirements.
Single points of failure
Single points of failure can take many forms and might not necessarily be under your direct control. Device level redundancy is the ideal to offset the risk of any application outage arising from a single component’s failure, although again this depends very much on your attitude to how much downtime you can tolerate and how quickly your hosting provider can replace broken components.
Your application needs to be able to cope with increases in demand. The ability to scale out (add new servers/instances) or scale up (add new resources to a server) will determine your uptime. Good capacity planning within your business will allow you to determine what scalability you need within the infrastructure and therefore what you pay for.
However if you have not optimised your application to use redundant or scalable resources none of the above will improve your uptime and availability. Making it stateless is the ideal though this can be difficult and you may need to look at achieving uptime through other measures.
Even when demand is within capacity and infrastructure is functioning normally, application performance can still derail you. Monitoring resource utilisation such as CPU, RAM, Disk and bandwidth while planning for spikes in demand and organic growth are critical in maintaining availability to all users.
Assessing the different factors that affect application availability is no mean feat. By working with your hosting provider you can achieve a better understanding of what can be done to achieve maximum uptime.