In the early 1990s, a new computing architecture known as “grid computing” was conceived. The term itself is a metaphor that refers to making computing power as easy to access as the electrical power grid. The three originators of the grid computing concept (Ian Foster, Carl Kesselman, and Steve Tueche) went on to lead the creation of the Globus Toolkit, a collection of Open Source Software (OSS) tools that can be used to build and manage computing grids. To this day the toolkit is a robust OSS project with new releases planned and many success stories behind it. A true computing grid has the following three properties:
- There is no central administration of computing resources.
- The grid uses open standards.
- The grid can guarantee “quality of service” rather than “best effort”.
Cloud computing is a new term that refers to a subset of grid computing, and represents an alternative to having local servers or personal devices handling users’ applications. In general, the cloud is meant to represent the Internet, so cloud computing suggests that functionality comes from the Internet rather than any specific identifiable computing device. Also central to the idea is that management tasks are automated; if the system requires human intervention to allocate processes to computing resources then it’s not a cloud, it’s only a data center.
Perhaps the single greatest advantage of cloud computing is that it easily handles peak load situations without the need for additional hardware infrastructure that will spend most of its time underutilized. Resources can be virtualized and presented to the customer as virtual servers which the customers themselves manage. Physically, the resources might span multiple computers or even multiple data centers.
A well known implementation of cloud computing is the “Amazon Elastic Compute Cloud”, which allows customers to create, lauch and terminate virtual server instances on demand. Pricing is based on The number of instance-hours where an “instance” represents the equivalent computing power of a standard configuration of physical system. Data transfer is also priced by the gigabyte. All utilization is done through a collection of Application Programmer Interfaces (APIs) which provide a standard platform for developers. The Amazon ECC is a well designed robust cloud computing environment which most experienced developers can take advantage of.
I believe that cloud computing is here to stay, but also that it will have slow growth at first. The slow growth is partly due to a large installed user base of data centre servers which would be difficult to port to the cloud, and partly due to general discomfort with hosting the company’s data on someone else’s hardware. In fact, Canadian law requires that for certain types of data (such as health records), the data must be hosted on machines that are physically located within the national boundaries. The reason given by the government for this is simple: The U.S. Patriot Act. Placing physical limitations on where data can be located in many ways defeats the purpose of a computing cloud.
As usual, the big players in the industry have all been pretty much stuck for a while, so for now they are all watching to see how Google is going to push the edges again. It will be particularly interesting to see if Google tackles the toughest part of the problem: integrating the cloud with mobile devices (you thought I was going to say the online/offline issue didn’t you?) This is something they are positioning themselves to take on with Android, their (relatively) new mobile platform.
It will take a few years, but eventually cloud computing will reach critical mass and really take off in terms of popular use. In the process, it will make a lot of Internet empires, and a lot of empires bigger; the developers and companies that are able to build applications that seamlessly integrate the cloud with desktop computing and mobile devices will make the first fortunes made. The ones which bring ease of use to the end consumer are the ones that will really turn clouds into rainmakers.