As I discussed in my last post, the technology for Cloud Computing was initially developed to meet the enormous growth web services providers like: Amazon, Google and Microsoft. These companies needed automated provisioning of highly scalable, highly available computer infrastructures which no computer vendor provided in the 2004 / 2005 time frame. In order to satisfy their needs each of these companies separately developed their own automated infrastructure management tools using a combination of Open Sources software tools and custom development. These automated infrastructure management tools included:
- Computer Clusters (Open Source – Beowulf )
- High Performance Grid Computing (Open Source – Grid Software)
- High Availability concepts borrowed from Tandem and the Telecom industry
- Virtualization Software (Open Source – Xen Virtualization)
- Storage Replication (Open Source – MySQL)
- Auto provisioning of servers and storage (Custom developed)
Amazon was the first vendor to integrate the various software elements. After Amazon got this software working for itself, Amazon’s CEO, Jeff Bezo, decided to offer the same capabilities to Amazon customers and Amazon’s Elastic Compute Cloud (EC2) service offering was born.
Amazon wasn’t the only web vendor who had a challenge managing large numbers of servers. Google and Microsoft faced similar challenges. In 2005 Microsoft’s new Chief Software Architect, Ray Ozzie, who took over for Bill Gates, documented his vision for a Computer Utility in a memo to Microsoft employees: See link to Ozzie’s memo:
This memo was widely circulated within Microsoft and planted the seeds for Microsoft’s Cloud Computing offering. In 2006, Microsoft’s started development of its Azure Cloud Computing Platform in earnest. A public beta version was announced in early 2008 and a production version was formally released in March, 2010. Below is a link to Microsoft’s Cloud Computing Data Center Vision of tomorrow:
At the same time Google was developing similar capabilities to manage it servers. Google was one of the pioneers of the use of inexpensive standard Blade like x86 processors packaged in semi-trailer containers to satisfy its server needs.
Google had also developed its own automated software to manage the large number of servers that it used to provide web based search and other services to its customers. In 2008, Google offered its automated services to customers in form of a beta version of Google App Engine.
Since Amazon, Google and Microsoft have announced their offerings, many smaller hosting companies are offering Cloud Computing Services using a variety of Open Source software tools and custom software. Many of these companies offer Cloud Computing services packaged with other specialty services such as backup restore capabilities and on-site network and infrastructure design services.