I have recently been paying some close attention to what will be needed for the buzzword cloud to come to true fruition. It is that applications will have to be rewritten from the ground up to fit into tomorrow’s IT as a Service and cloud. Cloud has been a word that means nothing without an adjective for me for some time. Private, Hybrid, and Public have been some recent ones that help a bit. A few details keep getting missed Workload Mobility, Self Service, and Elasticity. Applications need to be designed to function in all of these areas in order to have a real future in the cloud.
Many solutions exist for creating your own private cloud infrastructure. On the bottom of the stack you have hardware and virtualization. The operation, capacity, and performance management of this is something that will need to be compatible in both the public and private cloud.
Workload mobility needs to be seamless and non-disruptive. A VM should not require being shutdown, moved, and powered back on as it moves between the clouds. An application that is role based and aware of peer roles becoming unavailable could remove some of the need for this. Applications will need to be able to scale out their roles in the cloud so that manual installation and configuration is not needed.
Self Service is really more about bringing agility and speed to requests for service. Low hanging fruit of course is services like a test server for some developers or researchers. However this can be advanced into things like a manager requesting a new virtual desktop for their employee. Self Service enables some things like virtual machine lifecycle and really can provide for better tracking of the reasons we deployed a service.
Elasticity will come when applications are role based and can scale out with no manual input. This should allow for applications to exist on servers in either a private or public cloud. Infrastructure capacity planning could then function such that you only buy capacity as CapEx if it meets a watermark of your usage. If you need to burst your capacity that could be done in the public cloud. When the burst is no longer needed your shrink your capacity by only running in the private cloud you paid for.
The key to all of this is applications have to change. The cloud providers really need to take on the campaign to have this accomplished. I think the cloud providers need to get a standard around cloud and virtualization first. Of course time will tell how well this is accomplished. It is looking like the next five to ten years will be interesting to watch as this application transformation unfolds.