Cloud Computing: Theory and Practice

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Cloud Computing: Theory and Practice, Third 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, the book reviews basic concepts of concurrency and parallel and distributed systems, presents critical components of the cloud ecosystem as cloud service providers, cloud access, cloud data storage, and cloud hardware and software, covers cloud applications and cloud security, and 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.

Author(s): Dan C. Marinescu
Edition: 3
Publisher: Morgan Kaufmann
Year: 2022

Language: English
Pages: 662
City: Cambridge

Contents
Preface to third edition
Abbreviations
1 Introduction
1.1 Cloud computing, an old idea whose time has come
1.2 Energy use and ecological impact of cloud computing
1.3 Ethical issues in cloud computing
1.4 Factors affecting cloud service availability
1.5 Network-centric computing and network-centric content
2 The cloud ecosystem
2.1 Cloud computing delivery models and services
2.2 Amazon Web Services
2.3 Google Clouds
2.4 Microsoft Windows Azure and online services
2.5 IBM clouds
2.6 Cloud storage diversity and vendor lock-in
2.7 Cloud interoperability
2.8 Service-level Agreements and Compliance-level Agreements
2.9 Responsibility sharing between user and service provider
2.10 User challenges and experience
2.11 Software licensing
2.12 Challenges faced by cloud computing
2.13 Cloud computing as a disruptive technology
2.14 Exercises and problems
3 Parallel processing and distributed computing
3.1 Computer architecture concepts
3.2 Grand architectural complications
3.3 ARM architecture
3.4 SIMD architectures
3.5 Graphics processing units
3.6 Tensor processing units
3.7 Systems on a chip
3.8 Data, thread-level, and task-level parallelism
3.9 Speedup, Amdhal's law, and scaled speedup
3.10 Multicore processor speedup
3.11 From supercomputers to distributed systems
3.12 Modularity. Soft modularity versus enforced modularity
3.13 Layering and hierarchy
3.14 Peer-to-peer systems
3.15 Large-scale systems
3.16 Composability bounds and scalability (R)
3.17 Distributed computing fallacies and the CAP theorem
3.18 Blockchain technology and applications
3.19 History notes and further readings
3.20 Exercises and problems
4 Cloud hardware and software
4.1 Cloud infrastructure challenges
4.2 Cloud hardware; warehouse-scale computer (WSC)
4.3 WSC performance
4.4 Hypervisors
4.5 Execution of coarse-grained data-parallel applications
4.6 Fine-grained cluster resource sharing in Mesos
4.7 Cluster management with Borg
4.8 Evolution of a cluster management system
4.9 Shared state cluster management
4.10 QoS-aware cluster management
4.11 Resource isolation
4.12 In-memory cluster computing for Big Data
4.13 Containers; Docker containers
4.14 Kubernetes
4.15 Further readings
4.16 Exercises and problems
5 Cloud resource virtualization
5.1 Resource virtualization
5.2 Performance and security isolation in computer clouds
5.3 Virtual machines
5.4 Full virtualization and paravirtualization
5.5 Hardware support for virtualization
5.6 QEMU
5.7 Kernel-based Virtual Machine
5.8 Xen—a hypervisor based on paravirtualization
5.9 Optimization of network virtualization in Xen 2.0
5.10 Nested virtualization
5.11 A trusted kernel-based virtual machine for ARMv8
5.12 Paravirtualization of Itanium architecture
5.13 A performance comparison of virtual machines
5.14 Open-source software platforms for private clouds
5.15 The darker side of virtualization
5.16 Virtualization software
5.17 History notes and further readings
5.18 Exercises and problems
6 Cloud access and cloud interconnection networks
6.1 Packet-switched networks and the Internet
6.2 Internet evolution
6.3 TCP congestion control
6.4 Content-centric networks; named data networks (R)
6.5 Software-defined networks; SD-WAN
6.6 Interconnection networks for computer clouds
6.7 Multistage interconnection networks
6.8 InfiniBand and Myrinet
6.9 Storage area networks and the Fibre Channel
6.10 Scalable data center communication architectures
6.11 Network resource management algorithms (R)
6.12 Content delivery networks
6.13 Vehicular ad hoc networks
6.14 Further readings
6.15 Exercises and problems
7 Cloud data storage
7.1 Dynamic random access memories and hard disk drives
7.2 Solid-state disks
7.3 Storage models, file systems, and databases
7.4 Distributed file systems; the precursors
7.5 General parallel file system
7.6 Google file system
7.7 Locks; Chubby—a locking service
7.8 RDBMS—cloud mismatch
7.9 NoSQL databases
7.10 Data storage for online transaction processing systems
7.11 BigTable
7.12 Megastore
7.13 Storage reliability at scale
7.14 Disk locality versus data locality in computer clouds
7.15 Database provenance
7.16 History notes and further readings
7.17 Exercises and problems
8 Cloud security
8.1 Security—the top concern for cloud users
8.2 Cloud security risks
8.3 Security as a service (SecaaS)
8.4 Privacy and privacy impact assessment
8.5 Trust
8.6 Cloud data encryption
8.7 Security of database services
8.8 Operating system security
8.9 Virtual machine security
8.10 Security of virtualization
8.11 Security risks posed by shared images
8.12 Security risks posed by a management OS
8.13 Xoar—breaking the monolithic design of the TCB
8.14 Mobile devices and cloud security
8.15 Mitigating cloud vulnerabilities in the age of ransomware
8.16 AWS security
8.17 Further readings
8.18 Exercises and problems
9 Cloud resource management and scheduling
9.1 Policies and mechanisms for resource management
9.2 Scheduling algorithms for computer clouds
9.3 Delay scheduling (R)
9.4 Data-aware scheduling (R)
9.5 Apache capacity scheduler
9.6 Start-time fair queuing (R)
9.7 Borrowed virtual time (R)
9.8 Cloud scheduling subject to deadlines (R)
9.9 MapReduce application scheduling subject to deadlines (R)
9.10 Resource bundling; combinatorial auctions for cloud resources
9.11 Cloud resource utilization and energy efficiency
9.12 Resource management and dynamic application scaling
9.13 Control theory and optimal resource management (R)
9.14 Stability of two-level resource allocation strategy (R)
9.15 Feedback control based on dynamic thresholds (R)
9.16 Coordination of autonomic performance managers (R)
9.17 A utility model for cloud-based web services (R)
9.18 Cloud self-organization
9.19 Cloud interoperability
9.20 Further readings
9.21 Exercises and problems
10 Concurrency and cloud computing
10.1 Enduring challenges
10.2 Communication and concurrency
10.3 Computational models; communicating sequential processes
10.4 The bulk synchronous parallel model
10.5 A model for multicore computing
10.6 Modeling concurrency with Petri nets
10.7 Process state; global state of a process or thread group
10.8 Communication protocols and process coordination
10.9 Communication, logical clocks, and message delivery rules
10.10 Runs and cuts; causal history
10.11 Threads and activity coordination
10.12 Critical sections, locks, deadlocks, and atomic actions
10.13 Consensus protocols
10.14 Load balancing
10.15 Multithreading in Java; FlumeJava; Apache Crunch
10.16 History notes and further readings
10.17 Exercises and problems
11 Cloud applications
11.1 Cloud application development and architectural styles
11.2 Coordination of multiple activities
11.3 Workflow patterns
11.4 Coordination based on a state machine model—zookeeper
11.5 MapReduce programming model
11.6 Case study: the GrepTheWeb application
11.7 Hadoop, Yarn, and Tez
11.8 SQL on Hadoop: Pig, Hive, and Impala
11.9 Current cloud applications and new applications opportunities
11.10 Clouds for science and engineering
11.11 Cloud computing and biology research
11.12 Social computing, digital content, and cloud computing
11.13 Software fault isolation
11.14 Further readings
11.15 Exercises and problems
12 Big Data, data streaming, and the mobile cloud
12.1 Big Data
12.2 Data warehouses and Google databases for Big Data
12.3 Dynamic data-driven applications
12.4 Data streaming
12.5 A dataflow model for data streaming
12.6 Joining multiple data streams
12.7 Mobile computing and applications
12.8 Energy efficiency of mobile computing
12.9 Alternative mobile cloud computing models
12.10 System availability at scale (R)
12.11 Scale and latency (R)
12.12 Edge computing and Markov decision processes (R)
12.13 Bootstrapping techniques for data analytics (R)
12.14 Approximate query processing (R)
12.15 Further readings
12.16 Exercises and problems
13 Emerging clouds
13.1 A short-term forecast
13.2 Machine learning on clouds
13.3 Quantum computing on clouds
13.4 Vehicular clouds
13.5 Final thoughts
A Cloud projects
A.1 Cloud simulation of a distributed trust algorithm
A.2 A trust management service
A.3 Simulation of traffic management in a smart city
A.4 A cloud service for adaptive data streaming
A.5 Optimal FPGA synthesis
A.6 Tensor network contraction on AWS
A.7 A simulation study of machine-learning scalability
A.8 Cloud-based task alert application
A.9 Cloud-based health-monitoring application
B Cloud application development
B.1 AWS EC2 instances
B.2 Connecting clients to cloud instances through firewalls
B.3 Security rules for application- and transport-layer protocols in EC2
B.4 How to launch an EC2 Linux instance and connect to it
B.5 How to use S3 in Java
B.6 How to manage AWS SQS services in C#
B.7 How to install SNS on Ubuntu 10.04
B.8 How to create an EC2 placement group and use MPI
B.9 StarCluster—a cluster computing toolkit for EC2
B.10 An alternative setting of an MPI virtual cluster
B.11 How to install hadoop on eclipse on a windows system
B.12 Exercises and problems
Literature
Glossary
Index