In this paper, we discuss several facets of optimization in cloud computing, the corresponding challenges and propose an architecture for addressing those challenges. We consider a layered cloud where various cloud layers virtualize parts of the cloud infrastructure. The architecture takes into account different stakeholders in the cloud (infrastructure providers, platform providers, application providers and end users). The architecture supports self-management by automating most of the activities pertaining to optimization: monitoring, analysis and prediction, planning and execution. Categories and Subject Descriptors D.2.11 [Software Engineering]: Software Architecturesdomain specific-architectures; C.2.4 [ComputerCommunication Networks]: Distributed Systems- distributed applications; C.4 [Computer-Communication Networks]: Performance of Systems- modeling techniques, performance attributes; K.6.3 [Management of Computing and Information Systems]: Software Management-software mai...
Marin Litoiu, C. Murray Woodside, Johnny Wong, Joa