High availability is a key non-functional requirement that software and telecom service providers strive to achieve. With the ongoing 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, virtualisation, which 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 first benchmark two of the most prominent middleware implementations for HA. We then build on the most responsive one to present our solution to address the complexity issue of applications high availability deployed in the cloud. Finally, we discuss a quantitative and qualitative assessment of the overhead of our proposed solution.