Contents
The Cloud Computing Book
First edition published 2021
by CRC Press
6000 Broken Sound Parkway NW, Suite 300, Boca Raton, FL 33487-2742
and by CRC Press
2 Park Square, Milton Park, Abingdon, Oxon, OX14 4RN
2021 Douglas Comer
CRC Press is an imprint of Taylor & Francis Group, LLC
The right of Douglas Comer to be identified as author of this work has been asserted by him in accordance with sections 77 and 78 of the Copyright, Designs and Patents Act 1988.
Reasonable efforts have been made to publish reliable data and information, but the author and publisher cannot assume responsibility for the validity of all materials or the consequences of their use. The authors and publishers have attempted to trace the copyright holders of all material reproduced in this publication and apologize to copyright holders if permission to publish in this form has not been obtained. If any copyright material has not been acknowledged please write and let us know so we may rectify in any future reprint.
Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying, microfilming, and recording, or in any information storage or retrieval system, without written permission from the publishers.
For permission to photocopy or use material electronically from this work, access
Trademark notice: Product or corporate names may be trademarks or registered trademarks and are used only for identification and explanation without intent to infringe.
Library of Congress Cataloging-in-Publication Data
Names: Comer, Douglas, author.
Title: The cloud computing book : the future of computing explained / Douglas Comer.
Description: First edition. | Boca Raton : CRC Press, 2021. | Includes bibliographical references and index.
Identifiers: LCCN 2020052980 | ISBN 9780367706807 (hbk) | ISBN 9781003147503 (ebk)
Subjects: LCSH: Cloud computing.
Classification: LCC QA76.585 .C636 2021 | DDC 004.67/82--dc23
LC record available at https://lccn.loc.gov/202005298
ISBN: 978-0-367-70680-7 (hbk)
ISBN: 978-1-003-14750-3 (ebk)
Typeset in Times font
by KnowledgeWorks Global Ltd.
To Chris, who takes me to cloud nine
In late 2020, a headline in a tech industry newsletter announced:
Cloud Is Changing Everything
Although it may seem like hype, the headline captures a fundamental change in computing. Organizations, both large and small, are migrating computing and data storage to the cloud, which has grown an entirely new ecosystem. Services ranging from Internet search, AI, and big data analysis to individual document processing use cloud facilities.
Curricula in Computer Science and Computer Engineering must shift to prepare students for cloud computing. Instead of simply learning how to design and use software and hardware systems for the traditional mobile and desktop world, courses must prepare students to design and build hardware and software systems for use in a cloud data center. Instead of merely building a conventional computer program and relying on faster hardware to increase performance, cloud employs a parallel approach that requires one to deploy and manage multiple copies of each software system.
What should one learn that will help them navigate constant change? A colleague quipped that courses on cloud will quickly sink into teaching technology because commercial technologies dominate the cloud industry. Indeed, dozens of technologies exist, and new technologies seem to appear every few months, forcing constant churn. The answer is that colleges and universities should teach basic concepts and principles that will remain valid despite the ever-changing commercial world. For example, to master new orchestration technologies, one needs to understand the big picture of why orchestration is needed and how orchestration systems work. Similarly, to make sense of Virtual Machine and Container technologies, one needs to understand the fundamentals of each. To understand why a cloud provider may scatter a tenant's virtual servers across a set of physical servers, one must understand the underlying infrastructure and surprising topics such as power and cooling.
This text provides a broad overview of cloud computing, covering all aspects from basic data center facilities to the ways cloud-native software differs from traditional software. Instead of describing the services offered by a particular public cloud company or attempting to cover the wide range of third-party offerings, the text concentrates on general concepts that span many providers and services. To help keep the discussion focused on reality, the text uses concrete examples of technologies that currently dominate the industry, including Docker Containers and Kubernetes Orchestration technology. However, rather than attempting to present all details, the text gives examples that show the essence of each.
Designed as both a textbook and professional reference, the text is suitable for a one-semester course in computer science and engineering and for professional software engineers and IT staff who need to understand cloud. The material has been divided into five parts. The first part describes the motivation, advantages, and growth of cloud computing. The second part describes cloud infrastructure and virtualization, including virtual computing, networking, and storage mechanisms. The third part describes high-level automation and orchestration systems that manage the virtualized infrastructure. The fourth part describes cloud software, including the programming paradigms used and how cloud software deployments scale to large numbers of users. The final part describes remaining topics, including the concept of edge computing and its relationship to the Industrial Internet of Things, security problems that arise in a cloud environment, and approaches that help designers control the complexity of cloud deployments.
One cannot appreciate cloud computing without hands-on experience. Fortunately, major cloud providers offer free tier services that allow individuals to try deploying cloud services at no cost; some providers also offer special educational accounts and curricula materials. Although free accounts have limited computational and storage resources, they allow one to learn about the technologies and interfaces available from various cloud providers. I strongly encourage everyone who wants to understand cloud to obtain one or more free accounts and deploy a VM (e.g., a web server), use Docker to deploy a container, and (for more advanced readers) use Kubernetes to orchestrate replicated containers. Examples of free tier accounts include:
Amazon Web Services free tier | https://aws.amazon.com/free/ |
Google Cloud Platform free tier | https://cloud.google.com/free/ |
Azure Cloud free tier | https://azure.microsoft.com/free/ |
IBM Cloud free tier | https://www.ibm.com/cloud/free |
Oracle Cloud | https://www.oracle.com/cloud/free/ |
I thank many individuals and groups who contributed to the book. Daniel J. Krolopp, Adib Rastegarnia, Paul Schmitt, Phil Van Every, and John Lin proofread chapters and provided suggestions about the content. Adib developed the TLA+ example in . Ted Turner provided insights on trends in the industry. Nick Lippis from the Open Network User's Group graciously invited me to participate in meetings, where I learned how Fortune 100 firms are moving to a hybrid multi-cloud infrastructure. Aryo Kresnadi helped me understand the scale of Fed Ex facilities and their use of cloud. Ernest Leffler introduced me to how the banking and financial services industries are making use of cloud. Scott Comer, Sharon Comer, and Mark Kunschke provided support and suggested cover designs.