Custom Search
Friday, January 30, 2009
Cloud Computing Appliances

A couple of weeks ago, the New York Times reported on a Cisco announcement that it would start manufacturing what could best be described as "cloud computing appliances": commodity servers with virtualization software pre-installed. I believe the notion here is that you just rack up enough identical boxes to meet your total computational needs, then virtualize all your applications onto that substrate.

This is entirely achievable, too, by the way, as this (mind-blowing, at least for me) demo of 3Tera's AppLogic virtual data center product shows--literal drag and drop, plug and play, connect-the-dots configuration magic. Virtualization software from both VMWare and the open-source Xen hypervisor product both support virtual image migration (i.e. move a running virtual machine from one physical machine onto another one), so as long as your hardware is beefy enough that your largest application component can fit on it, you can swap hardware in and out all day long if you want.

Now, of course, this does assume you want to or have to run your own data centers; economic theory states you won't be able to do it as cheaply as Amazon does with AWS until you're deploying within an order of magnitude as many servers as they have (and they have a lot), and the enterprise market is large enough that there will be economic motivation for the cloud vendors to address current worries about risk management, data security, and operational visibility and control. So interestingly enough, Cisco may find that its largest addressable market consists mainly of the large cloud vendors!

Now, though, if you follow this logic through, it suggests that if you do decide to host a data center in the cloud, you should actually layer your own virtualization on top of it, purely for management purposes, so that you can make efficient use of your EC2 instances, just as virtualization now lets you efficiently use physical hardware. If you can just rack up stacks of identical hardware in your own data center, and have the software in place to manage the virtual infrastructure laid down on them, you also have the wherewithal to just "rack up" more EC2 instances in the same way.

I suspect that with commodity hardware (take your pick of vendors) and commodity virtualization software and operating systems (mature open-source projects like Xen and Linux count as commodity software) that Cisco will have a hard time making the case for their bundled product--riding the price points on both commodity software and hardware will be difficult to say the least, and if they don't, they may find their main competitor in the space is essentially a well-written HOWTO (Linux + Xen + cheap x86) document given away for free, which is never a good competitor to have.

Thursday, January 29, 2009
Cloud Computing Cost Profiler

On Tuesday, William Louth posted an article describing what he calls Activity-Based Costing (ABC)--essentially a profiler for testing a cloud computing implementation. He describes hooks that can be applied around API calls to services like a Google App Engine platform or an Amazon Web Services S3-style service. In turn, when you run a test implementation, you can gather a recording of the API calls you make and get an understanding of how much your implementation will cost in terms of cloud computing charges.

This in itself is a very useful tool, especially when used in conjunction with a rigorous product development process. One such method is the Incremental Funding Method (IFM), which is an ROI-based prioritization scheme for agile software development. This method requires placing a (projected) revenue impact for implementing a feature; it also requires a cost estimate on the feature. Unfortunately, I think far too often development teams provide an estimate simply in terms of level of effort (e.g. story points), without including a formal analysis of operational cost. While this provides one measure of the cost involved in developing the feature, it does not provide a complete picture, often leaving product owners with incomplete information (they assume the feature will simply be "deployed to production").

If you are considering deployments or development on cloud computing infrastructure, you are almost forced to consider operational costs up front. This can be done at two levels: once, with traffic estimates, as an architectural proof-of-concept, and then again, using a profiler like Mr. Louth's to validate the cost models once the implementation is complete. This can save you from what looked like a profitable feature (because easy to implement) but is actually revenue negative (because costly to operate).

I think more development tools like Mr. Louth's are needed (his works for Java, against some mock cloud services), and will no doubt be implemented by the development community in due time. Kudos to Mr. Louth for a great idea.

Wednesday, January 28, 2009
Zimory Public Cloud

On Monday, Deutsche Telekom announced a spinoff startup company called Zimory which aims to create an online marketplace--the Zimory Public Cloud--for elastic cloud computing resources. Companies with spare computing resources can install an agent, offer a certain level of SLA, and then begin selling their excess capacity. Buyers of resources can follow an online provisioning process similar to that found on Amazon Web Services EC2: select a virtual machine image, select a level of service, provide your credit card, and off you go. Zimory presumably takes a cut of the whole transaction.

I won't speculate as to the likelihood of success here; the value of online marketplaces are heavily dependent on network effects, so if they can manage to attract enough willing sellers, they may have an interesting business. However, as indicated in our last post about experience curve effects, economics would tend to dictate that it's probably cheaper to offload more of your data center onto existing cloud providers than it is for you to host your own machines, so it doesn't seem likely that companies are going to have spare cycles sitting around to sell in the long run.

Rather, I'd like to focus on some of the technology impacts the existence of this company reveals. According to this CNET news article covering the launch, a great deal of the software involved is open source software, from the Xen server virtualization project to the various canned server images available ("blank" Linux systems, LAMP stacks, etc.). Mature open source projects are generally the sign of commoditized software.

To me, this suggests that if you do run a data center (which you will for certain critical services which cannot be cloud hosted), then you should be virtualizing your servers as a matter of course. Xen and VMWare support the concept of instance migration, so you can have flexibility in moving your applications around/off machines that need maintenance, and can make efficient use of your hardware resources while sticking to a "one machine for one function" logical administration model.

It's worth noting that while it is possible to spin new instances up and down in a virtualized data center, you must still provide your own high availability (HA) through standard means like load balancers, Linux HA or VMWare HA, RAID disk arrays, etc. You must of course be aware of making sure that instances of highly available services are actually spread across distinct physical infrastructure; this gets more complicated in a virtualized setting. Amazon EC2 offers the notion of "availability zones", which are located in separate data centers; in a single enterprise data center you can approximate this by dividing your servers into two or more virtualized pools and then striping your services across them.

Zimory's fate in the marketplace remains to be seen, but their existence means that server virtualization has reached a level of maturity where it must be considered de rigeur for data center operators.

Tuesday, January 27, 2009
Experience Curves for Data Center Hosting

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.

Sunday, January 25, 2009
Welcome to Cloud Computing Economics

New "cloud computing" vendors like Amazon Web Services, Google App Engine, and others are changing the game for businesses needing to host Internet applications and services. This site will keep readers up-to-date on new developments in the field, while providing the economic and technical background and analysis needed to make critical business decisions.

Welcome, and enjoy.