Looking for something else?
Remember when Dorothy and friends finally -- finally! -- made it to the Emerald City? It was opulent, but the Great and Powerful Oz wasn't quite as expected.
In today's IT, The Almighty Cloud is our Oz. We venture toward it, full of hope that it will magically solve all known IT problems. It won't, of course. But also remember: However untrue Oz's hype, the wizard ultimately helped Dorothy and friends. They got where they needed to go, if not how they initially expected. Cloud technologies are the same. They're transformative, but first we must pull back the curtains.
There is no cloud
The cloud is not a real thing; it's an abstraction for flexible, network-savvy, on-demand services. There are entirely real and successful implementations, but in essence, it's a style of operation. And unlike the Internet, there is no single unified cloud. Not every endpoint can meaningfully communicate with every other endpoint.
There are many cloud service providers -- Amazon Web Services, Cloud Foundry, Engine Yard, Force.com, GoGrid, Google, Heroku, HP, IBM, Joyent, Microsoft, Rackspace, Savvis and Verizon Terremark, to name just a few infrastructure and platform options. They offer varying application programming interfaces and abilities. Some specifications, such as OpenStack and vCloud, aim for standardization and interoperability, but it's very early days.
Meanwhile, public clouds hosted by service providers, available for a fee to all comers, are sometimes portrayed as the one true way. Enterprise-hosted implementations (private clouds) are thus false. Cloudistas spurn virtual infrastructure even more.
The "true cloud" mythos is great attack marketing for the service providers, but for customers, outcomes outweigh labels. External services have advantages, including minimal upfront expenses, great "trialability," economies of scale and the benefit of letting someone else worry about this stuff. Some uses, such as content distribution and off-site backup, make perfect external services.
External services have drawbacks, however. They include the requirement to always send data over the network, the higher latency of far-away resources, a variable pricing structure, and genuine security, auditability and regulatory compliance concerns.
As a developer, I love public clouds. But those in regulated industries, with latency- and bandwidth-sensitive apps, where even temporary service unavailability is unacceptable, or who are already comfortable managing Capex/Opex tradeoffs, see things differently. For them, cloud needs to be private, or a public-private hybrid.
Cloud elasticity is overstated
Software as a Service (SaaS) and Platform as a Service (PaaS) offerings are genuinely elastic. Buy however much you want. Infrastructure as a Service (IaaS), though, isn't very elastic -- even for services like Amazon Elastic Compute Cloud (EC2), where "elastic" is part of the name.
You can buy as many EC2 servers as you like, fire them up, and you're off! You can later shut them down, lowering or eliminating ongoing charges. That's all great. But EC2 is a utility service, with individual servers sold only in fixed configurations. Once chosen, resources never flex over an instance's lifetime.
I've made the mistake of describing EC2 as elastic to clients. It's then very hard to explain why the instances are so inflexible, and that they'll need load balancers, scale-out clustering and the like to support a truly elastic service. Clients eventually get it, but they're disappointed.
It's even worse when clients already have virtual infrastructure. VMware, Hyper-V, XenServer, and IBM PowerVM all allow precise CPU, memory and I/O configurations. Those resources can be easily added or removed -- sometimes, even live, while applications are running.
Virtualization platforms share resources across instances and can even live-migrate workloads. EC2 and most IaaS competitors do none of those things. Virtual infrastructure is therefore more elastic than corresponding cloud services, in important and practical ways.
Over the rainbow
To be clear: Like so many others, I love cloud computing, with good reason. The option to externally host infrastructure, services and apps is great for developers, many operators and the industry as a whole. At a higher level, cloud describes everyone's aspiration for more a flexible, efficient, dynamic IT, and it usefully benchmarks all deployments.
But all that "cloud solves everything" rhetoric helps no one. So when you're traveling to Elastic City, take in the wondrous sights -- but pay great attention to that man behind the curtain!
About the author:
Jonathan Eunice is principal IT adviser at analyst firm Illuminata Inc.
Let us know what you think. Write to us at firstname.lastname@example.org