Scheduling On-Demand SaaS Services on a Shared Virtual Cluster
Abstract
In this chapter, we propose a framework to set up on-demand computation-based SaaS services on a computing cluster shared among services of distinct providers, which invest to purchase, to maintain and to keep the cluster up. We focus especially on resource management which appears as a critical point. Indeed, it must satisfy two conflicting objectives, which aim at sharing the cluster's resources proportionally among the different services while maximizing their use. We first suggest a model that relies on virtual machines to execute the jobs associated to services requests. Its software architecture comprises a specific scheduler designed upon OpenNebula to deal with SaaS request handling, job scheduling, resource management, and job execution. We then propose for resource management, a job scheduling heuristic that introduces a smart tradeoff in a classical static approach resource sharing to satisfy the aforementioned objectives. We have built a prototype (SVMSched) of the proposed framework, that is evaluated using trace-based simulation on various workload scenarios. Experimental results show its ability to achieve the expected goals, while being reliable, efficient.