As mentioned by others earlier in this blog, CloudWave is about "allowing both the applications running on the Cloud and the underlying Cloud infrastructure to mutually change their behavior to improve efficiency and lower the costs". On the application adaptation side of things, the idea is primarily to "expose interfaces for developers to register the "buttons and knobs" for application adaptation". However, application adaptation is not limited to what developers choose (or are able) to expose.
News and Updates
Virtualization, the separation of the underlying hardware from the software running on it, is a key ingredient in the ability to provide efficient cloud services. Virtualization enables the execution of multiple Virtual Machines (VMs) over a shared physical host, thereby providing dynamicity and flexibility that are very limited otherwise. In order to exploit the full potential of virtualization, the mapping of VMs to their physical hosts is optimized for various workload patterns.
Telecom Italia's use-case is now drafted. It includes the Cloudwave capability to monitor service components building blocks and to adopt the service behaviour accordingly. In same cases, when critical service components are not available (total failure of the component or of the network connection) or behave wrongly (misbehaviour due to an internal crash) the service is stopped. This behaviour occurs with both types of the service components those under direct Cloudwave control (running within Cloudwave cloud) and for those out of Cloudwave control (running in external environments).
Before the internet became widely available, and 3.5” floppy disks were popular, I used to be an avid purchaser of computer magazines. My choice of magazine was not determined by the quality of the articles, but by the contents of the floppy disk that came with it. This was the main way in which I could get access to new software.
With the proliferation of the Internet I can get access to new software whenever I like, simply by downloading it, or increasingly accessing the software directly via a web browser.
One of the pillars of CloudWave is to provide application developers with runtime information on how their applications are performing when deployed on a Cloud platform. This gives the developer more insight on how the application is used in production and gives support for further root-cause analysis of possible issues.
CloudWave is about data. It is about collecting data, and about leveraging that data - both automatically and as user feedback. This leads to three main innovation pillars, each carrying its own challenges, goals and issues.
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.