I have recently discovered Amazon's S3 and EC2 services and think they're pretty cool. Originally, I considered them my first foray into "cloud computing" but then realized I've been using Google's email service for quite a while. There's also the fact that I give software updates via my web site and I store backups off-site via FTP. Recently, I started saving some documents out to Microsoft's Live service, just to try it out.
Well, OK--none of those are really considered cloud computing situations, or are they?
Cloud computing is more than just storing a file online or participating in an web-based forum. It is an infrastructure of web services that can grow or shrink and be turned on and off as needs change. It includes virtual computers, storage, specific services, and can be hosted on a wide variety of hardware. In fact, a big idea of cloud computing is that the consumer of the services does not know or care what kind of hardware is supporting the services, nor where it is located--only that it is solid and quick and always available.
So, what advantages does it mean for me and how do I want to use it?
I have a Windows server in my home office that provides many services: multiple databases, a repository of software projects, backups of pictures and documents, a shared printer, and several virtual machines for testing software in various configurations.
This server takes time to maintain and space in my office. And if something breaks and needs to be repaired, everything that depends on that server is suddenly unavailable. If I need more memory or more storage, I have to go out and buy it, shut down the server, and install it. And if I want to be able to access it when outside of the home, I need to setup a router with the correct ports forwarded.
With cloud computing, I select a server from a configuration screen and click a button. There's no space in my office and it's already available wherever I can get internet access. If I want two servers with two different configurations, I simply add them to my configuration.
The first option has a significant cost up front and requires vigilance and significant knowledge. The second option requires very little knowledge and configuration and even less money. If I don't need the service for a week, it's not costing me anything because it's turned off. If I decide to move, I don't have to box up another computer and no changes are required on the server.
In fact, there may come a day when I'm down to one or two laptop devices (or even tablets) that simply connect to the internet and hook into my cloud devices from anywhere. In that case, if my laptop gets lost or stolen, I haven't really lost any documents, because nothing is local.
Another nifty aspect of using cloud computing could be demonstrations to clients. I could have scripts to setup a new VM to demonstrate a web site or application, walk in to a client's office, setup an icon on their computer, and have a clean, powerful presentation. And offering a week-long trial would be a perfect because it could be remotely controlled and monitored.
There are a couple of Cloud Computing presentations coming to the Portland area soon that I will be attending to learn more about this technology and how to take advantage of it. They are hosted by the OCCA (Oregon Computer Consultants Association):
I'm looking forward to learning more about Cloud Computing.