The debate over private clouds will likely continue in the foreseeable future as public-cloud usage becomes more acceptable in the enterprise, and private-cloud vendors offer more solutions-oriented approaches to create cloud-like infrastructure.
And it's only getting more confusing as the cloud term has effectively lost any specific meaning and is thrown around in relation to everything from Internet-based storage to grid computing.
- IaaS = servers, storage
- PaaS = middleware
- SaaS = applications
Most vendors focused on private clouds are targeting the IaaS layer, which for ease of discussion is similar to Amazon Web Services (AWS) EC2. And while EC2 sets the tone for how most people think about clouds, it lacks (and maybe doesn't require?) the same kind of tooling enterprises need to manage their complete infrastructure.
Tooling and management is arguably the most important aspect for enterprise private clouds to be successful but may also be the most difficult to get right.
But tools may also be where the money is. And considering the cloud has yet to rain down the cash we all hope for, it seems like it's time to reset thinking a bit and focus more on enabling applications and infrastructure to make it appear more cloud-like rather than focusing on specifically making clouds. (Note: see my blog colleague James Urquhart's excellent series on DevOps to learn more about what happens after you have a cloud deployment.)
In terms of private-cloud software, its becoming less clear that enterprises want to run their own version of EC2, but perhaps that they want to make their existing infrastructure behave the same way--that is, allow for APIs and such to turn up VMs with a variety of images that are relevant to their organization.
And, perhaps more interestingly, I've recently heard from several enterprises that they are interested in programming-language and/or application-specific private clouds for Java application or other infrastructure like internal content management tools that require variability in their scaling.
Enterprises want their private clouds to act like EC2 in terms of interaction, but few require the vast flexibility that EC2 offers. Most would be satisfied with a simplified ability to turn on and off VM instances and allow their apps to scale across (around?) existing infrastructure and applications.
One other thing to think about is that scaling applications and infrastructure is less of an issue these days--or maybe it's that scaling is more achievable with fewer headaches, but applications continue to grow more complex.
All of this makes me question how enterprises want to consume cloud software. The responses I've heard thus far trend toward the typical myopic enterprise perspective. They want the software to be free and open source, to run inside their firewall, and not require too much IT support.
But the private cloud software that exists right is not so much focused on reducing complexity as much as it is geared toward enabling private clouds. It's obviously still early days, but it feels like vendors targeting private clouds need to think more about how the software can provide quantifiable business benefit instead of just providing a set of technical building blocks.
Note that these are just thoughts, feedback is very welcome in the comments or on Twitter (@dr138).