Ahh the cloud. The latest buzzword out on our industry.
I read this
article today basically stating that if you wanted a job or a raise you just need to add the word cloud to your resume. In all honesty how ridiculous is that? It reminds me of so many fads that have come and gone. The HTML coding fad that could get you a six figure job like this article mentions. The Social Networking buzzwords that came along in the last few years.
So lets take a breath and take a step back from the buzzwords.
Don't get me wrong I think cloud computing is really cool. A buddy of mine is working on the NASA
Nebula project. Which is based on the
OpenStack project. The great thing about the whole thing is the abstraction of the code and data from the hardware. The fact that a lot of it is built in Python and that my buddy talks in terms of petabytes just makes the whole thing that much cooler.
Bottom line is that the idea of the cloud isn't coming, its here. Has been for a while. I've built
Microsoft Dynamics CRM 4 instances in the
Amazon EC2. I've also used EC2 for standing up staging and test environments for Web applications (Here are a couple of books that can help:
Host Your Web Site In The Cloud: Amazon Web Services Made Easy: Amazon EC2 Made Easy,
Programming Amazon Web Services: S3, EC2, SQS, FPS, and SimpleDB). Generally its not a particularly difficult process although there are definitely some gotchas.
My current development rig is actually a huge beefy box with
Windows Server 2008 Hyper-V because development requires having multiple servers communicating, and I would rather not have to go out and acquire new hardware every time I need to add a new server. Before my Hyper-V installation I used
VirtualBox to set up a small mock production instance locally. Granted being able to push that stuff out to Amazon or
Rackspace makes things a whole lot easier, especially if budget isn't as much a concern.
Speaking of budget I was recently talking to a Director of IT (not naming names or companies) and he said that if he had to build a company now, everything would be in the cloud. From a financial perspective it just makes sense. Housing your servers in a Data Center is expensive. Having your own Data Center is expensive. Hosting, Scaling and Load Balancing is time consuming and (you guessed it) expensive. I can spin up a scalable app in
Python using
Google AppEngine in next to no time. More importantly its free to start with, and if the demand was there I can pay to scale up! Microsoft has a similar deal with
Azure. Granted its a little more pay up front but the power and versatility is there.
In the end though, putting it in the Cloud is a tool not a panacea. If you have a crappy product and/or crappy code the cloud is not going to magically make it better. Don't fall for the buzzword hype. Don't fall for the latest fad. Understand what it is the cloud can do for you but don't try to pound a square peg into a round hole. After all remember the AJAX buzzword?