HYUNJOO KIM and MANISH PARASHAR
Clouds typically have highly dynamic demands for resources with highly heterogeneous and dynamic workloads. For example, the workloads associated with the application can be quite dynamic, in terms of both the number of tasks processed and the computation requirements of each task. Furthermore, different applications may have very different and dynamic quality of service (QoS) requirements; for example, one application may require high throughput while another may be constrained by a budget, and a third may have to balance both throughput and budget. The performance of a cloud service can also vary based on these varying loads as well as failures, network conditions, and so on, resulting in different "QoS" to the application.
Combining public cloud platforms and integrating them with existing grids and data centers can support on-demand scale-up, scale-down, and scale-out. Users may want to use resources in their private cloud (or data center or grid) first before scaling out onto a public cloud, and they may have a preference for a particular cloud or may want to combine multiple clouds. However, such integration and interoperability is currently nontrivial. Furthermore, integrating these public cloud platforms with exiting computational grids provides opportunities for on-demand scale-up and scale-down, that is cloudbursts.
In this chapter, we present the CometCloud autonomic cloud engine. ...