As expected, at least by me, Amazon EC2 is evolving in a more “concrete” platform good for web hosting; in fact, some time ago I received a mail from AWS announcing two new features: Elastic IP Addresses and Availability Zones (you read for sure the news also on Slashdot: Amazon EC2 Now More Ready for Application Hosting, isn’t it?)
After my last post (which has got an update since then), I discussed the technology with a couple of colleagues in the system administration field and the general opinion is that there not sufficient trust right now for using these services for production and/or large projects: in the best case they are seen as not yet reliable as real hardware, in the worst as something still too “academic” to be used today.
I’m sure that this is about to change not only because real hardware is way too expensive to manage directly, but instead because the complexity of application setups which continues to grow more and more, with a lot of details regarding every included element to be taken into account only by humans: so what’s the difference in moving the management of this complexity from hardware level to virtual hardware/cloud level?
In my opinion the main difference is that virtual hardware management can be automated through software itself: think about a day when, inside your application installation script, you’ll have also an environment deployment script in which you’ll have a description of the environment required by the application and anyone will be able to run in on any cloud computing service through a cloud service console (yes, someday there will be a standard that will define the API to access all cloud services… maybe someone wants to start to talk now about that?): load balancers, web and database servers (with their operating systems and applications), firewalls, IP’s, everything will be instanced with a click on a button.
At the real hardware level will remain the simplest of system administration duties: take bought hardware, find a space somewhere or order new racks and network hubs, plug in power and network cables, turn on the switch, maybe insert a CD or better count on network boot, throw away old/broken hardware and… stop, no complexity at all (this is not entirely true, as every system administration professional can tell, but let’s assume it here for simplicity’s sake).
All the experience at application setup level will be transferred to the cloud management software, letting sysadmins specialize in it and not in all applications that will run on it, passing from a fragmented knowledge to a specialized one: this means less problems solved in less time, the creation of clear roles, more satisfied sysadmins, more satisfied developers, and so happier customers.