An Infrastructure-as-a-Service Cloud: On-Demand Resource Provisioning

An Infrastructure-as-a-Service Cloud: On-Demand Resource Provisioning

Weijia Song (Peking University, China) and Zhen Xiao (Peking University, China)
DOI: 10.4018/978-1-4666-2854-0.ch013


Cloud computing allows business customers to elastically scale up and down their resource usage based on needs. This feature eliminates the dilemma of planning IT infrastructures for Cloud users, where under-provisioning compromises service quality while over-provisioning wastes investment as well as electricity. It offers virtually infinite resource. It also made the desirable “pay as you go” accounting model possible. The above touted gains in the Cloud model come from on-demand resource provisioning technology. In this chapter, the authors elaborate on such technologies incorporated in a real IaaS system to exemplify how Cloud elasticity is implemented. It involves the resource provisioning technologies in hypervisor, Virtual Machine (VM) migration scheduler and VM replication. The authors also investigate the load prediction algorithm for its significant impacts on resource allocation.
Chapter Preview

2. Background

Traditionally, Cloud services are categorized into Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS). IaaS provides virtual machines to Cloud users. IaaS users are responsible for application development, deployment and management. PaaS take the burden of application management by providing development tools and deployment platform. SaaS model is actually “old wine in new bottles” for conventional Internet applications.

In an IaaS system, virtual machines are generally overcommitted to physical servers to maximize profit from hardware investment and cut down power budget. Cloud elasticity in that environment addresses the challenge of resource provisioning for dynamic load of virtual machines. For example, if physical server cannot satisfy the resource requirements of its virtual machines, some of them are going to be migrated to other servers so that application performance is assured.

It is hard for application developers to predict the user load. In PaaS systems, user applications are managed by Cloud infrastructure to relive developers of the difficult of deployment, so that they can concentrate on application function. Generally, the applications deployed in PaaS are developed by designated program language, development tool and libraries and encapsulated in managed execution engines. An execution engine is a sandbox allocated with a share of CPU resource. Execution engines have uniform management interface for life cycle control and performance monitoring. Elasticity mechanism dynamically adjusts the number of execution engines belonging to an application to suit its load.

The situation in SaaS is similar to that in PaaS. A SaaS service could be built upon a PaaS service to indirectly utilize its elasticity mechanism. Some large SaaS services choose to implement dedicated elasticity mechanism for application specific optimizations (Chen et al., 2008) (Chase et al., 2001). Here we just talk about stateless computing resource. The discussion of data storage technologies like Google File System (Ghemawat, Gobioff, and Leung, 2003) and Big Table (Chang et al., 2008) belongs to another dedicated field out of scope of this chapter.

Complete Chapter List

Search this Book: