The Cloud is a wonderful concept. The marketing blurb will read something like this:
You can put whatever applications you want in the Cloud at the touch of a button. The underlying hardware will be invisible to you, and you can manage your applications at a virtual level, moving storage around as you see fit, moving your virtual machines around as you see fit.
If you predict a seasonal peak in activity, the Cloud can immediately divert CPU resource to your application to make sure that it can cope. And if you no longer have a need for your application, it can be turned off at the touch of a button.
The reality is somewhat different. Mainly because rarely do organisations use vanilla applications. And the vast majority of applications that the marketing spiel appeals for are already built, having built on a physical architecture upon which it is reliant.
A while ago, I project managed the migration of one such application from its old home to a new home. The data centre it was in was going to close come what may, and the legacy kit was near end of life. So the decision was made to re-build the hardware from the ground up, using some lovely blade technology. We upgraded the odd COTS application along the way to bring it up to speed. And there was a little virtualisation in there to boot, I believe. (I’m not a techie. But I had a good bunch of techies around me who knew the detail.)
The migration was painful. It was hard. It took longer than originally planned (although perhaps not longer than some people originally expected) and there were some bugs that were difficult to resolve, rooted deep in the modules within COTS applications—not necessarily bugs in the applications themselves, but issues in our own application that were symptomatic of the way in which the supporting COTS application had evolved.
If we had been going to a fully virtualised environment, I believe I’m right in thinking that things would have been no easier. Many of the same issues would have arisen, along with issues specific to moving to a fully virtualised set of environments.
Because of the headache and cost involved in re-platforming applications, there needs to be an impetus other than Cloud itself to move to a Cloud model. This external factor may be the forced closure of a data centre, the need to re-platform owing to operating systems or COTS lapsing out of support or the unacceptable aging of the supporting hardware. Or it may be the introduction of a brand new application—if a Cloud environment already exists, build it there.
Without the external impetus, the extraordinary cost and hassle that results from a migration cannot be justified. Yes, the ongoing hosting costs may be cheaper, as you pay for what you use and no more. And yes, your application may be more flexible in its new world. But in most instances these benefits would be outweighed many times over by the cost of migration. And don’t let people kid you otherwise.