In addition to software delivered as services over the Internet, hardware and software systems that make the delivery possible are referred as cloud computing. In cloud computing, resources such as CPU, memory, bandwidth and storage are treated as utilities that can scale up and down on demand. It also allows per-usage metering and billing of these resources. By means of cloud computing, cloud users can handle unexpected high demands without over-provisioning and they do not need to invest for abundant hardware resources initially. Cloud providers, on the other hand, have the opportunity of reallocating idle resources for other cloud users.
One general research challenge in cloud computing is the efficient allocation of cloud resources to users since cloud providers should satisfy quality of service (QoS) objectives while minimizing their operational cost. Up to 85 percent of computing capacity remains idle in distributed computing environments and this wastage is mainly due to poor optimization of job placement, parallelization and scheduling. We aim to model resource allocation problem in cloud systems, analyze and optimize it using graphs and formal behavioral models (e.g. finite automata).
The problem that we are currently interested, is to distribute virtual machines (VMs) to the datacenters (DCs) with geographical locations in such a way that network latency and infrastructure cost is minimized while WAN bandwidth and DC capacity limits are respected. We model latency as a function of DC load, inter-DC communication and proximity to user. Both VM requests and cloud infrastructure are represented by graphs where vertices correspond to machines (either physical or virtual) and edges correspond to network connections between them. Our approach employs weighted graph similarity and subgraph matching to suggest an efficient placement or the list of migrations to reach an efficient placement.
In the first six months period of the thesis project, we collected evaluation data, developed the simulation environment and defined the experimental setup which contains metrics and baseline methods. In addition, we developed the preliminary version of the resource selection algorithm. While, in the second period, we completed the algorithm design and tuning, carried out detailed, progressive evaluation on the suggested algorithm and documented our work.