Amazon, The Cloud Supermarket, and Other Ways to Eat

Amazon, The Cloud Supermarket, and Other Ways to Eat

A couple weeks ago I wrote a post on Amazon’s Toolkit Strategy.  I wrestled with whether Amazon should still be considered infrastructure as a service (IaaS) or whether they were providing so many services that it was easier to think of them as Platform as a Service.  I ended up concluding that infrastructure and platform really aren’t different services at all, but points at the end of a continuum.

In conversations the past couple weeks this point has really been hardened for me, but I’ve found a more useful analogy then the toolkit one.  I’ve found it’s easiest to look at deploying your workload in the cloud as a meal.  You can get differing levels of help with your meal, but at the end of the day you can eat no matter what:

  1. If you’re developing and deploying your own software in your own datacenters you could think of yourself as a farmer.  You don’t have dependencies on the outside world (nor the security exposures and counter-party risks associated with them), but you also have to plant, harvest and cook just to get your meals.
  2. IaaS is more like shopping at a farmers market.  There’s still quite a bit of work involved to turn the raw ingredients you pick up in to a meal, but at least you’re not farming.  In this step though, if the farmers at your market don’t raise the cows the way you’d like, you’re going to be stuck with a crumby steak.
  3. What Amazon has created is a supermarket.  You can just buy the beef, the pasta, and the tomatoes if you want, but you can also buy hamburger helper, a bottle of Ragu or even a frozen lasagna.  There’s still some work involved on your end with all of these options, but less then there was before.  You increase your risk because if the grocery store accidentally breaks every bottle of your favorite Ragu (or worse yet stops carrying it) you may have to adapt quickly to an inferior solution.
  4. True platform as a service is like eating at a restaurant.  You can pick your restaurant, but once you’re there you are stuck with what’s on the menu.  There’s always a risk that meal will be horrible and if it is, all you can do is send it back.  You can’t add more oregano or try again next week with the same ingredients, if the restaurant you selected makes awful ravioli, you’ll eat awful ravioli, nothing at all, or pay for dinner twice.  On the other hand, there’s very little work on your part and often the costs are quite low compared with buying all the ingredients and investing all the labor to cook.  Also, while there is some risk that the restaurant won’t have what you like, how many of us are skilled enough cooks that we are less likely to burn our dinner then a guy who has sat in that kitchen and made the same entrees every day for the last 6 months?
Anybody have a better analogy?  Want to poke holes in that one?