We are now in to our fourth month of work on CloudWave and have nearly completed the first version of our Requirements document as well as an initial formulation of the architecture.
The idea behind CloudWave is pretty interesting. If I had to sum it up in a single sentence I would say that CloudWave aims to utilize deeper knowledge of your application's runtime behavior and the cloud infrastructure to improve efficiency and lower the costs associated with both developing and running Cloud-based services.
Okay, that was a pretty long sentence. CloudWave is built around three main concepts
- Create a framework for collecting and organizing monitoring data from both running applications and the Cloud in a way that will make large amounts of heterogenous data meaningful, such as through filtering, compressing and abstraction techniques.
- Develop the technology which will allow both applications running on the Cloud and the underlaying Cloud infrastructure to mutually change their behavior in order to optimize overall performance.
- Supply to application developers the feedback on how their applications actually are performing in the Cloud to allow them to rapidly refine and redeploy their applications.
A lot of this is uncharted territory. For example, while clouds can typically elastically grow or shrink to meet demands such as a maxium CPU threshold, being able to make predictions on improving system behavior and then having the infrastructure and application negotiate on how to obtain this improvement is an exciting research challenge.