The Unobservability Problem in Clouds
The cloud is not transparent. Users of cloud computing cannot control or monitor important information about their VMs or services, such as placement, true resource allocation, virtualization overhead, etc. Likewise, cloud providers cannot obtain important information about their users' deployment such as the application model, the role of each VM, etc. While such information is not required to be revealed, we claim that this lack of information prevents users from fully understanding their resource availability, and limits the feasibility of various performance management solutions. We refer to this lack of information as the 'Unobservability' problem. In this paper, we describe the unobservability problem and present various use cases from our experience managing a medium-scale cloud deployment with several hundred VMs and experiments on EC2 that highlight the severe impact of unobservability on performance, and the limitations it imposes on users and cloud providers. We show that, interestingly, unobservability often diminishes the potential benefits of cloud computing. To address unobservability, we present and evaluate a practical solution to the unobservability problem that reveals important unobservable information without requiring any instrumentation or changes to the cloud.