It is by now a truism that most IT organizations are planning an IT infrastructure strategy that includes cloud computing and that an internal cloud (aka private cloud) is a fundamental part of that strategy.
While trying to avoid getting sucked into the vortex that is defining cloud computing, I think it's safe to say that a cloud computing environment includes the ability for IT resource consumers like application developers to self-service resource requests, along with automated provisioning (aka orchestration) of computing resources like virtual servers, network connectivity, and storage. The mere deployment of virtualization enabling support of multiple virtual servers on a single physical server, while admirable and useful in itself, is not cloud computing.
In talking to a number of informed people, it's clear that private cloud implementations are moving forward in many organizations, with RFPs to vendors out with an aim of contract award in 2011 and implementation in 2012.
The question is, how will that private cloud be used, and what are the downstream effects of moving to a private cloud? In our work, we run across a number of scenarios, some of which make sense, some of which don't make sense, and some of which are incomprehensible. I thought it might be useful to share what we see and what we predict are some of the ways private clouds will be used by those organizations implementing them.
A planning assumption that we bring to the table is that no organization is going to insert a full-blown cloud infrastructure into their existing production application environment. The reasons for this assumption are the following:
1. A key principle of CIOs everywhere is don't mess with something that's in and working. Change introduces the potential for disruption and failure. So why insert an entire new infrastructure into one in which applications are quite happily humming along? Note: This does not imply that existing environments will not have virtualization brought in. One of the most felicitous aspects of virtualization is that it provides great benefit — cost reduction via server consolidation — without introducing much change at the application level.
2. Most existing applications won't benefit from being placed into a cloud computing environment. Most production applications are written with static topology and manual administration assumed, so they can't take advantage of self-service and automated elasticity. Therefore, inserting a cloud computing infrastructure into the production environment is going to provide little improvement for these applications. In any case, the leisurely march of virtualization into production environments should call into question the belief that IT organizations are going to, overnight, disperse cloud computing capabilities throughout their production infrastructure.
3. Cloud computing is expensive and disruptive to IT organizations. We constantly see organizations that underestimate the cost and change of moving to cloud computing. Just the fact that a new term — devops — needed to be created to describe how IT has to operate in a cloud environment should provide a clue about this.
So, to summarize: putting cloud computing into an existing production environment is disruptive and expensive, and doesn't provide many benefits. This should explain our assumption that most IT organizations will not retrofit cloud computing into their production computing environments.