As one analyst covering the tech industry commented to me, cloud computing, or the cloud, seems to have risen on the hype curve at an amazing speed. A few months back the term hardly but now every technical analyst, journal, vendor and conference seems to be abuzz about it. Given all this hype, it is surprising we dont have an agreed upon definition of just what the cloud is. At times it is compared with utility and grid computing and other times confused with SaaS and virtualization.
The simplest way to understand cloud computing is to think of it in a usage scenario. In this paradigm, a provider hosts a service and provides access to consumers over the Internet via standard protocols like HTTP, REST or SOAP. The service may be end-user software, a compute facility, a storage facility, a development platform, a business process or a hosting platform. The service is typically off-premise from the consumer and the consumer should not have to worry about installation of software or administration or management headaches.
Applications that utilize the cloud also come in multiple flavors. They may range from an end to end application hosted in the cloud (like Salesforce.com) to an on-premise application using some services from the cloud (e.g., an application that utilizes Amazons S3 service for data storage), to a custom application totally written for and hosted on one of the cloud platforms (e.g., an application written and hosted on Bungee Connect or Microsofts Azure offering).
Just like most new paradigms, cloud computing is more of an evolution rather than a revolution. It has really come about due to the evolving trends surrounding the Internet, service oriented architecture (SOA) and virtualization. The Internet is evolving from a medium that is purely used to access documents into a network of applications that provide access to a rich set of functionalities for the end users.
Similarly, with the advent of SOA in the enterprise and beyond, many of the tightly bound applications have become decoupled into smaller modules that can be served via services over private networks and the Internet. Finally, virtualization is not only allowing enterprises to consolidate their infrastructure but also allows service providers to offer a shared-infrastructure environment that acts as a foundation for cloud computing.
So, is cloud computing really ready for the enterprise? Before we answer the question, lets examine the typical advantages that cloud computing will provide: