As we arrive at 2009, cloud computing is the technology creating the most buzz. Cloud technology is in its infancy, however, and enterprises would be wise to limit their efforts to small, targeted projects until the technology matures and vendors address a variety of potentially deal-breaking problems.

First off, let’s define cloud computing. Gartner says it is “a style of computing whose massively scalable and elastic, IT-related capabilities are provided ‘as a service’ to external customers using Internet technologies.”

The two most commonly cited examples of cloud offerings come from Amazon.com and Google, both of which basically rent their data-center resources to outside customers.

For example, Amazon’s Elastic Compute Cloud (EC2) lets customers rent virtual-machine instances and run their applications on Amazon’s hardware. Other services under the EC2 umbrella include storage and databases in the cloud. Amazon uses Xen for virtualization and offers customers a choice of Linux, Solaris or Windows operating systems.
The pitch is that customers can take advantage of Amazon’s expertise in running large data centers, that customers pay only for the compute and storage resources they use, and that Amazon can scale up or down easily, depending on the demand.

That’s the most basic level of cloud computing – infrastructure in the cloud. In this scenario, the customer is aware of and makes choices concerning the infrastructure itself.

The next level is cloud computing as a Web development platform. The best example is Google’s App Engine, a place where Web application developers can upload code (as long as it’s written in Python) and let Google’s infrastructure take care of deploying the application and allocating compute resources.

The third level is running enterprise applications in the cloud. A cloud vendor could host an enterprise application and take responsibility for that application’s availability and performance. Gartner predicts e-mail will become one of the first enterprise applications that move to the cloud.

How is that different from software-as-a-service (SaaS)? Without getting too tangled up in semantics, SaaS typically refers to a specific vendor – Salesforce.com, for example – offering its application to multiple customers in a hosted model. Theoretically, a SaaS vendor could use the cloud infrastructure to host its applications. Also theoretically, a cloud provider could host anybody’s application.
That brings us to the ultimate cloud scenario, in which these “private” clouds owned by such companies as Amazon and Google melt into one giant, public cloud that contains all the user’s data and applications and is accessible anytime on any device.

That’s a long way off, however. In addition, the potential roadblocks are many. They include issues of licensing, privacy, security, compliance and network monitoring. A final potential stumbling block is that enterprise applications tend to be customized and intertwined, with one system feeding into or reporting back to another. That makes it pretty tough to pluck out an application and run it in the cloud without affecting every related application.

So for now, keep an eye on the cloud, but keep your feet firmly planted on the ground.