Cloud Computing, 2nd Edition

Book description

Cloud Computing: Theory and Practice, Second Edition, provides students and IT professionals with an in-depth analysis of the cloud from the ground up. After an introduction to network-centric computing and network-centric content in Chapter One, the book is organized into four sections. Section One reviews basic concepts of concurrency and parallel and distributed systems. Section Two presents such critical components of the cloud ecosystem as cloud service providers, cloud access, cloud data storage, and cloud hardware and software. Section Three covers cloud applications and cloud security, while Section Four presents research topics in cloud computing.

Specific topics covered include resource virtualization, resource management and scheduling, and advanced topics like the impact of scale on efficiency, cloud scheduling subject to deadlines, alternative cloud architectures, and vehicular clouds. An included glossary covers terms grouped in several categories, from general to services, virtualization, desirable attributes and security.

  • Includes new chapters on concurrency, cloud hardware and software, challenges posed by big data and mobile applications and advanced topics
  • Provides a new appendix that presents several cloud computing projects
  • Presents more than 400 references in the text, including recent research results in several areas related to cloud computing

Table of contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Copyright
  5. Dedication
  6. Foreword
  7. Preface to the Second Edition
    1. Literature
  8. Abbreviations
  9. Chapter 1: Introduction
    1. Abstract
    2. 1.1. Cloud Computing
    3. 1.2. Network-Centric Computing and Network-Centric Content
    4. 1.3. Cloud Computing, an Old Idea Whose Time Has Come
    5. 1.4. Cloud Delivery Models and Defining Attributes
    6. 1.5. Ethical Issues in Cloud Computing
    7. 1.6. Cloud Vulnerabilities
    8. Literature
  10. Chapter 2: Cloud Service Providers and the Cloud Ecosystem
    1. Abstract
    2. 2.1. The Cloud Ecosystem
    3. 2.2. Cloud Computing Delivery Models and Services
    4. 2.3. Amazon Web Services
    5. 2.4. The Continuing Evolution of AWS
    6. 2.5. Google Clouds
    7. 2.6. Microsoft Windows Azure and Online Services
    8. 2.7. Cloud Storage Diversity and Vendor Lock-in
    9. 2.8. Cloud Computing Interoperability; the Intercloud
    10. 2.9. Service-Level Agreements and Compliance-Level Agreements
    11. 2.10. Responsibility Sharing Between a User and the CSP
    12. 2.11. User Experience
    13. 2.12. Software Licensing
    14. 2.13. Energy Use and Ecological Impact of Cloud Computing
    15. 2.14. Major Challenges Faced by Cloud Computing
    16. 2.15. Further Readings
    17. 2.16. Exercises and Problems
    18. Literature
  11. Section 1
    1. Chapter 3: Concurrency in the Cloud
      1. Abstract
      2. 3.1. Enduring Challenges; Concurrency and Cloud Computing
      3. 3.2. Communication and Concurrency in Computing
      4. 3.3. Computational Models; The BSP Model
      5. 3.4. A Model for Multicore Computing
      6. 3.5. Modeling Concurrency with Petri Nets
      7. 3.6. Process State; Global State of a Process or Thread Group
      8. 3.7. Communication Protocols and Process Coordination
      9. 3.8. Communication, Logical Clocks, and Message Delivery Rules
      10. 3.9. Runs and Cuts; Causal History
      11. 3.10. Threads and Activity Coordination
      12. 3.11. Critical Sections, Locks, Deadlocks, and Atomic Actions
      13. 3.12. Consensus Protocols
      14. 3.13. Load Balancing
      15. 3.14. Multithreading and Concurrency in Java; FlumeJava
      16. 3.15. History Notes and Further Readings
      17. 3.16. Exercises and Problems
      18. Literature
    2. Chapter 4: Parallel and Distributed Systems
      1. Abstract
      2. 4.1. Data, Thread-Level and Task-Level Parallelism
      3. 4.2. Parallel Architectures
      4. 4.3. SIMD Architectures; Vector Processing and Multimedia Extensions
      5. 4.4. Graphics Processing Units
      6. 4.5. Speedup, Amdhal's Law, and Scaled Speedup
      7. 4.6. Multicore Processor Speedup
      8. 4.7. Distributed Systems; System Modularity
      9. 4.8. Soft Modularity versus Enforced Modularity
      10. 4.9. Layering and Hierarchy
      11. 4.10. Virtualization; Layering and Virtualization
      12. 4.11. Peer-to-Peer Systems
      13. 4.12. Large-Scale Systems
      14. 4.13. Composability Bounds and Scalability
      15. 4.14. History Notes and Further Readings
      16. 4.15. Exercises and Problems
      17. Literature
  12. Section 2
    1. Chapter 5: Cloud Access and Cloud Interconnection Networks
      1. Abstract
      2. 5.1. Packet-Switched Networks and the Internet
      3. 5.2. The Transformation of the Internet
      4. 5.3. Web Access and the TCP Congestion Control Window
      5. 5.4. Named Data Networks
      6. 5.5. Software Defined Networks
      7. 5.6. Interconnection Networks for Computer Clouds
      8. 5.7. Multistage Interconnection Networks
      9. 5.8. InfiniBand and Myrinet
      10. 5.9. Storage Area Networks and the Fibre Channel
      11. 5.10. Scalable Data Center Communication Architectures
      12. 5.11. Network Resource Management Algorithms
      13. 5.12. Content Delivery Networks
      14. 5.13. Vehicular Ad Hoc Networks
      15. 5.14. Further Readings
      16. 5.15. Exercises and Problems
      17. Literature
    2. Chapter 6: Cloud Data Storage
      1. Abstract
      2. 6.1. The Evolution of Storage Technologies
      3. 6.2. Storage Models, File Systems, and Databases
      4. 6.3. Distributed File Systems; the Precursors
      5. 6.4. General Parallel File System
      6. 6.5. Google File System
      7. 6.6. Locks; Chubby – a Locking Service
      8. 6.7. NoSQL Databases
      9. 6.8. Data Storage for Online Transaction Processing Systems
      10. 6.9. BigTable
      11. 6.10. Megastore
      12. 6.11. Storage Reliability at Scale
      13. 6.12. Disk Locality versus Data Locality in Computer Clouds
      14. 6.13. Database Provenance
      15. 6.14. History Notes and Further Readings
      16. 6.15. Exercises and Problems
      17. Literature
  13. Section 3
    1. Chapter 7: Cloud Applications
      1. Abstract
      2. 7.1. Cloud Application Development and Architectural Styles
      3. 7.2. Coordination of Multiple Activities
      4. 7.3. Workflow Patterns
      5. 7.4. Coordination Based on a State Machine Model – the ZooKeeper
      6. 7.5. The MapReduce Programming Model
      7. 7.6. Case Study: the GrepTheWeb Application
      8. 7.7. Hadoop, Yarn, and Tez
      9. 7.8. SQL on Hadoop: Pig, Hive, and Impala
      10. 7.9. Current Cloud Applications and New Opportunities
      11. 7.10. Clouds for Science and Engineering
      12. 7.11. Cloud Computing for Biology Research
      13. 7.12. Social Computing, Digital Content, and Cloud Computing
      14. 7.13. Software Fault Isolation
      15. 7.14. Further Readings
      16. 7.15. Exercises and Problems
      17. Literature
    2. Chapter 8: Cloud Hardware and Software
      1. Abstract
      2. 8.1. Challenges; Virtual Machines and Containers
      3. 8.2. Cloud Hardware; Warehouse-scale Computers
      4. 8.3. WSC Performance
      5. 8.4. Hypervisors
      6. 8.5. An Engine for Coarse-Grained Data-Parallel Applications
      7. 8.6. Fine-Grained Cluster Resource Sharing
      8. 8.7. Cluster Management with Borg
      9. 8.8. Shared State Cluster Management
      10. 8.9. QoS-aware Cluster Management
      11. 8.10. Resource Isolation
      12. 8.11. In-memory Cluster Computing for Big Data
      13. 8.12. Containers; Docker Containers
      14. 8.13. Kubernetes
      15. 8.14. Further Readings
      16. 8.15. Exercises and Problems
      17. Literature
    3. Chapter 9: Cloud Resource Management and Scheduling
      1. Abstract
      2. 9.1. Policies and Mechanisms for Resource Management
      3. 9.2. Cloud Resource Utilization and Energy Efficiency
      4. 9.3. Resource Management and Dynamic Application Scaling
      5. 9.4. Control Theory and Optimal Resource Management
      6. 9.5. Stability of a Two-level Resource Allocation Architecture
      7. 9.6. Feedback Control Based on Dynamic Thresholds
      8. 9.7. Coordination of Autonomic Performance Managers
      9. 9.8. A Utility Model for Cloud-Based Web Services
      10. 9.9. Scheduling Algorithms for Computer Clouds
      11. 9.10. Delay Scheduling
      12. 9.11. Data-Aware Scheduling
      13. 9.12. Apache Capacity Scheduler
      14. 9.13. Start-Time Fair Queuing
      15. 9.14. Borrowed Virtual Time
      16. 9.15. Further Readings
      17. 9.16. Exercises and Problems
      18. Literature
    4. Chapter 10: Cloud Resource Virtualization
      1. Abstract
      2. 10.1. Performance and Security Isolation in Computer Clouds
      3. 10.2. Virtual Machines
      4. 10.3. Full Virtualization and Paravirtualization
      5. 10.4. Hardware Support for Virtualization
      6. 10.5. Xen – a Hypervisor Based on Paravirtualization
      7. 10.6. Optimization of Network Virtualization in Xen 2.0
      8. 10.7. Kernel-Based Virtual Machine
      9. 10.8. Nested Virtualization
      10. 10.9. A Trusted Kernel-Based Virtual Machine for ARMv8
      11. 10.10. Paravirtualization of Itanium Architecture
      12. 10.11. A Performance Comparison of Virtual Machines
      13. 10.12. Open-Source Software Platforms for Private Clouds
      14. 10.13. The Darker Side of Virtualization
      15. 10.14. Virtualization Software
      16. 10.15. History Notes and Further Readings
      17. 10.16. Exercises and Problems
      18. Literature
  14. Section 4
    1. Chapter 11: Cloud Security
      1. Abstract
      2. 11.1. Security, the Top Concern for Cloud Users
      3. 11.2. Cloud Security Risks
      4. 11.3. Privacy and Privacy Impact Assessment
      5. 11.4. Trust
      6. 11.5. Cloud Data Encryption
      7. 11.6. Security of Database Services
      8. 11.7. Operating System Security
      9. 11.8. Virtual Machine Security
      10. 11.9. Security of Virtualization
      11. 11.10. Security Risks Posed by Shared Images
      12. 11.11. Security Risks Posed by a Management OS
      13. 11.12. Xoar – Breaking the Monolithic Design of the TCB
      14. 11.13. A Trusted Hypervisor
      15. 11.14. Mobile Devices and Cloud Security
      16. 11.15. Further Readings
      17. 11.16. Exercises and Problems
      18. Literature
    2. Chapter 12: Big Data, Data Streaming, and the Mobile Cloud
      1. Abstract
      2. 12.1. Big Data
      3. 12.2. Data Warehouses and Google Databases for Big Data
      4. 12.3. Bootstrapping Techniques for Data Analytics
      5. 12.4. Approximate Query Processing
      6. 12.5. Dynamic Data-Driven Applications
      7. 12.6. Data Streaming
      8. 12.7. A Dataflow Model for Data Streaming
      9. 12.8. Joining Multiple Data Streams
      10. 12.9. System Availability at Scale
      11. 12.10. The Scale and the Latency
      12. 12.11. Mobile Computing and Applications
      13. 12.12. Energy Efficiency of Mobile Computing
      14. 12.13. Alternative Mobile Cloud Computing Models
      15. 12.14. Mobile Edge Cloud and Markov Decision Processes
      16. 12.15. Further Readings
      17. 12.16. Exercises and Problems
      18. Literature
    3. Chapter 13: Advanced Topics
      1. Abstract
      2. 13.1. A Glimpse at the Future
      3. 13.2. Cloud Scheduling Subject to Deadlines
      4. 13.3. Scheduling MapReduce Applications Subject to Deadlines
      5. 13.4. Emergence and Self-Organization
      6. 13.5. Resource Bundling; Combinatorial Auctions for Cloud Resources
      7. 13.6. Cloud Interoperability and Super Clouds
      8. 13.7. In Search for Blooms Amid a Flurry of Challenges
      9. Literature
  15. Appendix A: Cloud Application Development
    1. A.1. AWS EC2 Instances
    2. A.2. Connecting Clients to Cloud Instances through Firewalls
    3. A.3. Security Rules for Application- and Transport-Layer Protocols in EC2
    4. A.4. How to Launch an EC2 Linux Instance and Connect to It
    5. A.5. How to Use S3 in Java
    6. A.6. How to Manage AWS SQS Services in C#
    7. A.7. How to Install SNS on Ubuntu 10.04
    8. A.8. How to Create an EC2 Placement Group and use MPI
    9. A.9. StarCluster – A Cluster Computing Toolkit for EC2
    10. A.10. An Alternative Setting of an MPI Virtual Cluster
    11. A.11. How to Install Hadoop on Eclipse on a Windows System
    12. A.12. Exercises and Problems
    13. Literature
  16. Appendix B: Cloud Projects
    1. B.1. Cloud-Based Simulation of a Distributed Trust Algorithm
    2. B.2. Simulation of Traffic Management in a Smart City
    3. B.3. A Cloud Trust Management Service
    4. B.4. A Cloud Service for Adaptive Data Streaming
    5. B.5. Cloud-Based Optimal FPGA Synthesis
    6. B.6. Tensor Network Contraction on AWS
    7. Literature
  17. Literature
  18. Glossary
  19. Index

Product information

  • Title: Cloud Computing, 2nd Edition
  • Author(s): Dan C. Marinescu
  • Release date: November 2017
  • Publisher(s): Morgan Kaufmann
  • ISBN: 9780128128114