Recently I stumbled upon a couple of articles1,2 and, remembering my experience with EC2, I discovered that utility computing was not what I was searching for: I was searching for something that helped me without adding complexity, but I was not happy with simple web hosting offers, I wanted also complete control over my infrastructure to have the technical freedom that I could need and because, when I think about my customers’ data, I trust no one.
Moreover, I’m thinking about a basic setup of a simple website+database, but also to complex setups in which there are many active elements in the infrastructure, each one with its own role, with also complex maintenance procedures.
So, after some research on the web, I got this list of services that seems pretty complete:
Here follows a grid that can help doing a comparison (please let me know if you find any mistake); please note that it can be incomplete because every company presents information in its own way and often marketing wins over technical completeness (hover on row heading to have an explanation):
|Amazon EC2/S3||Mosso||MediaTemple||Joyent Accelerator||GridLayer||Flexiscale||Grid Series||GoGrid|
|First Impression||Technical||Simple||Powerful||A bit confusing||Powerful||Simple||A bit confusing||Simple|
|Virtual Dedicated Server||x||x||x||x||x||x||x|
|OS||Linux||Windows Linux||Linux||Solaris||Linux||Windows Linux||Windows Linux||Windows Linux|
|Pay per unit consumed||x||x||x||x||x||x|
|Basic Price $||0||100||20||45||49||0||149.99 + 99.99||0|
|Public IP’s Manageability
I did not compare per unit consumed prices because it would have been too complex and definitely confusing (also for me); resizing (a machine or the cloud) is more or less an option for all the service in the list, so it’s implied.
Maybe in future I’ll have the opportunity to deepen my experiences with all these cloud suppliers, but for now I did a test with GoGrid for a couple of practical reasons (it hasn’t initial costs and subscription is immediate): in 10 minutes I had a CentOS web server running, 10 public IP’s to use, DNS servers, and the option to “install” load balancers, database servers and other web servers! I am very impressed, more than when I first instanced a virtual computer in EC2 with RightScale service (only do not use it yet for a production environment because I had some problems with the web management console and the virtual server themselves).
I’m very interested in this new technology because I think this is the future: in fact it should help reduce the costs of system administration at an unbelievable small quantity even for complex setups (but I’m sure that we’ll need always good human sys admins, too). If I only think about my direct experience with the actual way of managing a big infrastructure for one of my customers (he has tens of servers located by a big hosting company), I can only ask myself why we are working the old way: people that do not understand each other because they pertain to different organizations, long times (weeks) to obtain new hardware or even only a RAM or disk upgrade, debatable choice from both parts, difficult coordination for long manual processes, and so on; having a direct and automated control of the infrastructure should eliminate all these problems, leaving more time to solve the real problems of your applications.
Another useful way of thinking about the computing cloud is having one in-house: buying big iron to let your company create and destroy more and more virtual servers with something like VMWare can help your system department keeping up better with internal and external demand; there’s also the other way, the way of using cheap hardware that you may already own, like 3Tera AppLogic (used also by GridLayer) which aggregates small commodity server to obtain the same result.
Finally, in this article I implied a that we were talking about web hosting for production environment, but the clouds/virtual environments have another ideal usage: testing of applications. This alone is a big topic that could be covered in a book or two, but if you think only to the fact that testing implies one or more disposable environments that should be created and destroyed for every version of every application you develop, then it’s natural to ask ourselves (again) why we are not using them now instead of real hardware.
By the way, during my reasearch I also found the Data Center Knowledge news site which can be useful, in my opinion, for people interested in “news and analysis about data centers, managed hosting and disaster recovery”.
EDIT 20080329: I’ve got some good feedback and there’s news out there, so I’ve updated the post correcting some mistakes and adding a couple of points, trying to clarify the terminology.