Saturday, June 4, 2011

Living and Working in the Cloud

Almost every day I hear the term "cloud computing" used, and about half the time it's used incorrectly. Massive amounts of confusion seem to surround the concept. I often hear refrains along the lines of "Cloud computing is the future." To me, this statement is so obvious as to be meaningless. Saying cloud computing is the future is a little bit like saying "Mint toothpaste is the future." Mint toothpaste is so obviously useful that it will certainly be used for years to come. Of course mint toothpaste is the future. However, mint toothpaste is also the present and the past. Cloud computing is here, has been here, and is here to stay.



Put simply, cloud computing is the practice of using computers located off site to accomplish a given computing task. Rarely do you use the Internet without taking advantage of cloud computing. Sure, the term is somewhat nebulous, and gradations of appropriateness exist. Reading your webmail isn't as clearly cloud computing as storing a Google doc in their datacenters. However, both could be safely called cloud computing.

A little history will go a long way. Before the Internet was invented in 1969, it's safe to say that cloud computing did not exist. Yes, computers were connected into networks, but these networks were almost exclusively contained within one institution--whether a company or a university or another entity. These networks did not have great geographical span, so cloud computing wasn't really possible. Shortly after the Internet came into being, cloud computing still didn't exist. Computers communicated--sometimes over large distances--but this communication consisted mainly of fetching static web pages. Eventually people realized that heavy duty computing tasks could be offloaded to more capable remote computers. Enter Salesforce.com.

Traditionally, computer software is written on one computer, copied to some storage medium (a CD), and sold to be run on a different computer. We'll call this "shrink wrapped software"--though celophane isn't a requirement. Salesforce.com shattered this mold when they introduced the revolutionary software as a service (SAAS) paradigm in 1999. This term is roughly synonymous with cloud computing. Rather than requiring a flat fee for ownership of a piece of software, software as a service typically charges a monthly fee for the use of a piece of software that is delivered over the Internet. Salesforce.com pioneered this model with their best in class customer relationship management software. The SAAS landscape has simply exploded since 1999.

The cloud computing domain is broken up into two major camps--cloud platforms and cloud services. You will be very familiar with the cloud services--Salesforce.com, Twitter, Facebook, Gmail, Dropbox, etc. These are the technologies that have so thoroughly and seamlessly infiltrated daily life that we take them for granted. You may not have heard of even the most popular cloud platforms--Force.com, Amazon Web Services (AWS), Heroku (now owned by Salesforce.com), Google App Engine, Rackspace, and others. Cloud platforms provide computing time for rent. AWS literally rents processors by the minute. They go so far as to maintain an on demand spot market for computing time.

The story of how some major cloud platforms came to be is an interesting one. We'll take Amazon.com as an example--though Salesforce.com and Google's stories are almost identical. As Amazon experienced massive growth in their e-commerce business throughout the 1990s, they built massive data centers almost as fast as they could. Bringing a datacenter online is not a trivial task, and sometimes these companies carried excess computing capacity as they grew into their new infrastructure. What better way to monetize this infrastructure than to rent it out? Companies like Amazon developed incredibly complex and effective systems for allowing other companies to rent their computers.

The cloud platforms provide the infrastructure that enables the vast majority of websites to operate. Rather than hosting their websites on premises (an error prone and risky proposition), sites such as Reddit, Yelp, and others pay Amazon to host the site remotely. Reddit's core competency is not web hosting, so they do well to outsource that portion of their business to professionals like Amazon. Cloud platforms are a happy byproduct of the explosion in cloud services.

Cloud computing is a natural extension of the Internet. The metaphor of power generation is an apt one. Once, power was generated and used locally--think windmills used for irrigation and hydro powered textile mills. Eventually, electricity generation was centralized in a few large power plants and distributed via the power grid. This process entailed economies of scale that reduced the cost of electricity. Cloud computing is no different. Whether you bring AWS instances online like it's your job or you drop the occasional Twitter bomb, you're part of the computing revolution known as cloud computing. This may be true of some more than others, but we are all living and working in the cloud.

No comments:

Post a Comment