Preface
The idea that computing may be organized as a public utility, like water and electricity, was formulated in the 1960s by John McCarthy, a visionary computer scientist who championed mathematical logic in artificial intelligence. Four decades later, utility computing was embraced by major IT companies such as Amazon, Apple, Google, HP, IBM, Microsoft, and Oracle.
Cloud computing is a movement started sometime during the middle of the first decade of the new millennium. The movement is motivated by the idea that information processing can be done more efficiently on large farms of computing and storage systems accessible via the Internet. In this book we attempt to sift through the large volume of information and dissect the main ideas related to cloud computing.
Computer clouds support a paradigm shift from local to network-centric computing and networkcentric content, when computing and storage resources are provided by distant data centers. Scientific and engineering applications, data mining, computational financing, gaming and social networking, and many other computational and data-intensive activities can benefit from cloud computing. Storing information on the cloud has signifi cant advantages and was embraced by cloud service providers. For example, in 2011 Apple announced the iCloud, a network-centric alternative for content such as music, videos, movies, and personal information. Content previously confi ned to personal devices such as workstations, laptops, tablets, and smart phones need no longer be stored locally, can be shared by all these devices, and is accessible whenever a device is connected to the Internet.
The appeal of cloud computing is that it 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 use. Cloud computing is a business reality today as increasing numbers of organizations are adopting this paradigm.
Cloud computing is cost effective because of the multiplexing of resources. 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 security are ensured by service providers; the service providers can operate more efficiently due to economy of scale.
Cloud computing is a technical and social reality today; at the same time, it is an emerging technology. At this time one can only speculate how the infrastructure for this new paradigm will evolve and what applications will migrate to it. The economic, social, ethical, and legal implications of this shift in technology, whereby users rely on services provided by large data centers and store private data and software on systems they do not control, are likely to be significant.
Cloud computing represents a dramatic shift in the design of systems capable of providing vast amounts of computing cycles and storage space. During the previous four decades, one-of-a-kind systems were built with the most advanced components available at the time at a high cost; but today clouds use off-the shelf, low-cost components. Gordon Bell argued in the early 1990s that one-of-akind systems are not only expensive to build, but the cost of rewriting applications for them is prohibitive [45].
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 data-intensive applications before the Internet was able to support high-bandwidth, low-latency, reliable, low-cost communication; at the same time, modern networks could not function without powerful computing systems to manage them. High-performance switches are critical elements of both networks and computer clouds.
There are virtually no bounds on composition of digital systems controlled by software, so we are tempted to build increasingly complex systems. The behavior and the properties of such systems are not always well understood; thus, we should not be surprised that computing clouds will occasionally exhibit an unexpected behavior and system failures.
The architecture, the coordination algorithms, the design methodology, and the analysis techniques for large-scale complex systems like 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 the changes in the Internet itself in terms of speed, reliability, security, capacity to accommodate a larger addressing space by migration to IPv6, and so on. In December 2011, 32.7% of the world population, of slightly less than 7 billion, were Internet users, according to www.internetworldstats.com/stats.htm. The 528% growth rate of Internet users during the period 20002011 is expected to be replicated if not exceeded in the next decade. Some of these new Internet users will discover the appeal of computing clouds and use cloud services explicitly, whereas a very large segment of the population will benefit from services supported by computing clouds without knowing the role the clouds play in their lives.