Acquisition of Virtual Machines for Tiered Applications with Availability Constraints
Praneeth Sakhamuri, Olivia Das · 2017
Deploying and managing a high availability tiered application in the cloud is a challenging task because it requires determining and buying enough number of VMs dynamically such that the application is available. An application is available if it is working and it can respond in a timely manner for varying workloads. For a given workload, we will need a minimum number of working copies for each server and the minimum computing power of VMs necessary to run those copies for meeting the response time requirement. Otherwise, we will end up with response time failures. In this work, we assume that each software server of an application is replicated into one or more copies and each copy runs on a separate virtual machine (VM). VMs can be of different types depending on their computing power, availability and cost. This paper presents a novel optimization model to determine the number and types of VMs needed for each server that minimizes the cost and at the same time guarantees the availability SLA (service-level agreement). The results demonstrate that it is more cost effective to have a mixture of different types of VMs for running the copies of a server rather than restricting the copies to run on a single type of VMs. The results further demonstrate that the decision to buy only the cheapest VMs for an application is not always better cost-wise.