If a computer can exist without hardware, as we learned in last month’s white paper about virtual machines, can it be useful without application software? It can if it relies on the concept of cloud computing.
Cloud computing describes a data-processing infrastructure in which the application software—and often the data itself—is stored permanently not on your PC but rather a remote server that’s connected to the Internet. When you need to use the application or access the data, your computer connects to the server through the Internet and some of that information is cached temporarily on your client machine. What do clouds have to do with all this? The cloud is simply a metaphor for the Internet, based on the symbol that’s used to represent the worldwide network in computer network diagrams.
The concept behind cloud computing actually predates the modern Internet, but the rise of personal computers rendered the cloud irrelevant, at least temporarily. In the 1960s and early 1970s, companies that couldn’t afford to acquire and maintain the large mainframe computers of the day would instead rent processing time on someone else’s machine. This time-sharing concept fell out of favor as smaller, cheaper midrange computers were released. And once PCs and small servers began to dominate the market, midrange systems also lost their luster.
Everything Old is New Again
The growth of the Internet has rendered the concept of shared computational infrastructure relevant once again. In fact, you’ve probably used cloud-computing resources without thinking much about it. If you’ve ever made a blog using Blogger, created a profile on Facebook or MySpace, or used a browser-based email service such as Gmail, you’ve experienced cloud computing. In each of these cases, the application and the data you create with it are stored on a remote server instead of your PC.
Software as a service (SaaS) products, such as Google Apps (on a small scale) and Salesforce.com (on a much larger scale), are another example of cloud computing. These services deliver software applications through a web browser, as opposed to a program that you install on your computer’s hard drive. A hallmark of commercial cloud computing applications such as these is that users never purchase the software outright; instead, they pay a subscription fee to make use of it.
Google Apps Premier Edition ($50 per year; the ad-supported Standard Edition is free) is a software suite consisting of two broad segments: messaging (Gmail, Google Calendar, and the instant-messaging service Google Talk) and collaboration (Google Docs for word processing, Google Video for sharing video files, and Google Sites for sharing files, developing blogs, and building intranets). Salesforce.com is an enterprise customer relationship management (CRM) application that companies use to manage and track their interactions with their customers.
Easy collaboration is one of the many advantages that cloud-computing services offer. With both the application and the data stored in the cloud, i.e., on the Internet, it’s easy for multiple users to work together on the same project. With Google Docs, for instance, several users can open, share, and edit the same document at the same time.
Cloud Computer as a Giant Killer
In the corporate world, cloud computing has made it possible for small companies to compete on an even footing with competitors many times their size. They can preserve capital by renting IT services instead of investing in hardware and applications or hiring programmers to design custom applications.
It might seem odd that Amazon, perhaps the world’s largest e-commerce merchant with $17 billion in annual revenue, would stake out a major position in the cloud computing market, but it’s actually a very shrewd move. The company has built up a huge information technology infrastructure over the years, with massive amounts of computing power and digital storage. But by some estimates, the company utilizes just 10 percent of its total capacity much of the time. The reason it needs so much headroom is to handle infrequent periods of peak demand; the rest of the time, the hardware largely sits idle.
Amazon jumped into cloud computing with its Amazon EC2 (Elastic Compute Cloud) service in an effort to increase its return on its IT investments by taking advantage of the excess idle time on its servers. Amazon EC2 is based on virtual machine technology, software-based computers that share their host’s hardware resources.
An Amazon EC2 customer creates and uploads to Amazon’s servers something Amazon calls an Amazon Machine Image. This image consists of the operating system and application software the customer needs to run, plus the data associated with it. The customer then orders up whatever number of virtual machines they need for their computing environment.
Each virtual machine is called an instance, and each instance can be one of three sizes, based on memory, storage, and CPU power. A small instance, for example, is equivalent to a server outfitted with a 1.0GHz to 1.2GHz Opteron or Xeon CPU, 1.7GB of memory, and 160GB of storage. A large instance is equivalent to a server outfitted with four of those CPUs, 7.5GB of memory, and 850GB of storage. Small instances are capable of running 32-bit applications, while large instances can run 64-bit environments. Other configurations are also available. The “elastic” in Elastic Compute Cloud refers to the flexibility the system has to offer: Customers can tap fewer or more instances as their needs ebb and flow.
It’s possible that cloud computing could even render the personal computer obsolete. Rather than buying a computer, one day you might purchase only a display, mouse, and keyboard and connect to virtual computing resources somewhere on the Internet. Wouldn’t that be boring?