Cloud Computing Principles, Systems and Applications.Pdf
Total Page:16
File Type:pdf, Size:1020Kb
Computer Communications and Networks Nick Antonopoulos Lee Gillam Editors Cloud Computing Principles, Systems and Applications Second Edition Computer Communications and Networks Series editor A.J. Sammes Centre for Forensic Computing Cranfield University, Shrivenham Campus Swindon, UK The Computer Communications and Networks series is a range of textbooks, monographs and handbooks. It sets out to provide students, researchers, and non- specialists alike with a sure grounding in current knowledge, together with com- prehensible access to the latest developments in computer communications and networking. Emphasis is placed on clear and explanatory styles that support a tutorial approach, so that even the most complex of topics is presented in a lucid and intelligible manner. More information about this series at http://www.springer.com/series/4198 Nick Antonopoulos • Lee Gillam Editors Cloud Computing Principles, Systems and Applications Second Edition 123 Editors Nick Antonopoulos Lee Gillam University of Derby University of Surrey Derby, Derbyshire, UK Guildford, Surrey, UK ISSN 1617-7975 ISSN 2197-8433 (electronic) Computer Communications and Networks ISBN 978-3-319-54644-5 ISBN 978-3-319-54645-2 (eBook) DOI 10.1007/978-3-319-54645-2 Library of Congress Control Number: 2017942811 1st edition: © Springer-Verlag London Limited 2010 © Springer International Publishing AG 2017 This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. The use of general descriptive names, registered names, trademarks, service marks, etc. in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use. The publisher, the authors and the editors are safe to assume that the advice and information in this book are believed to be true and accurate at the date of publication. Neither the publisher nor the authors or the editors give a warranty, express or implied, with respect to the material contained herein or for any errors or omissions that may have been made. The publisher remains neutral with regard to jurisdictional claims in published maps and institutional affiliations. Printed on acid-free paper This Springer imprint is published by Springer Nature The registered company is Springer International Publishing AG The registered company address is: Gewerbestrasse 11, 6330 Cham, Switzerland Foreword Since the first version of this book was published in 2010, with a foreword by my colleague Mark Baker (University of Reading), considerable developments have taken place in Cloud computing. Today, Cloud computing is no longer a niche research area but now closely embedded in our everyday computing environment. This is the ultimate success of a technology, which initially starts out as a specialist domain-specific interest, but becomes so successful that it becomes invisible to us as users. Systems such as Dropbox, Apple iCloud, Microsoft Office 365 and Google Drive (amongst many others) are now regularly made use of and considered very much a core fabric of our computing infrastructure. Social media platforms such as Facebook, Twitter and Instagram all make use of Cloud systems and make use of novel concepts such as “eventual consistency” (amongst others) as part of their implementation. A mobile app that does not make use of a Cloud-based back end is now an anomaly rather than a norm, a considerable change that has taken place since 2010. Early scientific Cloud systems, such as Eucalyptus, Open Cirrus, etc., once considered the domain of computer science research, are now regularly used within a variety of other communities, from biological sciences to arts and humanities. Figure 1 shows change in interest (via Google trends) for the three terms “Cloud computing” (dashed line, descending), “Internet of Things” (dashed line, slowly ascending) and “big data” (dotted line) since the first edition of this book was published in 2010. These three trends are closely related, as many applications that generate or process large data sizes make use of Cloud-based infrastructure. Similarly, many IoT devices act as data generators or consumers. It is also interesting to see that programming models such as MapReduce, featured in the 2010 book, also appear in this version of the book but with a specific focus on a dynamic Cloud computing environment. This programming model has now been implemented across a variety of systems, from Hadoop (Cloudera, Apache) to in-memory systems such as Apache Spark and Mesos (amongst others). This programming model demonstrates how Cloud computing mechanisms have also transformed data analysis and processing and has found wide-scale adoption in industry and academia. v vi Foreword Fig. 1 Google trends for Cloud computing, Internet of Things and big data With significant commercial interest in Cloud computing due to its transfor- mative impact on industry, the most prominent example of which is Amazon Web Services (AWS), understanding how academic research could complement rather than compete has been difficult. Whereas Cloud computing infrastructure developers (Google Cloud, AWS, Microsoft Azure, Salesforce, etc.) often make use of large-scale data centres with a large pool of servers, specialist energy infrastructure and scalable/configurable networks, the academic community often has limited access to such resources. Better understanding on how academic researchers could respond to specialist challenges that may be commercially risky for commercial vendors has changed since 2010. This book demonstrates many such challenges that have been chosen by the academic community, such as (1) Cloud federation, (2) adaptive and elastic resource allocation and (3) reproducibility supported through Cloud-based systems. Whereas a particular industry vendor would prefer a user to always make use of a single Cloud system, purchasing and acquisition of computational infrastructure may not conform to this model, often requiring a multi-system/Cloud environment. Understanding how commercial Cloud systems could be “bridged” with private in-house systems, how a sudden increase in workload could support “bursting” across multiple Cloud systems and how services which are specialised for deployment over particular types of infrastructure (such as GPUs) need to be integrated with services hosted on other platforms (e.g. analytics or database services only available on a given platform) remains an important challenge. Managing resources and efficient allocation within such a federation remain important academic research challenges, which often complement work being carried out in industry. Foreword vii The significant growth and capability of edge devices, and how these can be combined with Cloud-based data centres, has also seen considerable interest over recent years. In 2010, edge devices generally comprising of sensors were primarily used as mechanism for data capture. With increasing advances in semiconductor technologies, edge devices today have significant processing capability (e.g. the use of Arduino, Raspberry Pi 3, Intel Edison, etc.) enabling data to be preprocessed and sampled at the network edge, prior to being transmitted to a centralised data centre. Another significant trend since 2010 has been the wider adoption and availability of programmable networks through software-defined networks and network function virtualisation technologies. The availability of a more complex capability at the network edge, along with in-network programmability, changes the role of a data centre. This perspective requires researchers to better understand how edge devices and data centres can be used collectively. Understanding what should be done at the network edge vs. in the data centre becomes an important consideration. In 2010, a key requirement was to understand how processing and data could be “offloaded” from a mobile/edge device to a Cloud data centre (to conserve battery power of the edge device and avoid the impact of intermittent network connectivity). Today the focus has shifted to “reverse offloading”, i.e. understanding how processing to be carried out within a Cloud data centre could be shifted to edge devices – to limit large data transfer over a public network and avoid latency due to such transfers. Better and more effective use of edge devices (alongside the use of a data centre) also leads to useful ways of supporting data security (i.e. a user can decide what should remain on the devices vs. what to shift to the data centre). The programming models needed to support this collaborative and opportunistic use of edge devices and data centres remain in short supply at present. Recent availability of low-overhead (in terms of memory/storage requirements and scheduling delay) “container” technologies (such as Docker, Kubernetes, Red Hat OpenShift) also provides useful mechanisms for supporting edge device/Cloud data centre integration, enabling services to be migrated (offloaded) from edge devices to data centres (and vice versa) – Villari et al.1 refer to this as “osmotic computing”. Virtualisation technologies have also seen a considerable