Cloud computing, in the form of Infrastructure as a Service (IaaS), provides a self-service, automated, configurable, and scalable computing platform. While the paradigm is widely perceived as being the basis for future generation computing infrastructure, the innovations that resulted in the success of the approach are largely commercial. In particular, little academic research has studied the way in in IaaS systems should be designed and developed. Although open source IaaS implementations, such as Eucalyptus, OpenStack, OpenNebula, and Nimbus, are freely and readily available, their complexity as eventually consistent, scalable, distributed systems makes them a challenge to study, modify, and enhance.
In this talk, we present ACAI -- Agile Cloud Analysis Infrastructure -- as a framework for developing new IaaS cloud capabilities. The goal of ACAI is to provide a consistent and verifiable development environment that allows a developer or researcher to combine simulation, component development and testing, and system integration for IaaS clouds. ACAI provides a single control and monitoring API for simulated and "real world" cloud components. Using ACAI, developers can design different IaaS components and analytics tools, first on the simulation environment to get quick results about the behavior of their components, then on a real production deployment, without making any changes to their codebase, to test whether their components work as expected in a real setting. We detail the workings of ACAI using the development and integration of an SLA-governed power management system for the Eucalyptus IaaS platform as an example. The talk will both describe the use of ACAI as part of the development workflow and demonstrate its ability to register simulated results with fully integrated empirical measurements of the resulting system.