Since I started to hear about cloud computing in its current vendor incarnation (Amazon, Google, Microsoft), I’ve seen the same reaction over and over: “the concept is pretty cool, let’s build it ourselves!”
That reaction is easy to explain. Most enterprises have a lot of assets hosted in a data center. Those assets are now more or less mature and legacy weight is starting to show, for instance:
- They have way too many servers to maintain: along the years they commissioned a new server for each new application or database for the need of the day and they end up with a lot of physical servers to maintain.
- A lot of servers are old and need to be replaced: your old HR custom-app running on VB-ASP / Windows 2000 sharing the server with this third party application with obscured COM components really isn’t following any of the current corporate standards.
- The configuration on those old servers is brittle hence the migration project is expensive and the ROI isn’t clear for legacy applications.
- The company really want to adopt a new paradigm (e.g. Claim-based security, better firewall isolation between LANs, Split Active Directory Domain between internal & external facing applications, etc.)
Those IT people look at a Cloud Computing presentation and see a solution their data center problem: virtualize the server park and build a custom provisioning API. The advantage of that solution is that changes are mostly on the hosting side, applications won’t realized they’ve been virtualized.
This solution most likely has advantages. It will likely reduce the number of servers and increase the agility in hardware management (allowed by VM swapping from one server to another), etc. . The issue I have is the name given to that solution: Private Cloud.
For me private cloud is a contradiction in name. It’s like saying you have an online solution running on your laptop sitting in an airplane. Cloud means Internet. If you’re running your corporate assets in a virtualized environment, your doing… virtualization!
Again, nothing wrong with virtualization. It has many advantages over hosting everything directly on physical servers. It doesn’t give you all the advantages of cloud computing though. For starter, you do not have pay-per-use: you own a bunch of servers and a bandwidth and you pay for that, that you use it or not. It doesn’t give you the flexibility to grow either: if you have a spike of activity, you can spin off VMs as you want, but once you reach the limitations of your physical servers, you’ll realize that your “cloud” doesn’t span too high in the sky!
Another big difference between in-house virtualization and cloud computing is that in the former you own and manage the physical assets, in the latter you don’t. With virtualization, you still need to manage a data center, a disaster recovery site (DRS), the OS on your physical servers, etc. . The major drawback with that is that you’ll need to change those servers one day, so you’ll still have legacy problems.
There is nothing wrong with virtualization and it makes sense in a lot of scenarios. It’s not cutting-edge new either: I’ve seen hosting environment using virtualization since 2005. The problem is the name. If you say you have a private cloud, it’s sounds like you have all the advantages of the cloud but in your backyard. If you adopt that lingo, at some point down the road, you’re going to have some issue with the upper management who won’t understand the cost structure of their infrastructure, given they’re supposed to use cloud computing.