Autonomic Management of Cost, Performance, and Resource Uncertainty for Deployment of Applications to Infrastructure-as-a-Service (IaaS) Clouds
Infrastructure-as-a-Service (IaaS) clouds abstract physical hardware to provide computing resources on demand as a software service. This abstraction leads to the simplistic view that computing resources are homogeneous, and infinite scaling potential exists to easily resolve all performance challenges. Adoption of cloud computing presents challenges forcing practitioners to balance cost and performance tradeoffs to successfully host applications in the cloud. These challenges can be broken down into three primary concerns that involve determining WHAT, WHERE, and WHEN infrastructure should be provisioned. In this talk, I'll discuss key contributions from my research that address these challenges including: First, the design of resource utilization models based on step-wise multiple linear regression and artificial neural networks to support prediction of application performance for cloud-based component compositions. The total number of possible compositions is governed by Bell’s Number that results in a combinatorially explosive search space. Second, I describe my approach to autonomously detect underperforming VM's that run in the presence of Noisy Neighbors on Amazon's public cloud. I demonstrate how mitigation of this resource contention supports application performance improvements up to 25%. Third, I describe a workload cost prediction methodology that harnesses regression models and heuristics to support determination of infrastructure alternatives to reduce hosting costs. My methodology supports up to 30% cost reduction for application hosting by identifying alternative infrastructure deployments which support equivalent performance.