In the CIO blog article titled Economic Recession: Good or Bad for Cloud Computing?, Bernard Golden points to a few important questions on how fruitful will be an exercise to build an internal(private) cloud. I think he has some good points here that anybody attempting to build such environments should consider before jumping into the conclusion that it will improve the efficiency of their enterprise I.T environments without having to compromise on security and ownership issues.
The most important pitfall he points out is that the exercise needs investment, to build a ‘cloud’ layer over the existing (mostly legacy) systems, nobody is going to invest in such a thing. The second point he is raising is that whether there are ‘unused equipments’ lying in your data centers that can be used for building the cloud? Most of the time the answer will be ‘NO’ in my opinion too, simply because application owners are always short of systems, unless of course they have plenty of ‘center of excellence’s within the company who most of the time are ‘center of expenses’.
Also, we have the ‘almost failed’ example of SOA that it’s not easy to shift the I.T structure that is built over the years by multiple teams with multiple needs and priorities into a new umbrella, no matter how much future benefits you can show there, nobody is going to invest there, though all of us like the word ‘innovation’ more than earlier these days. No matter what skills you have in your enterprise I.T, you simply cannot build something that matches the external cloud providers in terms of capabilities and robustness, so you might as well leverage them than competing.
Having supported these arguments, I must say that I’m no a naysayer for internal clouds; my take is that, you sure need it, but don’t attempt building each and every layer of cloud computing within physically. Leverage the existing capabilities of external clouds such as processing power, networks, fault tolerance, dynamic provisioning and even storage for not so critical data backups etc, and build/host your business systems and services over it and form some sort of virtual internal cloud. As a first step, start using existing external clouds for computing needs where you don’t have to worry too much about data security. (Some of my thoughts on this model here).