Wednesday, October 28, 2009

(empo-tymshft) Forward into the past with Amazon

Recently my Google Reader feed was flooded with items regarding new things from Amazon. Here's an item from Amazon itself:

In many cases, scaling out (by launching additional instances) is the best way to bring additional CPU processing power and memory to bear on a problem, while also distributing network traffic across multiple NICs (Network Interface Controllers). Certain workloads, however, are better supported by scaling up with a more capacious instance. Examples of these workloads include commercial and open source relational databases, mid-tier caches such as memcache, and media rendering.

To enable further scaling up for these workloads, we are introducing a new family of memory-heavy EC2 instances with the Double and Quadruple Extra Large High-Memory instance types.

But by far the primary hoopla was over another Amazon initiative.

Today I'd like to tell you about our newest service, the Amazon Relational Database Service, or Amazon RDS for short. Now in beta, RDS makes it easier for you to set up, operate, and scale a relational database in the cloud. You get direct database access without worrying about infrastructure provisioning, software maintenance, or common database management tasks.

Using the RDS APIs or the command-line tools, you can access the full capabilities of a complete, self-contained MySQL 5.1 database instance in a matter of minutes.

But what really attracted people to this initiative was its price. As Lewis Cunningham, an Oracle ACE who therefore may have a more than passing interest in things MySQL, noted:

For slightly more than a base instance, 0.11/hour RDS vs 0.10/hour base EC2 (this price is dropping 15% BTW) on a small server, you get a complete server with MySQL installed. You can create and manage your database instances via procedural call (the API) and you can scale to larger instances or additional storage fairly painlessly by also using those APIs. You also pay extra for your storage of course.

Now many of us still primarily think of Amazon as that place from which you can get CDs. However, they've gotten involved in other things. I'm surprised to discover that I've never discussed this in my blog before, but Amazon's EC2 is actually a pretty interesting line of business for Amazon. Quickly, what does "EC2" stand for? Amazon answers:

Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers.

Amazon EC2’s simple web service interface allows you to obtain and configure capacity with minimal friction. It provides you with complete control of your computing resources and lets you run on Amazon’s proven computing environment. Amazon EC2 reduces the time required to obtain and boot new server instances to minutes, allowing you to quickly scale capacity, both up and down, as your computing requirements change. Amazon EC2 changes the economics of computing by allowing you to pay only for capacity that you actually use. Amazon EC2 provides developers the tools to build failure resilient applications and isolate themselves from common failure scenarios.

Or, in other words, you use your computer as a terminal to get to an Amazon computer, and you buy some time on it. The Amazon computer is shared with a number of other users, effectively giving you a "time slice" on the Amazon computer.

I think some of my readers know where I'm going with this.

Basically, ever since computers were invented in the 1940s or the 19th century or whenever, the computing industry has oscillated between two different models of computing:

  • The Benevolent Model, in which a central service provides everything that the users need, including programs and processing power. All the user needs is a dumb terminal, something that acts as a dumb terminal, or something even dumber like a punch card reader. The central service takes care of everything for you. There is nothing to worry about. Dave?

  • The Rugged Individualist Model, in which a computer user doesn't need anybody else to do anything. A single computer, in the possession of the computer user him/herself, includes all of the power that the user needs. We don't need no central service; we don't need no thought control.
Now obviously these are the extremes, and there have been some computer trends (like client/server) that somehow combine the two. But it still seems like we alternate between the two models, and now the cloud computing model has us all leaning a little more toward the centralized model.

To put this model in historical perspective, let's take a look at a company that no longer exists - CompuServe. But let's look way back in CompuServe's history.

[Jeffrey M. Wilkins'] father-in-law, who ran an insurance company, needed to buy a computer. He wanted a particular model from Digital Equipment Corp., but the only one available turned out to be much larger than needed. Then, the two men had an idea: Why not buy it anyway and rent out the extra capacity?...

Initially, CompuServe sold its excess computer capacity to other corporations, but in 1978 it began providing services to the owners of personal computers. The goal was to squeeze profits out of underutilized assets by putting Wilkins' time-sharing computers to greater use at night, when they were frequently idle.

So Amazon is merely providing some new bells and whistles on a model that's been around for a half century. In the broadest sense, the question isn't about the bells and whistles, but what types of things people want to offload from their computers to the Benevolent Server in another location.

Which raises the question - what will people doing in "the cloud" (or whatever we call it) ten years from now?

(Picture source, license)
blog comments powered by Disqus