jonm.dev

The Art of Writing Software



Experience Curves for Data Center Hosting

Categories [ Cloud Computing Economics ] Tags [ Amazon Web Services, cloud computing, data centers, EC2, economics, experience curve, learning curve ]

Are you familiar with the economic theory of "experience curves" (also known as "learning curves")? In the case of cloud computing, it explains why it makes sense not only to outsource new data center costs to cloud providers like Amazon Web Services (AWS), but in fact why it may make sense for you to stop operating a data center at all.

Experience curves were formalized by the Boston Consulting Group (BCG) and describe how production costs tended to fall in a predictable fashion as the number of units produced increased. Namely, the more you produce, the better/quicker/cheaper you get at it. These are usually formalized as a percentage cost: for example, a 75% experience curve means that with each doubling of production, the marginal cost of producing the last unit drops by 25%. So, for example, one unit might cost $100, but the second only costs $75. The fourth costs $56, the eighth $42, etc. Experience curves show a diminishing rate of return:

(Fig. 1: This experience curve graph is a good indicator of why you won't be able to beat Amazon's cloud computing prices.)
Image of a graph showing 75%, 85%, and 90% experience curves

In the cloud computing case, we want to know the marginal cost of deploying and maintaining servers. While we don't know the actual experience curve for that, typical experience curves fall in the 75%-90% range. So let's assume data center server deployment follows a curve in that range as well.

Now by one estimate, Amazon is running around 30,000 servers. Current Elastic Compute Cloud (EC2) pricing shows that a "small" server instance can be rented for $0.10 per hour, or around $72 per month. Now, since Amazon is charging that price retail, we can assume their actual cost is lower; their most recent income statement shows a revenue/cost of revenue ratio of around 1.3 (or a 30% markup). So let's back that out, and say that the small instance costs Amazon $72 / 1.3 = $55 per month.

If you work backwards, at a 75% experience curve, their first server would have cost $3967 per month to deploy. On a 90% experience curve, their first server would have cost $263 per month. (Recall that this includes the cost of hardware, power, staffing, etc.); the range depends on which experience curve you choose. A 75% experience curve means you learn faster than a 90% curve, but it also means Amazon has gotten that much farther ahead of you.

Let's say you are contemplating a data center with 100 servers. Working the curves forward again, this means you might expect to have a per-month cost of between $130 and $587. This is still double what Amazon would charge you retail, even in the best case.

In order to get under what Amazon would charge you retail, you'd have to be deploying somewhere between 5,000 and 15,000 servers to get your marginal cost under the $72 per month Amazon will charge you. Very few companies need data centers that big; are you one of them? Are your engineers and operation staff as good as those at Amazon (i.e. can you actually learn and improve as quickly as they do)? Even if they are, how long will it take you to realize those savings, and what business opportunities are you missing out on while you are making this infrastructure investment?

Now, granted, not all applications are suitable for cloud deployments; some customer data requires levels of security that cannot be provided (yet) by a cloud vendor, although you can expect that vendors will be trying to gain security certifications from well-known parties so they can start hosting more sensitive data. At any rate, for the time being, it is possible to host your more sensitive applications and services yourself, while outsourcing the more cloud-appropriate ones out to a vendor.