Why It's Hard for Enterprises to Save Money with Cloud Platforms
Thursday, January 22, 2009
There's a widespread belief that once a company moves its in-house applications onto a cloud platform, its costs will go down. Intuitively, the idea makes sense. After all, big cloud providers like Microsoft and Google should enjoy incredible economies of scale. (I don't care who you are--their data centers are bigger than your data centers.) And assuming these economies are reflected in their prices, running your apps in their cloud ought to be cheaper, right?
Well, sure--someday. If you look at what the most visible cloud providers offer today, however, this assumption turns out to be largely incorrect. The primary falsehood is the belief that an organization can move its on-premises applications to the cloud unchanged. While this isn't impossible--more on that in a minute--it can certainly be problematic.
Consider Google's AppEngine, for example. It supports only one kind of application: Python Web apps. How many existing enterprise apps fit this description? And even if you do have an on-premises Python app that you'd like to move to the cloud, AppEngine's datastore is a Google-proprietary hierarchical system--it's not a relational database with SQL. Moving an existing application to this world, however cheap it might be to run once it's there, isn't an option for most.
Microsoft's Windows Azure offers similar challenges (today, at least). While it does provide a reasonably standard .NET environment, it also offers only a proprietary hierarchical datastore--no relational tables and no SQL. Once again, moving existing apps to this world is more than a little challenging.
In fact, neither AppEngine nor Windows Azure today is intended to run existing on-premises apps unchanged. Instead, both focus on letting us build very scalable applications for the Web. This is certainly a worthy goal--it's exactly what you need for building some new software. But it's not much help to an organization that just wants to run its current apps more cheaply.
Of the most visible cloud platforms today, Amazon's EC2 is the only one that offers the ability to run on-premises applications in the cloud. With EC2, you really do have the potential to move your apps to Amazon's cloud unchanged. Even then, though, will you save money? It depends, as others
have pointed out. And other complexities also emerge, such as the challenge of managing applications running on a cloud platform. Even with EC2, moving your current apps into the cloud isn't a no-brainer.
A related point: It's often claimed that cloud platforms can provide a cheap on-demand solution for handling extra computing load, much as electric utilities rely on gas generators to handle spikes in demand. But this is only possible if I can run the same app unchanged in the cloud and on-premises (or, I suppose, if I've got a version of the app and its data for each environment, which isn't a simple thing to create). Once again, I can do this with EC2 but not (today, at least) with AppEngine or Windows Azure.
The equation seems simple: Cloud platform economies of scale equal a cheaper way for me to run my current apps. Yet when you look at what's out there today from the big vendors, much of what's on offer just doesn't allow this. Wanting something to be true doesn’t make it so.