Ever since Amazon launched its EC2 product the industry has been set abuzz. Rackspace, Google, Microsoft, everyone is trying to get in on the game. Rackspace has been vocal lately that their cloud has caught up with Amazon’s EC2 product. It takes a lot of effort to really understand both enough to compare them and I will be doing that here.
First of all, cloud computing is a fairly generic term. It can mean a variety of things which of course may lead to misunderstanding of the services provided.
According to wikipedia:
Cloud computing is Internet- (”cloud-”) based development and use of computer technology (”computing”).[1] In concept, it is a paradigm shift whereby details are abstracted from the users who no longer need knowledge of, expertise in, or control over the technology infrastructure “in the cloud” that supports them.[2] It typically involves the provision of dynamically scalable and often virtualized resources as a service over the Internet.
Wikipedia Article on Cloud ComputingThe definition here is not very specific. Any abstraction from the actual infrastructure could be considered a cloud. There lies the problem with comparing cloud implementations. You could have two vastly different cloud products that are virtually polar opposites aside from the fact that you’re abstracted from the hardware yet everyone will want to compare them. Apples and Oranges might both be fruit but comparing them just doesn’t work. Amazon and Rackspace have different products for wildly different types of users. Comparing them head to head isn’t really fair but we’ll give it a go.
After being asked “How is the Rackspace Cloud compared to Amazon?” over and over here is my breakdown on how they are the same, how they are different and what types of users should use which cloud.
Amazon Elastic Compute Cloud (EC2)
Amazon’s EC2 service has a simple design. You load system images on their simple storage service (s3) and then boot a virtual device with a set of virtual stats from that image. You have a choice in hardware equivalents from a little 1ghz machine with 1.7g of ram, up to a massive dual, quad core 3.25ghz machine with 64g of ram and over a 1.6TB of local storage. These little on demand machines are billed to you by the hour.
Amazon provides an extensive API to spin up and configure your instances, allocate static IP’s, select the image (AMI) to boot from, and shut them down. Typically this is how most instances are created. This isn’t the most user friendly method and definitely requires some technical knowledge.
It may not seem fair to add in a 3rd party company when talking about Amazon but really the way Amazon’s services are designed one of its strengths is the ability for people to build really impressive management tools such as Rightscale so I think its fair game. Rightscale uses the API’s Amazon provides to build a very impressive and completely free way to manage your servers.
Using Rightscale it is a little easier to launch instances but you still need someone pretty experienced with the ins and outs of Rightscale to get you setup with instances. You can setup rather complex auto scaling networks that are dynamically configured at boot in an almost trivial way once you really get a grasp of how Rightscale uses Amazon.
When we are talking about Amazon’s EC2 product its really not just EC2. Its their entire suite of cloud services (which is far far far outside the scope of this post). Leveraging the services Amazon provides gives you the ability to build virtually anything you can fathom. From complex data processing systems with thousands of servers, to a set of MySQL servers in front of a wiki. The main caveat with Amazon is the fact that you really be versed in the services and APIs provided by Amazon. A good place to start is O’Reilly’s Programming with Amazon Web Services.
Rackspace Cloud (formerly “Mosso”)
Rackspace’s cloud offering is a bit different. They have 3 primary products. Cloud Sites, Cloud Servers, Cloud Files.
Starting with the product aimed at EC2: Cloud Servers. Like Amazon Rackspace’s cloud is based on Xen Virtualization Technology. You select an image, spin up an instance and pay hourly for usage of it. With Rackspace you must select one of their predefined images as opposed to the freedom to create images willy nilly on Amazon. Rackspace has a unique ability to resize isntances LIVE. On Amazon resizing instances is an involved process if you didnt take care to setup your instance through Rightscale using their rightscripts. Rackspace makes it much easier for a team not so experienced with cloud concepts to take advantage of some of the benefits clouds bring to networks.
Rightscale’s sizing options are different from Amazon’s as well with by standardizing on a dual quad core server, you get the fraction of CPU time of the memory you select. Amazon is doing similar operations obviously under the hoot, but they kind of hide that implementation from you and provide you with a simple “this is equivalent to” metric. With Rightscale’s sizing method you dont have an option for “high memory low CPU” or “low memory high cpu”. They both increase relative to each other.
Cloud Files. This is essentially Amazon S3 without a WSDL interface. The pricing is quite similar (slightly more expensive) but right in the same arena.
Cloud Sites. Now this little service is different from Amazon’s offering. Amazon provides more of a developer toolkit to build applications. Cloud Sites on the other hand is geared for people that just want to run their site in a way that can scale and not worry about servers, networks, etc. Cloud Sites is more closely related to Google App Engine than it is to Amazon Web Services. Its a good solution for web developers with no sysadmin experience. You have a simple blog or application that you want to run? Cloud Sites is a great option for you. You dont have to become a cloud guru to have a hugely scalable site.
Comparison
Amazon and Rackspace seem to be targeting a different type of user. Amazon seems to be better geared for complex applications with competent IT resources. Rackspace’s cloud seems to be more geared to small teams, solo developers, and projects that have limited IT resources. Both provide a simple pay as you go model, but I dont think people wanting to casually play with clouds will end up using Amazon. Rackspace on the other hand makes it quick and easy for those casually interested to play with cloud concepts.
On the other hand those with non-trivial applications and non-trivial use-cases will find Rackspaces product very limiting. For those users, Amazon will be the clear choice hands down.
Summary
Quite frankly, I’m impressed with Rackspace’s Cloud offering. They are working on allowing custom images like Amazon does, after which I’m sure Rightscale will be able to provide some of their magic at some level (albeit minus all the slick Amazon nuances). They are still missing many of the advanced features that Amazon has, but they are making fantastic progress. With Cloud Sites, Rackspace is branching out as well to provide unique services rather than just playing catchup with Amazon. The differentiating feature that most caught my attention is the Cloud Servers live upgrading of resources ability.
The applications I tend to build are rather complex, so I’ll be sticking with Amazon. Their variety of instance size options and types (even windows for those of you that use it) we well as ancillary cloud products close the loop on most of my enterprise requirements. I will however be recommending Rackspace for anyone with simple cloud needs.
Find out more