Minimize Blog Search
Print  
 
 
     
Hey, hey, mama. What's a matter here.
Jun 14

Written by: Kenny
6/14/2008 7:29 PM

Cloud computing goes beyond just the exciting cool online apps that are here and coming.  There are a number of new back-end products being offered.  Amazon and Google are leading the way with a number of services that take advantage of the huge infrastructure that they already have in place and which they are willing to share with us (for a small price, of course).  Microsoft has felt the pressure and  are also offering (some say scrambling to offer) their own cloud computing products,

 

Amazon AWS (Amazon Web Services) 

 

Since Amazon was the first one I tried, I will start with them.  It might seem funny at first that the planet's largest book store would be getting into Cloud Computing, but when you think about the huge infrastructure they have had to build up over the years to accommodate their business, it makes sense that they would look for a way to monetize that huge investment. 

 

Amazon Simple Storage Service (Amazon S3)

 

This is essentially a big ole file server.  You get to upload your files (pictures, videos, music, office documents, any type of file) and pay only 15 cents per gigabyte per month (they also charge a miniscule amount for accessing it).  This beats filling up drive after drive with your huge picture, video, and music file collection.  Plus, you have to face the fact that even though you may be moving your family photos and videos regularly to external hard disk drives, if one of those drives gets hosed, you've just lost all your family pictures.  And let's say you always keep two copies on separate drives at your house, well, if your house burns down, then good bye photos.  If you store them on the Amazon servers, they are always backed up in different locations, and accessible from anywhere in the world.  Amazon put a lot of money into their redundant and distributed systems so you don't have to.  And get this, even though Amazon's website went down for a couple hours last week, from what I heard, the S3 services were still humming along just fine.

 

So Amazon provides storage, but how do I get my stuff up there you ask?  Well, since this is "back end" cloud computing, they do not provide a user interface, so you have a couple choices, you can learn their API and write your own program (I did a little of this just for the fun of it) or you can use a number of third party products.  One of them is Jungle Disk, which provides a Windows-like way of moving your files to and from Amazon S3.  Essentially, a drive shows up in your Folder tree and you use it like an external drive.  You buy the program once ($20) and use it on as many of your own computers as you like.  It also provides the ability to automatically back up folders and files.  Just think, you could set it to back up your My Music folder once a week, and any new CD's you rip will be automatically backed up to Amazon S3.  It is smart enough, BTW, to know to which files it's already upload and not try to upload those again.  It's also smart enough to know when a document you've been working on has changed and saves the new version (while retaining the old versions).  The only quirky thing about Jungle Disk that I found was that in order to make the backup and versioning magic happen, it stores your files with weird file names and extensions.  This is all invisible to you as long as you only use Jungle Disk, but if you look at your files with other front ends or programmatically, it's kind of messed up.  You can't even access your files from a URL.  So I only use Jungle Disk for scheduled backups for my disaster recovery type stuff (my Quicken data files specifically).

 

This leads me to solution #2...S3 Firefox Organizer plugin for the Firefox Browser.  The prerequisite, of course, is that you must have the Firefox Browser (version 2) installed on your machine.  This Firefox plugin looks like your typical FTP client.  You move files from your computer on the left to the Amazon S3 service on your right.  You can also create folders on S3 and set the permissions for your files.  One of the coolest features is that if you right click on a file on the S3 side, you can select "Copy URL to Clip Board" you can then paste it into the browser address bar and download the file, or paste it into an email so others can click on it and download the file (of course you have to set the permissions on the file first to allow anonymous users to access it).  Another use for the link is you can use it to programatically access the file.  So I can store my mp3's on Amazon S3 and then write a web page, flash movie, or Silverlight program that acts like a jukebox and plays the mp3's (in fact that's what I did, and I'll write an article about that pretty soon).

 


Amazon Elastic Compute Cloud (Amazon EC2)

 

This one is still in Beta.  I've signed up for it to test it out, but haven't played around with it yet.  From what I gather, these are virtual machines that are accessed, I understand, as web services or websites.  You'll program these yourself using languages (I assume) are Linux friendly.  You can pay to set up as many "machines" as you need and they are virtually instantly created and ready.  The idea here (as with most all Cloud Computing services) is when your website/application/business grows, you can easily scale to meet your needs by creating more machines to handle things.  And should your business grow at an unanticipately fast rate, well, it shouldn't matter, you can bring up machines as quickly as needed.

 

Because you only pay for what you use, things start out cheap.  If traffic starts going through the roof, you start paying more, but in theory, you should be making more money at that point, and easily be able to afford it.  If not, maybe you should rethink your business plan.

 

A couple "for instances" I can think of are sites like MySpace and more recently Twitter, that experienced such a quick growth that their servers went down all the time, or at the very least, things started getting really, really slow.  If their services and sites were designed using Amazon's EC2, then they should have been able to grow quickly to meet the growing needs.

 

Amazon Simple DB

 

This is also in Beta and I'm waiting for my key.  As you can guess from the name, this is a database solution.  But when they say "simple", they mean it.  It is essentially a "name/value" pair type of database.  So you write and acess data by means of an ID, name, and value.  For instance, the ID = "ABC123", the name is "FirstName" and the value is "Kenny".  For your applications, you'll probably have to get fancy and create a data access layer that will add a little more functionality to it.  It's almost inevitable, though, that a number of programmers will create DA's that you can use.  Despite its simplicity, I was fairly excited, though, because I was looking for possible database solutions for Silverlight applications that I'll be writing.  I started getting the idea of using this to save object states, essentially making my own kind of Object Oriented Database.  But then Google App Engines came along and I found the Google App Engine even more suited to my idea of Object Oriented data storage, but more about that on another blog post...

 

Amazon Simple Queue Service (Amazon SQS)

 

I haven't had any need for this yet, so I haven't played with it.  From what I understand of messaging queues, one use is that you can processes work ansyncronously.  For example, you may have one computer that crunches some numbers somewhere and another computer that uses those numbers to refresh data seen on a website (like maybe a stock ticker).  So instead of the display computer waiting until the number crunching program finishes, it can go to the messaging queue and ask "is the number cruncher done?" and the queue might say "I don't have any message about that try back in a minute" and so your display  computer goes back to whatever it was doing.  Finally, at some point it asks the questions and the queue answers back "yes, the number cruncher program is finished and here are the numbers".  It then updates its display and starts the questioning all over again.  The nice thing about this scenario is that the two computers don't have to use the same operation system (one could be Linux and the other Windows), and they don't even have to be on the same network.  So essentially it also helps computers that aren't connected to the same network or that speak different languages "talk" to each other. 

 

That's about it for Amazon's "Biggies".  There are a few more very specialized web services that allow you to process credit cards and in other ways move money around (Amazon Flexible Payments Service), keep track of how much users use your Amazon cloud appliation and get paid for it (Amazon DevPay), allow you to access all the information for Amazon products and sell them through your site (Amazon Associates Web Service) or use Amazon's own fulfillment (Amazon Fulfillment Web Service). There is also the Alexa Search and related Alexa services that allows you to query Alexa's database of the internet.  It allows you to programmatically search in ways that Google's user search engine doesn't allow. Then there is the very interesting, highly specialized service Mechanical Turk which allows you to essentially outsource certain projects that need the human brain more than machines (like write transcriptions or inspecting photographs for characteristics).

 

A lot of these are in Beta still, but hey that's fine.  It gives us programmers time to test everything out and get up to speed.

 

 

So that's it for Amazon.  I'll talk about Google's App Engine in my next post on Cloud Computing...

Tags:

Your name:
Title:
Comment:
Add Comment    Cancel