Could Amazon be your next infrastructure partner?
If you've been around the Internet for a long, long time, you might remember when Amazon.com was an online bookseller. Then they started adding departments, and their home page sprouted more and more tabs as you could buy music, videos, computer software, and other consumer goods. These days, Amazon appears to stock just about anything smaller than a jet plane. They're a trusted brand at the pinnacle of e-commerce.
But apparently selling everything on earth cheap hasn't been enough to really generate the sort of cash that Amazon would like to spin off. So, they're looking in other directions. Recently they added the Amazon
Simple Queue Service to their list of offerings.
The Amazon Simple Queue Service "offers a reliable, highly scalable hosted queue for buffering messages between distributed application components." It's exposed via a Web services interface that provides seven simple operations (enqueue, read, dequeue, and so on). But unlike the other Amazon Web services, this one has nothing to do with the products that Amazon is selling. You can use it for anything at all.
To be more specific, that means that you can place up to 4,000 messages, each up to 4KB in size, in one or more queues for up to 30 days. Those are the beta limits; I wouldn't be surprised to see them raised in the final product. (I also wouldn't be surprised to see some bright boy figure out how to use that 16MB or storage as a little external file system). While in beta, using the Amazon Simple Queue Service is free. Amazon says "We anticipate charging for this service once it is officially released. We haven't finalized pricing yet, but we expect to make this service available to you at a very reasonable price."
From the developer's point of view, this is a pretty intriguing opportunity. By taking responsibility for all of the messaging infrastructure, and by providing a simple interface to it, Amazon threatens to lower the cost of entry for setting up a distributed application to just about zero (plus whatever they charge for the service, of course). Without the Amazon Simple Queue Service, setting up a distributed application with message queueing for one of my smaller customers would be daunting: install a server, get MSMQ (or some other queueing
software) set up and configured, write to its API, figure out who's going to monitor and maintain the server. With this new offering, the job is simplified to just putting some Web service calls into the components. I wouldn't have control over the server - but frankly, my own experience has been that Amazon is unavailable a whole lot less than any server I've ever set up myself.
And from Amazon's point of view, whatever they manage to charge for this service should just be gravy. After all, they already have their huge investment in servers and distributed software in place. This is just letting other applications piggyback on top of what they've already built. If selling queueing is fabulously successful, of course, they'll need to add more servers - but in that case, the servers should pay for themselves.
We saw a lot of talk about "Internet time" a few years ago, and how small, nimble companies would eat the old firms for lunch. We all know that this didn't happen, but things like Amazon's queueing service and Google's G-Mail make me wonder whether there's a different sort of Internet time coming into
Internet players offering reasonably-priced services faster than traditional software companies or standards bodies can react. I suspect this won't be the last interesting service that comes out at a reasonable price point from such a company.
Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.