4 Feb 2019

Where Did Cloud Computing Come From?

HC Blog, Dimitar Avramov
Origins of Cloud Computing

"Cloud Computing"!? Nowadays, this phrase is broadly used to describe a technology that sounds confusing for a few generations of human beings born in the analog era. They still consider that the clouds belong to the skies, and honestly, they are right. Why would anyone use the word "cloud" to describe any technology? Some dictionaries have already posted updates in their databases for the word "cloud" and added the following meaning:

"Computing a network of remote servers hosted on the Internet and used to store, manage, and process data in place of local servers or personal computers: $… per month gets you 25GB of storage in the cloud | [as modifier]: once you are logged in to your cloud storage space, you can upload files to it and share them with others."

However, even such a definition is not quite precise and does not describe "Cloud Computing"? According to a CNBC publication, The official definition from the National Institute of Standards and Technology reads:
"Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction."
The media also suggests that "The phrase originates from the cloud symbol used by flow charts and diagrams to symbolize the Internet." This is where journalism fails to meet the history of computing and the technology knowledge. Why?

I have been involved in the business of doing websites and delivering Information technology services since the late 90s. We have never seen the term "Cloud Computing" or any symbol of a cloud used to describe or symbolize the Internet" before. In 2006, during the "Search Engine Strategies Conference," Google's CEO, Eric Schmidt uses the word "cloud" to describe certain technology environment."

"What's interesting is that there is an emergent new model, and you all are here because you are part of that new model. I don't think people have really understood how big this opportunity really is. It starts with the premise that the data services and architecture should be on servers. We call it Cloud computing – they should be in a "cloud" somewhere. And that if you have the right kind of browser or the right kind of access, it doesn't matter whether you have a PC or a Mac or a mobile phone or a BlackBerry or what have you – or new devices still to be developed – you can get access to the Cloud. There are a number of companies that have benefited from that. Obviously, Google, Yahoo!, eBay, Amazon come to mind. The computation and the data and so forth are in the servers."

This is one of the earliest moments in technology history when a high-level corporate official of an Information Technology company or a technology strategist has ever used "cloud" in reference to technology and IT architecture in particular. The first article about "Cloud Computing" in Wikipedia was published on March 3, 2007.

The Cloud

In 2009 I wrote an article titled "Time For Cloudware," which was published in Ping!Zine, a print magazine that was popular in the web hosting industry at the time. Ping!Zine has stopped its print publication, and the website hasn't published the old articles. So, as an author who has rights over the content, I have republished the article "Time for Cloudware" in a small online post called B10WH. In this publication, I have had the chance to offer the following description for Cloud Computing:

Cloud Computing is a new networking model for developing and using computer technologies. It is a paradigm in computer science in which tasks are assigned to a combination of connected servers, software, and services accessed over a network.

This combination of servers (Cloud Servers), connections, software, and services requires a networking model of computing. In other words, those are computers (servers) connected into a network, which operate as a system. Long before "Cloud Computing," this was what compute clusters used to do. They were systems of physically connected computers that worked as a group to perform specific calculations.

The concept of compute clusters has been utilized in the 60s and 70s of the last century. Packet switching as a concept and data transmission method over a digital network into packets has been introduced in the early 60s of the 20th century. For my generation and anyone like me, born in 1973, the 60s don't sound like history. However, for the generation born at the beginning of the 21st century, they sound genuinely historic. The 60s of the 20th century sound to them like the Belle Epoque (a period of optimism, regional peace, economic and technology prosperity between 1870 and 1914) resonates to my generation.

The compute clusters aren't Cloud Computing, however. Technologies like Red Hat Cluster Suite, for example, allow for creating compute clusters connecting many physical servers and combining their processing power into a "processing servers farm." Such a "processing farm" can be connected to the same storage appliance (server) or a Storage Area Network. My team has been using a RHCS based cluster between 2010 and 2012 for hosting Shared Hosting Accounts. The cluster used our proprietary load-balancing service, which worked on top of the RHCS. However, it wasn't a genuine "Cloud" technology.

The Cloud came with Virtualization

Virtualization is a computing technology. It uses software to simulate hardware functionality and create a virtual computer system (server) on top of a physical one. Once created, the virtual computer or server could run an Operating System different from the one that works on the underlying physical computer. Virtualization allowed the IT engineers to create virtualized technology architectures in which all the computing operations run on top of the virtualized environment. At the same time, the underlying physical devices are used only to supply computing resources – processing power, memory, etc.

Virtualization, which itself is software-defined computing, made the process of creating computing instances, connecting them, assigning different roles to each of them easy and uniform. It allowed the compute clusters, which comprise many physical computing devices, to be turned into the Compute Clouds. In other words:

Compute Clusters + Virtualization = Cloud Computing

Cloud Computing or "Cloud" is an infrastructure model of an Information Technology system. It comes to describe that a virtualized computing system in which there are two groups of sub-systems - virtualized Computing Nodes (Processing Nodes), which do the computation, and Storage Appliances (also called Storage Area Network), is used for data storage. The computation and data storage operations are executed in separate sub-systems connected one to another in a Cloud Computing system. This is what 'Cloud" is all about.

Cloud is about creating a networking model of a virtualized computer system in which the processing and storage are physically separated.

Cloud is not a synonym of a "Data Center" or an "Internet." Whoever says that Cloud means anything else different from a computer system is entirely wrong and lacks the necessary technical knowledge to participate in any discussions related to Cloud Computing!