The terms "cloud" and "cloud computing" have only been around for a couple of years, but the underlying concepts of these architectures aren't new at all.
The underlying concept of cloud computing dates back to the 1960s, when John McCarthy opined that "computation may someday be organised as a public utility."
Almost all the modern-day characteristics of cloud computing (elastic provision, provided as a utility, online, illusion of infinite supply), the comparison
to the electricity industry and the use of public, private, government, and community forms, were thoroughly explored in Douglas Parkhill's 1966 book, The
Challenge of the Computer Utility. Other scholars have shown that cloud computing's roots go all the way back to the 1950s when scientist Herb Grosch (the
author of Grosch's law) postulated that the entire world would operate on dumb terminals powered by about 15 large data centers.
The actual term "cloud" borrows from telephony in that telecommunications companies, who until the 1990s offered primarily dedicated point-to-point data
circuits, began offering Virtual Private Network (VPN) services with comparable quality of service but at a much lower cost. By switching traffic to
balance utilisation as they saw fit, they were able to utilise their overall network bandwidth more effectively. The cloud symbol was used to denote
the demarcation point between that which was the responsibility of the provider and that which was the responsibility of the user. Cloud computing extends
this boundary to cover servers as well as the network infrastructure.
After the dot-com bubble, Amazon played a key role in the development of cloud computing by modernising their data centers, which, like most computer
networks, were using as little as 10% of their capacity at any one time, just to leave room for occasional spikes. Having found that the new cloud
architecture resulted in significant internal efficiency improvements whereby small, fast-moving "two-pizza teams" could add new features faster and
more easily, Amazon initiated a new product development effort to provide cloud computing to external customers, and launched Amazon Web Service (AWS)
on a utility computing basis in 2006.
In early 2008, Eucalyptus became the first open-source, AWS API-compatible platform for deploying private clouds. In early 2008, OpenNebula, enhanced
in the RESERVOIR European Commission-funded project, became the first open-source software for deploying private and hybrid clouds, and for the
federation of clouds. In the same year, efforts were focused on providing QoS guarantees (as required by real-time interactive applications) to
cloud-based infrastructures, in the framework of the IRMOS European Commission-funded project, resulting to a real-time cloud environment.
By mid-2008, Gartner saw an opportunity for cloud computing "to shape the relationship among consumers of IT services, those who use IT services
and those who sell them" and observed that "rganisations are switching from company-owned hardware and software assets to per-use
service-based models" so that the "projected shift to cloud computing... will result in dramatic growth in IT products in some areas and significant reductions in other areas.
Parallel processing and clustering of multiple computers to form a larger, more powerful single or virtual instance are proven solutions to performance and
scalability challenges. Charging for computing on a pay-per-use or subscription basis (common with grid and time-sharing environments), have been employed
for decades. Hosting different cloud applications, such as email and collaboration tools for example, have also existed for years. What's new with the
evolution of the Cloud is fully abstracting these technologies behind a common user interface, which frees developers and other professionals from the
operational aspects of their applications and sites.
Numerous underlying technologies can be incorporated into the basic architecture of the Cloud. The Internet, of course, is a common thread. And in most cases,
clouds are built upon virtualization technologies, like VMware and Xen, or scalable architectures based on semi-dedicated managed hosting models or grids.
Usually, public clouds (not in-house environments) utilize control panels and configuration management applications, much like Software-as-a-Service (SaaS).
These facilitate application development activities and make raw technology readily consumable. Cloud computing environments typically provide access to LAMP
and Windows stacks, web hosting and database technologies.
A cloud can be private or public. A public cloud sells services to anyone on the Internet. (Currently, Amazon Web Services is the largest public cloud provider.)
A private cloud is a proprietary network or a data center that supplies hosted services to a limited number of people. When a service provider uses public cloud
resources to create their private cloud, the result is called a virtual private cloud. Private or public, the goal of cloud computing is to provide easy,
scalable access to computing resources and IT services.
Cloud computing providers offer their services according to three fundamental models: Infrastructure as a service (IaaS), platform as a service (PaaS),
and software as a service (SaaS) where IaaS is the most basic and each higher model abstracts from the details of the lower models.
Infrastructure-as-a-Service like Amazon Web Services provides virtual server instanceAPI) to start, stop, access and configure their virtual servers and storage.
In the enterprise, cloud computing allows a company to pay for only as much capacity as is needed, and bring more online as soon as required. Because this
pay-for-what-you-use model resembles the way electricity, fuel and water are consumed, it's sometimes referred to as utility computing.
Platform-as-a-service in the cloud is defined as a set of software and product development tools hosted on the provider's infrastructure. Developers create
applications on the provider's platform over the Internet. PaaS providers may use APIs, website portals or gateway software installed on the customer's computer.
Force.com, (an outgrowth of Salesforce.com) and GoogleApps are examples of PaaS. Developers need to know that currently, there are not standards for interoperability
or data portability in the cloud. Some providers will not allow software created by their customers to be moved off the provider's platform.
In the software-as-a-service cloud model, the vendor supplies the hardware infrastructure, the software product and interacts with the user through a front-end portal.
SaaS is a very broad market. Services can be anything from Web-based email to inventory control and database processing. Because the service provider hosts both the
application and the data, the end user is free to use the service from anywhere.
The cloud computing have five defining characteristics: