We’ve started to see more stories about companies not “moving everything to the cloud” but instead moving everything off the cloud. The most publicized and analyzed examples of this is collaborative service provider Basecamp a who dropped cloud services costing $3.2 million in favor of in-house servers. This is a very radical example of a trend I’ve noted in the past. Most enterprises have identified at least one cloud application that broke the bank, cost-wise, and in most cases their problems seem to have stemmed from the same factors that Basecamp reported.
To start with, the notion of moving everything to the cloud has had a significantly negative impact on CIOs and IT planners. It’s led to the assessment that anyone who plans or maintains a data center application is a Luddite, and it’s contributed to what one CIO I chatted with called “gaming the numbers to get the right answer”. That means that many cloud application plans make all manner of favorable and unjustified assumptions to make the cloud look cheaper, when in fact it is almost surely not going to be.
Here’s a basic truth the article I’ve cited illustrates. There are no situations where the cost of a VM in the cloud will be less than the cost of the same VM in a well-designed data center. What makes the cloud cheaper is a lack of hosting scale that’s unusual for an enterprise, a need for scalability or elasticity, or a need to distribute hosting over a wide geography. The economies of scale a cloud provider can generate are, according to enterprises, only minimally better than that available in an enterprise data center. The difference is more than covered by the profit margins of the cloud provider. So to start with, cloud benefits are small enough to require protection, which leads to the second truth.
Cloud development practices that are widely promoted are usually drawn from OTT players rather than enterprises. They’re supporting global user bases and message-based exchanges among users rather than transaction processing. Enterprise IT is the opposite, but the “move everything” mantra encourages enterprise IT architects and developers to forget that. The first big problem that creates is database costs.
The article shows that the largest component of Basecamp’s cloud costs was the cost of cloud RDBMS. Enterprises often move data to the cloud because having a cloud application access databases stored on the premises creates traffic charges. The problem is that hosting the data in the cloud is costly, and unless the data is fairly static you end up paying to keep it synchronized with mission-critical databases associated with transaction processing that’s not been moved.
Then there’s the problem of componentization. Scalability is difficult to achieve without explicit state control, because user interactions are typically multi-step and where you are in the stages of the interaction has to be maintained somewhere. Sometimes this results in each piece of a multi-step interaction being handled by a different component, and that increases hosting costs. Sometimes a database is used to hold state so the components themselves are stateless and scalable, but that increases database costs again.
Scalability is itself the biggest source of cloud cost overruns. Yes, one of the big benefits of the cloud is that you can accommodate changes in load by scaling components, but of course that results in scaling of costs. Enterprises admit that in many cases they’ve adopted scaling strategies that did little to really change user quality of experience but increased costs significantly. What they realized they needed to do was to assess the way a multi-step interaction evolved. In many cases, there was considerable “think time” associated with a given step, and such steps didn’t gain much from scaling. The role of the user, and the role of software, have to be considered throughout a multi-step interaction to make a good decision on what benefits from scaling, and what limits should be imposed.
One enterprise described their decision to shift the front-end processing of a single application to the cloud. The application was being run using a maximum of four hosted containers in their data center. When they shifted it to the cloud, even with constraints on scaling and database costs, it ended up costing them six times as much because they allocated more resources than necessary and because their database costs weren’t properly assessed. The CIO said that even if they simply adopted a cloud container hosting service for four containers, it would have cost twice as much as it did in the data center.
Given stories like these, it’s hard not to wonder if the whole public cloud thing is a scam on enterprises. It’s not. The problem is our tendency to gravitate to simple things rather than to address complexity. There are things that the cloud is great at. There are applications where OTT development practices will enhance application performance and enhance user QoE. There are also applications that result in the opposite outcome, and it’s those stories we’re now hearing. The challenges of proper cloud usage, and the penalties for not ensuring it, haven’t really changed. What’s changed is the way they’re being discussed.
How it’s discussed isn’t changing enough, though. We’re accepting that the cloud isn’t naturally cheaper than the data center for simple VM hosting. We’re starting to accept that everything is not moving to the cloud, but we’re not yet discussing when the cloud is a better choice, why it is, and what’s really happening with cloud adoption. That’s making it harder to address the really important question, which is “What role will the cloud play in the future of IT?”
Simplistic answers to questions are comforting, which is why we fall into the “simplicity delusion” all too often. The cloud is a bunch of different things, ranging from a way to avoid building data centers even if it’s more expensive, to a way to provide global, elastic, reach to critical applications. There are things we could not do without the cloud, and other things that we should never consider doing there. There is no simple answer to the critical question of the cloud’s future, neither a highly positive or highly negative one. But there is an answer if we look hard, and objectively, at the question.