High availability is a key non-functional requirement that software and telecom service providers strive to achieve. With the on-going shift to Cloud computing, the challenges of satisfying the high availability requirement become more arduous, as the Cloud introduces additional features, such as on-demand access, scalability, virtualization, etc. that add to the complexity of the high availability solution.
In this article we target the issue of achieving high availability for the software applications running in the Cloud. We present our solution for abstracting to the complexity of high availability, and discuss the quantitative and qualitative overhead of our solution.