To reduce costs and risks, service providers can purchase Infrastructure-as-a-Service (IaaS) instances from public clouds to deploy service applications and deliver job-execution services to users. However, it is challenging to make optimal instance purchasing and job scheduling decisions due to diverse instance billing methods and random service demands. In order to minimize time average service costs while ensuring quality of service (QoS), we consider that service providers purchase combinations of reserved and on-demand instances to meet the workload of their service system. Service providers need to dynamically determine the amount of on-demand and reserved instances to purchase for job executions, and then schedule jobs to run at the appropriate time. In this paper, we first propose a method to dynamically purchase reserved instances based on the historical usage data of on-demand and reserved instances. Then, we use a variable-length cycle scheduling mode for the job processing system and propose an online bi-objective scheduling algorithm based on Lyapunov optimization to schedule jobs. Even without the knowledge about the future, our online algorithm can dynamically purchase on-demand instances in an optimal way under the current number of reserved instances, and schedule jobs in varying time periods according to the arrival of jobs and optimization objectives. Based on both synthetic and real-world data, extensive experimental results show that our algorithm can achieve bi-objective optimization of minimizing time average cost while ensuring QoS.
Read full abstract