What is Cloud Computing?

I frequently hear people debating the definition of cloud computing, or embracing a particular example of cloud computing as the definition of cloud computing.

I put together a few slides intended to illustrate a few different examples of cloud computing. I think that there are at least three fairly different classes of cloud computing that provide different value to different people. What all have in common is the use of computers and software in the Internet to replace computers and software residing on a particular physical computer in a known location.


The three different classes I use are Computing as a Service, Platform as a Service, and Software as a Service.

Computing as a Service replaces the management of physical computers with virtual servers running on the Internet. At it's most basic, Computing as a Service may still require managing the server operating system, and other low-level operations/system administration tasks. But it does eliminate the need to own or rent particular pieces of hardware, and manage or rent datacenter services. Eliminating physical hardware provides an additional benefit: it becomes easier to rapidly scale computing resources up and down to respond to peaks in demand, as well as reducing up front investment. Computing as a Service is rarely talked about by end-users, because it's mostly invisible to them.

Platform as a Service replaces the management of computer operating systems and databases with a well-tuned environment for running applications. For example, when I deployed a Ruby on Rails application last year, I used Heroku, who provided a platform environment for running Rails applications. Heroku allowed me to ignore basic system administration tasks, OS-level security issues and patches, and database engine tuning, with a scalable environment well-tuned for running Rails applications. These kinds of environments tend to be utilized by developers and smaller companies, who are seeking to avoid system administration overhead in addition to eliminating datacenter management overhead.
 
Application as a Service replaces traditional applications run on a personal computer with software running on a web server. Examples of this include Gmail, Salesforce.com, Google Maps, etc. End-users tend to be most familiar with these applications, and so many times they think of cloud computing as limited to this particular category. Here the value provided is the elimination of installing and managing local applications, the benefits of frequent releases with effort to upgrade.
Different people, depending on their role, may default to a particular mindset around cloud computing. But embracing a broader definition, and understanding how other people may be thinking of cloud computing, can lead to more productive conversations about the benefits and tradeoffs of various cloud computing options.

No comments: