1.1 CLOUD COMPUTING 3
Cloud computing offers scalable and elastic computing and storage services. The resources used
for these services can be metered and the users can be charged only for the resources they used. Cloud
computing is a business reality as a large number of organizations have adopted this paradigm.
Cloud computing is cost-effective because of resource multiplexing. Application data is stored
closer to the site where it is used in a manner that is device and location-independent; potentially,
this data storage strategy increases reliability, as well as security. The maintenance and the security
are ensured by service providers. Organizations using computer clouds are relieved of supporting large
IT teams, acquiring and maintaining costly hardware and software, and paying large electricity bills.
CSPs can operate more efficiently due to economy of scale.
Data analytics, data mining, computational financing, scientific and engineering applications, gam-
ing and social networking, as well as other computational and data-intensive activities benefit from
cloud computing. Storing information on the cloud has significant advantages. Content previously con-
fined to personal devices such as workstations, laptops, tablets, and smart phones need no longer be
stored locally. Data stored on computer clouds can be shared among all these devices and it is accessi-
ble whenever a device is connected to the Internet. For example, in 2011 Apple announced the iCloud,
a network-centric alternative for content including music, videos, movies, and personal information. In
February 2017 iCloud had 782 million subscribers according to http://appleinsider.com/.
Cloud computing represents a dramatic shift in the design of systems capable of providing vast
amounts of computing cycles and storage space. Computer clouds use off-the shelf, low-cost compo-
nents. During the previous four decades powerful, one-of-a-kind supercomputers, were built at a high
cost, with the most advanced components available at the time.
In early 1990s Gordon Bell argued that one-of-a-kind systems are not only expensive to build, but
the cost of rewriting applications for them is prohibitive. He anticipated that sooner or later massively
parallel computing will evolve into computing for the masses [59].
There are virtually no bounds on composition of digital systems controlled by software, so we are
tempted to build increasingly more complex systems including systems of systems [335]. The behav-
ior and the properties of such systems are not always well understood. We should not be surprised
that computing clouds will occasionally exhibit an unexpected behavior and large-scale systems will
occasionally fail.
The architecture, the coordination mechanisms, the design methodology, and the analysis tech-
niques for large-scale complex systems such as computing clouds will evolve in response to changes
in technology, the environment, and the social impact of cloud computing. Some of these changes will
reflect changes in communication, in the Internet itself in terms of speed, reliability, security, capacity
to accommodate a larger addressing space by migration to IPv6, and so on.
Cloud computing reinforces the idea that computing and communication are deeply intertwined.
Advances in one field are critical for the other. Indeed, cloud computing could not emerge as a feasible
alternative to the traditional paradigms for high-performance computing before the Internet was able
to support high-bandwidth, low-latency, reliable, low-cost communication. At the same time, mod-
ern networks could not function without powerful computing systems to manage the network. High
performance switches are critical elements of both networks and computer clouds.
The complexity of the cloud computing infrastructure is unquestionable and raises questions such
as: How can we manage such systems? Do we have to consider radically new ideas, such as self-
management and self-repair for future clouds consisting of millions of servers? Should we migrate from