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 call the data collection the "Monitoring & Analysis" pillar. In this innovation pillar, we are exploring collection of data from within the cloud. You may be thinking "but monitoring in cloud environment has been around for ages" - so, what's new? In CloudWave, we are not monitoring only the Cloud infrastructure (as is currently done, for example, for billing purposes), or the application's behaviour (for example, application-specific events) - we are monitoring both. We are monitoring even the end-user devices (for example - the mobile device's CPU usage and battery status). All these huge amounts of data are then streamed to the analysis component. This is the factory that takes all the raw monitoring data (like the VM's network usage, the application's usage patterns, and the mobile device's battery level) and extracts from that meaningful and useful information - how does the users of the application affect its behaviour? How does the Cloud infrastructure affect the application's performance?
OK, so we've collected and analysed much data - what can we do with it now? In CloudWave we're studying two answers to that question - "Coordinated Adaptation" and "Feedback-Driven Development".
Coordinated Adaptation is the automatic feedback loop. It will coordinate between the application and the Cloud in order to find the best action to be taken given the current situation. "Action" can be anything from simply migrating a VM between nodes to more complex operations such as changing application deployment and behaviour or migrating computation between the Cloud and the end-user devices. For that purpose, CloudWave will expose interfaces for developers to register the "buttons and knobs" for application adaptation, i.e. the different adaptation actions that the application is willing and able to perform.
Finally, in Feedback-Driven-Development we bring the human back in the loop. In this case, this would be the DevOps Engineer. CloudWave will introduce a novel development and operations paradigm, closely tied to the monitoring data. The engineer will be able to get online feedback from the running system on the behaviour of the application and the infrastructure, and take educated decisions based on this feedback. Types of feedback may be "this menu item is never clicked", or "this method is taking too long to perform and acts as a bottleneck to the system's performance". Seemless and simple instrumentation for feedback will drive the agile development process of rapid changes followed by observation of their effect.