Looking at the Cloud Platform Features

I have found a need to do some research across the various cloud offerings so that I get good feel for what each has to offer. At this point in my investigations, I am focusing on only three platforms: Amazon Web Services, Microsoft Azure, and Google App Engine. The three have common sets of features: storage through an API, compute resources, and ability to respond to demand by scaling application instances. The storage APIs encourage scalable patterns over patterns that could cause data contention. Amazon requires that the application handle scale up and down on its own. Azure and App Engine scale for the user through a combination of configuration and observed demand. These services also offer authentication services as well as the ability to create your own authentication. App Engine integrates with Google logins, Azure works with Windows Live, and Amazon through security mechanisms in the Amazon Machine Instances.

At this point, the platforms start differentiating. Google App Engine (GAE) requires you to write all code to be executed on the platform in Python. To help you out, they provide a number of Python libraries to build applications. All applications receive input over HTTP. No queuing support exists. Google has some infrastructure to allow for high speed, shared, non-persistent cache as well as facilities to send e-mail and manipulate images.

Azure requires all applications that run on it to use .NET work happens in worker roles and pages are served by ASP.NET. Microsoft also includes a variety of ways to store information based on the scenario: Live Mesh for synchronization across devices; Sky Drive for sharing amongst friends; SQL Data Services for scalable application databases; and Azure Storage Service for blobs, queues, and non-relational tables. Coming soon are locks, a caching layer, and other features. Azure integrates with .NET Services (Service Bus, Access Control Service, and Workflow Services) and Live Services (a set of services to help build social and other application types). It appears that the primary integration point is "All offerings support HTTP/REST models."

Finally, there is Amazon Web Services (AWS). AWS has the most mature of all the offerings, having started their offerings in 2002. AWS divides their offerings into several groups: Infrastructure, Payments & Billing, On-Demand Workforce, Web Search & Information, and Amazon Fulfillment & Associates. The infrastructure group of services allows one to build scalable applications. It includes services for storage (S3), a scalable relational database (SimpleDB), a compute platform (EC2), a queue service (SQS), and a content delivery network (CloudFront). The remaining services allow a small entity to build a big business, track traffic patterns, or get assistance from people to perform tasks.

Of all the services, only Amazon charges money for all usage– though low usage means very little in overall cost. Google intends to not start charging until a sites receives 5 million monthly page views. Azure has yet to announce a pricing model. There seems to be consensus amongst Microsoft people I’ve spoken to that the service will be free for experimentation. I would expect that expenses might kick in using different metrics than Google. I fully expect that Microsoft will gate charges based on some threshold for bandwidth, storage, and compute time. There is no reason for this guess other than Amazon has a pricing model that uses these parameters and Microsoft plans on being "competitive."

%d bloggers like this: