- Gebundenes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
This textbook provides a comprehensive introduction to cloud computing. Focusing on concepts and principles, rather than commercial offerings by cloud providers and vendors, it gives students a complete picture of the motivations, advantages, and growth of cloud computing, cloud infrastructure and virtualization, and automation and orchestration.
Andere Kunden interessierten sich auch für
- Douglas ComerThe Cloud Computing Book87,99 €
- K. ChandrasekaranEssentials of Cloud Computing172,99 €
- Sunilkumar ManviCloud Computing69,99 €
- Chaowei YangSpatial Cloud Computing166,99 €
- Lei ZhangCloud Data Center Network Architectures and Technologies41,99 €
- Dijiang Huang (Arizona State University, Tempe, USA)Software-Defined Networking and Security71,99 €
- Prerna Sharma (Maharaja Agrasen Institute of Technology, Delhi, IndApplications of Cloud Computing53,99 €
-
-
-
This textbook provides a comprehensive introduction to cloud computing. Focusing on concepts and principles, rather than commercial offerings by cloud providers and vendors, it gives students a complete picture of the motivations, advantages, and growth of cloud computing, cloud infrastructure and virtualization, and automation and orchestration.
Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
Produktdetails
- Produktdetails
- Verlag: Taylor & Francis Ltd
- Seitenzahl: 288
- Erscheinungstermin: 1. Juli 2021
- Englisch
- Abmessung: 236mm x 188mm x 22mm
- Gewicht: 672g
- ISBN-13: 9780367706807
- ISBN-10: 0367706806
- Artikelnr.: 62227941
- Verlag: Taylor & Francis Ltd
- Seitenzahl: 288
- Erscheinungstermin: 1. Juli 2021
- Englisch
- Abmessung: 236mm x 188mm x 22mm
- Gewicht: 672g
- ISBN-13: 9780367706807
- ISBN-10: 0367706806
- Artikelnr.: 62227941
Dr. Douglas Comer is a Distinguished Professor at Purdue University, an industry consultant, and internationally-acclaimed author. He served as the inaugural VP of Research at Cisco Systems, and maintains ties with industry. His books are used in industry and academia around the world. Comer is a Fellow of the ACM, a member of the Internet Hall of Fame, and the recipient of numerous teaching awards. His ability to make complex topics understandable gives his books broad appeal for a wide variety of audiences.
Preface
PART I The Era Of Cloud Computing
The Motivations For Cloud
1.1 Cloud Computing Everywhere
1.2 A Facility For Flexible Computing
1.3 The Start Of Cloud: The Power Wall And Multiple Cores
1.4 From Multiple Cores To Multiple Machines
1.5 From Clusters To Web Sites And Load Balancing
1.6 Racks Of Server Computers
1.7 The Economic Motivation For A Centralized Data Center
1.8 Origin Of The Term "In The Cloud"
1.9 Centralization Once Again
Elastic Computing And Its Advantages
2.1 Introduction
2.2 Multi-Tenant Clouds
2.3 The Concept Of Elastic Computing
2.4 Using Virtualized Servers For Rapid Change
2.5 How Virtualized Servers Aid Providers
2.6 How Virtualized Servers Help A Customer
2.7 Business Models For Cloud Providers
2.8 Intrastructure as a Service (IaaS)
2.9 Platform as a Service (PaaS)
2.10 Software as a Service (SaaS)
2.11 A Special Case: Desktop as a Service (DaaS)
2.12 Summary
Type Of Clouds And Cloud Providers
3.1 Introduction
3.2 Private And Public Clouds
3.3 Private Cloud
3.4 Public Cloud
3.5 The Advantages Of Public Cloud
3.6 Provider Lock-In
3.7 The Advantages Of Private Cloud
3.8 Hybrid Cloud
3.9 Multi-Cloud
3.10 Hyperscalers
3.11 Summary
PART II Cloud Infrastructure And Virtualization
Data Center Infrastructure And Equipment
4.1 Introduction
4.2 Racks, Aisles, And Pods
4.3 Pod Size
4.4 Power And Cooling For A Pod
4.5 Raised Floor Pathways And Air Cooling
4.6 Thermal Containment And Hot/Cold Aisles
4.7 Exhaust Ducts (Chimneys)
4.8 Lights-Out Data Centers
4.9 A Possible Future Of Liquid Cooling
4.10 Network Equipment And Multi-Port Server Interfaces
4.11 Smart Network Interfaces And Offload
4.12 North-South And East-West Network Traffic
4.13 Network Hierarchies, Capacity, And Fat Tree Designs
4.14 High Capacity And Link Aggregation
4.15 A Leaf-Spine Network Design For East-West Traffic
4.16 Scaling A Leaf-Spine Architecture With A Super Spine
4.17 External Internet Connections
4.18 Storage In A Data Center
4.19 Unified Data Center Networks
4.20 Summary
Virtual Machines
5.1 Introduction
5.2 Approaches To Virtualization
5.3 Properties Of Full Virtualization
5.4 Conceptual Organization Of VM Systems
5.5 Efficient Execution And Processor Privilege Levels
5.6 Extending Privilege To A Hypervisor
5.7 Levels Of Trust
5.8 Levels Of Trust And I/O Devices
5.9 Virtual I/O Devices
5.10 Virtual Device Details
5.11 An Example Virtual Device
5.12 A VM As A Digital Object
5.13 VM Migration
5.14 Live Migration Using Three Phase
5.15 Running Virtual Machines In An Application
5.16 Facilities That Make A Hosted Hypervisor Possible
5.17 How A User Benefits From A Hosted Hypervisor
5.18 Summary
Containers
6.1 Introduction
6.2 The Advantages And Disadvantages Of VMs
6.3 Traditional Apps And Elasticity On Demand
6.4 Isolation Facilities In An Operating System
6.5 Linux Namespaces Used For Isolation
6.6 The Container Approach For Isolated Apps
6.7 Docker Containers
6.8 Docker Terminology And Development Tools
6.9 Docker Software Components
6.10 Base Operating System And Files
6.11 Items In A Dockerfile
6.12 An Example Dockerfile
6.13 Summary
Virtual Networks
7.1 Introduction
7.2 Conflicting Goals For A Data Center Network
7.3 Virtual Networks, Overlays, And Underlays
7.4 Virtual Local Area Networks (VLANs)
7.5 Scaling VLANs To A Data Center With VXLAN
7.6 A Virtual Network Switch Within A Server
7.7 Network Address Translation (NAT)
7.8 Managing Virtualization And Mobility
7.9 Automated Network Configuration And Operation
7.10 Software Defined Networking
7.11 The OpenFlow Protocol
7.12 Programmable Networks
7.13 Summary
Virtual Storage
8.1 Introduction
8.2 Persistent Storage: Disks And Files
8.3 The Disk Interface Abstraction
8.4 The File Interface Abstraction
8.5 Local And Remote Storage 1
8.6 Two Types Of Remote Storage Systems
8.7 Network Attached Storage (NAS) Technology
8.8 Storage Area Network (SAN) Technology
8.9 Mapping Virtual Disks To Physical Disks
8.10 Hyper-Converged Infrastructure
8.11 A Comparison Of NAS and SAN Technology
8.12 Object Storage
8.13 Summary
PART III Automation And Orchestration
Automation
9.1 Introduction
9.2 Groups That Use Automation
9.3 The Need For Automation In A Data Center
9.4 An Example Deployment
9.5 What Can Be Automated?
9.6 Levels Of Automation
9.7 AIops: Using Machine Learning And Artificial Intelligence
9.8 A Plethora Of Automation Tools
9.9 Automation Of Manual Data Center Practices
9.10 Zero Touch Provisioning And Infrastructure As Code
9.11 Declarative, Imperative, And Intent-Based Specifications
9.12 The Evolution Of Automation Tools
9.13 Summary
Orchestration: Automated Replication And Parallelism
10.1 Introduction
10.2 The Legacy Of Automating Manual Procedures
10.3 Orchestration: Automation With A Larger Scope
10.4 Kubernetes: An Example Container Orchestration System
10.5 Limits On Kubernetes Scope
10.6 The Kubernetes Cluster Model
10.7 Kubernetes Pods
10.8 Pod Creation, Templates, And Binding Times
10.9 Init Containers
10.10 Kubernetes Terminology: Nodes And Control Plane
10.11 Control Plane Software Components
10.12 Communication Among Control Plane Components
10.13 Worker Node Software Components
10.14 Kubernetes Features 1
10.15 Summary
PART IV Cloud Programming Paradigms
The MapReduce Paradigm
11.1 Introduction
11.2 Software In A Cloud Environment
11.3 Cloud-Native Vs. Conventional Software
11.4 Using Data Center Servers For Parallel Processing
11.5 Tradeoffs And Limitations Of The Parallel Approach
11.6 The MapReduce Programming Paradigm
11.7 Mathematical Description Of MapReduce
11.8 Splitting Input
11.9 Parallelism And Data Size
11.10 Data Access and Data Transmission
11.11 Apache Hadoop
11.12 The Two Major Parts Of Hadoop
11.13 Hadoop Hardware Cluster Model
11.14 HDFS Components: DataNodes And A NameNode
11.15 Block Replication And Fault Tolerance
11.16 HDFS And MapReduce
11.17 Using Hadoop With Other File Systems
11.18 Using Hadoop For MapReduce Computations
11.19 Hadoop's Support For Programming Languages
11.20 Summary
Microservices
12.1 Introduction
12.2 Traditional Monolithic Applications
12.3 Monolithic Applications In A Data Center
12.4 The Microservices Approach
12.5 The Advantages Of Microservices
12.6 The Potential Disadvantages of Microservices
12.7 Microservices Granularity
12.8 Communication Protocols Used For Microservices
12.9 Communication Among Microservices
12.10 Using A Service Mesh Proxy
12.11 The Potential For Deadlock
12.12 Microservices Technologies
12.13 Summary
Controller-Based Management Software
13.1 Introduction
13.2 Traditional Distributed Application Management
13.3 Periodic Monitoring
13.4 Managing Cloud-Native Applications
13.5 Control Loop Concept
13.6 Control Loop Delay, Hysteresis, And Instability
13.7 The Kubernetes Controller Paradigm And Control Loop
13.8 An Event-Driven Implementation Of A Control Loop
13.9 Components Of A Kubernetes Controller
13.10 Custom Resources And Custom Controllers
13.11 Kubernetes Custom Resource Definition (CRD)
13.12 Service Mesh Management Tools
13.13 Reactive Or Dynamic Planning
13.14 A Goal: The Operator Pattern
13.15 Summary
Serverless Computing And Event Processing
14.1 Introduction
14.2 Traditional Client-Server Architecture 1
14.3 Scaling A Traditional Server To Handle Multiple Clients
14.4 Scaling A Server In A Cloud Environment
14.5 The Economics Of Servers In The Cloud
14.6 The Serverless Computing Approach
14.7 Stateless Servers And Containers
14.8 The Architecture Of A Serverless Infrastructure
14.9 An Example Of Serverless Processing
14.10 Potential Disadvantages Of Serverless Computing
14.11 Summary
DevOps
15.1 Introduction
15.2 Software Creation And Deployment
15.3 The Realistic Software Development Cycle
15.4 Large Software Projects And Teams
15.5 Disadvantages Of Using Multiple Teams
15.6 The DevOps Approach
15.7 Continuous Integration (CI): A Short Change Cycle
15.8 Continuous Delivery (CD): Deploying Versions Rapidly
15.9 Cautious Deployment: Sandbox, Canary, And Blue/Green
15.10 Difficult Aspects Of The DevOps Approach
15.11 Summary
PART V Other Aspects Of Cloud
Edge Computing And IIoT
16.1 Introduction
16.2 The Latency Disadvantage Of Cloud
16.3 Situations Where Latency Matters
16.4 Industries That Need Low Latency
16.5 Moving Computing To The Edge
16.6 Extending Edge Computing To A Fog Hierarchy
16.7 Caching At Multiple Levels Of A Hierarchy
16.8 An Automotive Example
16.9 Edge Computing And IIoT
16.10 Communication For IIoT
16.11 Decentralization Once Again
16.12 Summary
Cloud Security And Privacy
17.1 Introduction
17.2 Cloud-Specific Security Problems
17.3 Security In A Traditional Infrastructure
17.4 Why Traditional Methods Do Not Suffice For The Cloud
17.5 The Zero Trust Security Model
17.6 Identity Management
17.7 Privileged Access Management (PAM)
17.8 AI Technologies And Their Effect On Security
17.9 Protecting Remote Access
17.10 Privacy In A Cloud Environment
17.11 Back Doors, Side Channels, And Other Concerns
17.12 Cloud Providers As Partners For Security And Privacy
17.13 Summary
Controlling The Complexity Of Cloud-Native Systems
18.1 Introduction
18.2 Sources Of Complexity In Cloud Systems
18.3 Inherent Complexity In Large Distributed Systems
18.4 Designing A Flawless Distributed System
18.5 System Modeling
18.6 Mathematical Models
18.7 An Example Graph Model To Help Avoid Deadlock
18.8 A Graph Model For A Startup Sequence
18.9 Modeling Using Mathematics
18.10 An Example TLA+ Specification
18.11 System State And State Changes
18.12 The Form Of A TLA+ Specification
18.13 Symbols In A TLA+ Specification
18.14 State Transitions For The Example
18.15 Conclusions About Temporal Logic Models
18.16 Summary
Index
PART I The Era Of Cloud Computing
The Motivations For Cloud
1.1 Cloud Computing Everywhere
1.2 A Facility For Flexible Computing
1.3 The Start Of Cloud: The Power Wall And Multiple Cores
1.4 From Multiple Cores To Multiple Machines
1.5 From Clusters To Web Sites And Load Balancing
1.6 Racks Of Server Computers
1.7 The Economic Motivation For A Centralized Data Center
1.8 Origin Of The Term "In The Cloud"
1.9 Centralization Once Again
Elastic Computing And Its Advantages
2.1 Introduction
2.2 Multi-Tenant Clouds
2.3 The Concept Of Elastic Computing
2.4 Using Virtualized Servers For Rapid Change
2.5 How Virtualized Servers Aid Providers
2.6 How Virtualized Servers Help A Customer
2.7 Business Models For Cloud Providers
2.8 Intrastructure as a Service (IaaS)
2.9 Platform as a Service (PaaS)
2.10 Software as a Service (SaaS)
2.11 A Special Case: Desktop as a Service (DaaS)
2.12 Summary
Type Of Clouds And Cloud Providers
3.1 Introduction
3.2 Private And Public Clouds
3.3 Private Cloud
3.4 Public Cloud
3.5 The Advantages Of Public Cloud
3.6 Provider Lock-In
3.7 The Advantages Of Private Cloud
3.8 Hybrid Cloud
3.9 Multi-Cloud
3.10 Hyperscalers
3.11 Summary
PART II Cloud Infrastructure And Virtualization
Data Center Infrastructure And Equipment
4.1 Introduction
4.2 Racks, Aisles, And Pods
4.3 Pod Size
4.4 Power And Cooling For A Pod
4.5 Raised Floor Pathways And Air Cooling
4.6 Thermal Containment And Hot/Cold Aisles
4.7 Exhaust Ducts (Chimneys)
4.8 Lights-Out Data Centers
4.9 A Possible Future Of Liquid Cooling
4.10 Network Equipment And Multi-Port Server Interfaces
4.11 Smart Network Interfaces And Offload
4.12 North-South And East-West Network Traffic
4.13 Network Hierarchies, Capacity, And Fat Tree Designs
4.14 High Capacity And Link Aggregation
4.15 A Leaf-Spine Network Design For East-West Traffic
4.16 Scaling A Leaf-Spine Architecture With A Super Spine
4.17 External Internet Connections
4.18 Storage In A Data Center
4.19 Unified Data Center Networks
4.20 Summary
Virtual Machines
5.1 Introduction
5.2 Approaches To Virtualization
5.3 Properties Of Full Virtualization
5.4 Conceptual Organization Of VM Systems
5.5 Efficient Execution And Processor Privilege Levels
5.6 Extending Privilege To A Hypervisor
5.7 Levels Of Trust
5.8 Levels Of Trust And I/O Devices
5.9 Virtual I/O Devices
5.10 Virtual Device Details
5.11 An Example Virtual Device
5.12 A VM As A Digital Object
5.13 VM Migration
5.14 Live Migration Using Three Phase
5.15 Running Virtual Machines In An Application
5.16 Facilities That Make A Hosted Hypervisor Possible
5.17 How A User Benefits From A Hosted Hypervisor
5.18 Summary
Containers
6.1 Introduction
6.2 The Advantages And Disadvantages Of VMs
6.3 Traditional Apps And Elasticity On Demand
6.4 Isolation Facilities In An Operating System
6.5 Linux Namespaces Used For Isolation
6.6 The Container Approach For Isolated Apps
6.7 Docker Containers
6.8 Docker Terminology And Development Tools
6.9 Docker Software Components
6.10 Base Operating System And Files
6.11 Items In A Dockerfile
6.12 An Example Dockerfile
6.13 Summary
Virtual Networks
7.1 Introduction
7.2 Conflicting Goals For A Data Center Network
7.3 Virtual Networks, Overlays, And Underlays
7.4 Virtual Local Area Networks (VLANs)
7.5 Scaling VLANs To A Data Center With VXLAN
7.6 A Virtual Network Switch Within A Server
7.7 Network Address Translation (NAT)
7.8 Managing Virtualization And Mobility
7.9 Automated Network Configuration And Operation
7.10 Software Defined Networking
7.11 The OpenFlow Protocol
7.12 Programmable Networks
7.13 Summary
Virtual Storage
8.1 Introduction
8.2 Persistent Storage: Disks And Files
8.3 The Disk Interface Abstraction
8.4 The File Interface Abstraction
8.5 Local And Remote Storage 1
8.6 Two Types Of Remote Storage Systems
8.7 Network Attached Storage (NAS) Technology
8.8 Storage Area Network (SAN) Technology
8.9 Mapping Virtual Disks To Physical Disks
8.10 Hyper-Converged Infrastructure
8.11 A Comparison Of NAS and SAN Technology
8.12 Object Storage
8.13 Summary
PART III Automation And Orchestration
Automation
9.1 Introduction
9.2 Groups That Use Automation
9.3 The Need For Automation In A Data Center
9.4 An Example Deployment
9.5 What Can Be Automated?
9.6 Levels Of Automation
9.7 AIops: Using Machine Learning And Artificial Intelligence
9.8 A Plethora Of Automation Tools
9.9 Automation Of Manual Data Center Practices
9.10 Zero Touch Provisioning And Infrastructure As Code
9.11 Declarative, Imperative, And Intent-Based Specifications
9.12 The Evolution Of Automation Tools
9.13 Summary
Orchestration: Automated Replication And Parallelism
10.1 Introduction
10.2 The Legacy Of Automating Manual Procedures
10.3 Orchestration: Automation With A Larger Scope
10.4 Kubernetes: An Example Container Orchestration System
10.5 Limits On Kubernetes Scope
10.6 The Kubernetes Cluster Model
10.7 Kubernetes Pods
10.8 Pod Creation, Templates, And Binding Times
10.9 Init Containers
10.10 Kubernetes Terminology: Nodes And Control Plane
10.11 Control Plane Software Components
10.12 Communication Among Control Plane Components
10.13 Worker Node Software Components
10.14 Kubernetes Features 1
10.15 Summary
PART IV Cloud Programming Paradigms
The MapReduce Paradigm
11.1 Introduction
11.2 Software In A Cloud Environment
11.3 Cloud-Native Vs. Conventional Software
11.4 Using Data Center Servers For Parallel Processing
11.5 Tradeoffs And Limitations Of The Parallel Approach
11.6 The MapReduce Programming Paradigm
11.7 Mathematical Description Of MapReduce
11.8 Splitting Input
11.9 Parallelism And Data Size
11.10 Data Access and Data Transmission
11.11 Apache Hadoop
11.12 The Two Major Parts Of Hadoop
11.13 Hadoop Hardware Cluster Model
11.14 HDFS Components: DataNodes And A NameNode
11.15 Block Replication And Fault Tolerance
11.16 HDFS And MapReduce
11.17 Using Hadoop With Other File Systems
11.18 Using Hadoop For MapReduce Computations
11.19 Hadoop's Support For Programming Languages
11.20 Summary
Microservices
12.1 Introduction
12.2 Traditional Monolithic Applications
12.3 Monolithic Applications In A Data Center
12.4 The Microservices Approach
12.5 The Advantages Of Microservices
12.6 The Potential Disadvantages of Microservices
12.7 Microservices Granularity
12.8 Communication Protocols Used For Microservices
12.9 Communication Among Microservices
12.10 Using A Service Mesh Proxy
12.11 The Potential For Deadlock
12.12 Microservices Technologies
12.13 Summary
Controller-Based Management Software
13.1 Introduction
13.2 Traditional Distributed Application Management
13.3 Periodic Monitoring
13.4 Managing Cloud-Native Applications
13.5 Control Loop Concept
13.6 Control Loop Delay, Hysteresis, And Instability
13.7 The Kubernetes Controller Paradigm And Control Loop
13.8 An Event-Driven Implementation Of A Control Loop
13.9 Components Of A Kubernetes Controller
13.10 Custom Resources And Custom Controllers
13.11 Kubernetes Custom Resource Definition (CRD)
13.12 Service Mesh Management Tools
13.13 Reactive Or Dynamic Planning
13.14 A Goal: The Operator Pattern
13.15 Summary
Serverless Computing And Event Processing
14.1 Introduction
14.2 Traditional Client-Server Architecture 1
14.3 Scaling A Traditional Server To Handle Multiple Clients
14.4 Scaling A Server In A Cloud Environment
14.5 The Economics Of Servers In The Cloud
14.6 The Serverless Computing Approach
14.7 Stateless Servers And Containers
14.8 The Architecture Of A Serverless Infrastructure
14.9 An Example Of Serverless Processing
14.10 Potential Disadvantages Of Serverless Computing
14.11 Summary
DevOps
15.1 Introduction
15.2 Software Creation And Deployment
15.3 The Realistic Software Development Cycle
15.4 Large Software Projects And Teams
15.5 Disadvantages Of Using Multiple Teams
15.6 The DevOps Approach
15.7 Continuous Integration (CI): A Short Change Cycle
15.8 Continuous Delivery (CD): Deploying Versions Rapidly
15.9 Cautious Deployment: Sandbox, Canary, And Blue/Green
15.10 Difficult Aspects Of The DevOps Approach
15.11 Summary
PART V Other Aspects Of Cloud
Edge Computing And IIoT
16.1 Introduction
16.2 The Latency Disadvantage Of Cloud
16.3 Situations Where Latency Matters
16.4 Industries That Need Low Latency
16.5 Moving Computing To The Edge
16.6 Extending Edge Computing To A Fog Hierarchy
16.7 Caching At Multiple Levels Of A Hierarchy
16.8 An Automotive Example
16.9 Edge Computing And IIoT
16.10 Communication For IIoT
16.11 Decentralization Once Again
16.12 Summary
Cloud Security And Privacy
17.1 Introduction
17.2 Cloud-Specific Security Problems
17.3 Security In A Traditional Infrastructure
17.4 Why Traditional Methods Do Not Suffice For The Cloud
17.5 The Zero Trust Security Model
17.6 Identity Management
17.7 Privileged Access Management (PAM)
17.8 AI Technologies And Their Effect On Security
17.9 Protecting Remote Access
17.10 Privacy In A Cloud Environment
17.11 Back Doors, Side Channels, And Other Concerns
17.12 Cloud Providers As Partners For Security And Privacy
17.13 Summary
Controlling The Complexity Of Cloud-Native Systems
18.1 Introduction
18.2 Sources Of Complexity In Cloud Systems
18.3 Inherent Complexity In Large Distributed Systems
18.4 Designing A Flawless Distributed System
18.5 System Modeling
18.6 Mathematical Models
18.7 An Example Graph Model To Help Avoid Deadlock
18.8 A Graph Model For A Startup Sequence
18.9 Modeling Using Mathematics
18.10 An Example TLA+ Specification
18.11 System State And State Changes
18.12 The Form Of A TLA+ Specification
18.13 Symbols In A TLA+ Specification
18.14 State Transitions For The Example
18.15 Conclusions About Temporal Logic Models
18.16 Summary
Index
Preface
PART I The Era Of Cloud Computing
The Motivations For Cloud
1.1 Cloud Computing Everywhere
1.2 A Facility For Flexible Computing
1.3 The Start Of Cloud: The Power Wall And Multiple Cores
1.4 From Multiple Cores To Multiple Machines
1.5 From Clusters To Web Sites And Load Balancing
1.6 Racks Of Server Computers
1.7 The Economic Motivation For A Centralized Data Center
1.8 Origin Of The Term "In The Cloud"
1.9 Centralization Once Again
Elastic Computing And Its Advantages
2.1 Introduction
2.2 Multi-Tenant Clouds
2.3 The Concept Of Elastic Computing
2.4 Using Virtualized Servers For Rapid Change
2.5 How Virtualized Servers Aid Providers
2.6 How Virtualized Servers Help A Customer
2.7 Business Models For Cloud Providers
2.8 Intrastructure as a Service (IaaS)
2.9 Platform as a Service (PaaS)
2.10 Software as a Service (SaaS)
2.11 A Special Case: Desktop as a Service (DaaS)
2.12 Summary
Type Of Clouds And Cloud Providers
3.1 Introduction
3.2 Private And Public Clouds
3.3 Private Cloud
3.4 Public Cloud
3.5 The Advantages Of Public Cloud
3.6 Provider Lock-In
3.7 The Advantages Of Private Cloud
3.8 Hybrid Cloud
3.9 Multi-Cloud
3.10 Hyperscalers
3.11 Summary
PART II Cloud Infrastructure And Virtualization
Data Center Infrastructure And Equipment
4.1 Introduction
4.2 Racks, Aisles, And Pods
4.3 Pod Size
4.4 Power And Cooling For A Pod
4.5 Raised Floor Pathways And Air Cooling
4.6 Thermal Containment And Hot/Cold Aisles
4.7 Exhaust Ducts (Chimneys)
4.8 Lights-Out Data Centers
4.9 A Possible Future Of Liquid Cooling
4.10 Network Equipment And Multi-Port Server Interfaces
4.11 Smart Network Interfaces And Offload
4.12 North-South And East-West Network Traffic
4.13 Network Hierarchies, Capacity, And Fat Tree Designs
4.14 High Capacity And Link Aggregation
4.15 A Leaf-Spine Network Design For East-West Traffic
4.16 Scaling A Leaf-Spine Architecture With A Super Spine
4.17 External Internet Connections
4.18 Storage In A Data Center
4.19 Unified Data Center Networks
4.20 Summary
Virtual Machines
5.1 Introduction
5.2 Approaches To Virtualization
5.3 Properties Of Full Virtualization
5.4 Conceptual Organization Of VM Systems
5.5 Efficient Execution And Processor Privilege Levels
5.6 Extending Privilege To A Hypervisor
5.7 Levels Of Trust
5.8 Levels Of Trust And I/O Devices
5.9 Virtual I/O Devices
5.10 Virtual Device Details
5.11 An Example Virtual Device
5.12 A VM As A Digital Object
5.13 VM Migration
5.14 Live Migration Using Three Phase
5.15 Running Virtual Machines In An Application
5.16 Facilities That Make A Hosted Hypervisor Possible
5.17 How A User Benefits From A Hosted Hypervisor
5.18 Summary
Containers
6.1 Introduction
6.2 The Advantages And Disadvantages Of VMs
6.3 Traditional Apps And Elasticity On Demand
6.4 Isolation Facilities In An Operating System
6.5 Linux Namespaces Used For Isolation
6.6 The Container Approach For Isolated Apps
6.7 Docker Containers
6.8 Docker Terminology And Development Tools
6.9 Docker Software Components
6.10 Base Operating System And Files
6.11 Items In A Dockerfile
6.12 An Example Dockerfile
6.13 Summary
Virtual Networks
7.1 Introduction
7.2 Conflicting Goals For A Data Center Network
7.3 Virtual Networks, Overlays, And Underlays
7.4 Virtual Local Area Networks (VLANs)
7.5 Scaling VLANs To A Data Center With VXLAN
7.6 A Virtual Network Switch Within A Server
7.7 Network Address Translation (NAT)
7.8 Managing Virtualization And Mobility
7.9 Automated Network Configuration And Operation
7.10 Software Defined Networking
7.11 The OpenFlow Protocol
7.12 Programmable Networks
7.13 Summary
Virtual Storage
8.1 Introduction
8.2 Persistent Storage: Disks And Files
8.3 The Disk Interface Abstraction
8.4 The File Interface Abstraction
8.5 Local And Remote Storage 1
8.6 Two Types Of Remote Storage Systems
8.7 Network Attached Storage (NAS) Technology
8.8 Storage Area Network (SAN) Technology
8.9 Mapping Virtual Disks To Physical Disks
8.10 Hyper-Converged Infrastructure
8.11 A Comparison Of NAS and SAN Technology
8.12 Object Storage
8.13 Summary
PART III Automation And Orchestration
Automation
9.1 Introduction
9.2 Groups That Use Automation
9.3 The Need For Automation In A Data Center
9.4 An Example Deployment
9.5 What Can Be Automated?
9.6 Levels Of Automation
9.7 AIops: Using Machine Learning And Artificial Intelligence
9.8 A Plethora Of Automation Tools
9.9 Automation Of Manual Data Center Practices
9.10 Zero Touch Provisioning And Infrastructure As Code
9.11 Declarative, Imperative, And Intent-Based Specifications
9.12 The Evolution Of Automation Tools
9.13 Summary
Orchestration: Automated Replication And Parallelism
10.1 Introduction
10.2 The Legacy Of Automating Manual Procedures
10.3 Orchestration: Automation With A Larger Scope
10.4 Kubernetes: An Example Container Orchestration System
10.5 Limits On Kubernetes Scope
10.6 The Kubernetes Cluster Model
10.7 Kubernetes Pods
10.8 Pod Creation, Templates, And Binding Times
10.9 Init Containers
10.10 Kubernetes Terminology: Nodes And Control Plane
10.11 Control Plane Software Components
10.12 Communication Among Control Plane Components
10.13 Worker Node Software Components
10.14 Kubernetes Features 1
10.15 Summary
PART IV Cloud Programming Paradigms
The MapReduce Paradigm
11.1 Introduction
11.2 Software In A Cloud Environment
11.3 Cloud-Native Vs. Conventional Software
11.4 Using Data Center Servers For Parallel Processing
11.5 Tradeoffs And Limitations Of The Parallel Approach
11.6 The MapReduce Programming Paradigm
11.7 Mathematical Description Of MapReduce
11.8 Splitting Input
11.9 Parallelism And Data Size
11.10 Data Access and Data Transmission
11.11 Apache Hadoop
11.12 The Two Major Parts Of Hadoop
11.13 Hadoop Hardware Cluster Model
11.14 HDFS Components: DataNodes And A NameNode
11.15 Block Replication And Fault Tolerance
11.16 HDFS And MapReduce
11.17 Using Hadoop With Other File Systems
11.18 Using Hadoop For MapReduce Computations
11.19 Hadoop's Support For Programming Languages
11.20 Summary
Microservices
12.1 Introduction
12.2 Traditional Monolithic Applications
12.3 Monolithic Applications In A Data Center
12.4 The Microservices Approach
12.5 The Advantages Of Microservices
12.6 The Potential Disadvantages of Microservices
12.7 Microservices Granularity
12.8 Communication Protocols Used For Microservices
12.9 Communication Among Microservices
12.10 Using A Service Mesh Proxy
12.11 The Potential For Deadlock
12.12 Microservices Technologies
12.13 Summary
Controller-Based Management Software
13.1 Introduction
13.2 Traditional Distributed Application Management
13.3 Periodic Monitoring
13.4 Managing Cloud-Native Applications
13.5 Control Loop Concept
13.6 Control Loop Delay, Hysteresis, And Instability
13.7 The Kubernetes Controller Paradigm And Control Loop
13.8 An Event-Driven Implementation Of A Control Loop
13.9 Components Of A Kubernetes Controller
13.10 Custom Resources And Custom Controllers
13.11 Kubernetes Custom Resource Definition (CRD)
13.12 Service Mesh Management Tools
13.13 Reactive Or Dynamic Planning
13.14 A Goal: The Operator Pattern
13.15 Summary
Serverless Computing And Event Processing
14.1 Introduction
14.2 Traditional Client-Server Architecture 1
14.3 Scaling A Traditional Server To Handle Multiple Clients
14.4 Scaling A Server In A Cloud Environment
14.5 The Economics Of Servers In The Cloud
14.6 The Serverless Computing Approach
14.7 Stateless Servers And Containers
14.8 The Architecture Of A Serverless Infrastructure
14.9 An Example Of Serverless Processing
14.10 Potential Disadvantages Of Serverless Computing
14.11 Summary
DevOps
15.1 Introduction
15.2 Software Creation And Deployment
15.3 The Realistic Software Development Cycle
15.4 Large Software Projects And Teams
15.5 Disadvantages Of Using Multiple Teams
15.6 The DevOps Approach
15.7 Continuous Integration (CI): A Short Change Cycle
15.8 Continuous Delivery (CD): Deploying Versions Rapidly
15.9 Cautious Deployment: Sandbox, Canary, And Blue/Green
15.10 Difficult Aspects Of The DevOps Approach
15.11 Summary
PART V Other Aspects Of Cloud
Edge Computing And IIoT
16.1 Introduction
16.2 The Latency Disadvantage Of Cloud
16.3 Situations Where Latency Matters
16.4 Industries That Need Low Latency
16.5 Moving Computing To The Edge
16.6 Extending Edge Computing To A Fog Hierarchy
16.7 Caching At Multiple Levels Of A Hierarchy
16.8 An Automotive Example
16.9 Edge Computing And IIoT
16.10 Communication For IIoT
16.11 Decentralization Once Again
16.12 Summary
Cloud Security And Privacy
17.1 Introduction
17.2 Cloud-Specific Security Problems
17.3 Security In A Traditional Infrastructure
17.4 Why Traditional Methods Do Not Suffice For The Cloud
17.5 The Zero Trust Security Model
17.6 Identity Management
17.7 Privileged Access Management (PAM)
17.8 AI Technologies And Their Effect On Security
17.9 Protecting Remote Access
17.10 Privacy In A Cloud Environment
17.11 Back Doors, Side Channels, And Other Concerns
17.12 Cloud Providers As Partners For Security And Privacy
17.13 Summary
Controlling The Complexity Of Cloud-Native Systems
18.1 Introduction
18.2 Sources Of Complexity In Cloud Systems
18.3 Inherent Complexity In Large Distributed Systems
18.4 Designing A Flawless Distributed System
18.5 System Modeling
18.6 Mathematical Models
18.7 An Example Graph Model To Help Avoid Deadlock
18.8 A Graph Model For A Startup Sequence
18.9 Modeling Using Mathematics
18.10 An Example TLA+ Specification
18.11 System State And State Changes
18.12 The Form Of A TLA+ Specification
18.13 Symbols In A TLA+ Specification
18.14 State Transitions For The Example
18.15 Conclusions About Temporal Logic Models
18.16 Summary
Index
PART I The Era Of Cloud Computing
The Motivations For Cloud
1.1 Cloud Computing Everywhere
1.2 A Facility For Flexible Computing
1.3 The Start Of Cloud: The Power Wall And Multiple Cores
1.4 From Multiple Cores To Multiple Machines
1.5 From Clusters To Web Sites And Load Balancing
1.6 Racks Of Server Computers
1.7 The Economic Motivation For A Centralized Data Center
1.8 Origin Of The Term "In The Cloud"
1.9 Centralization Once Again
Elastic Computing And Its Advantages
2.1 Introduction
2.2 Multi-Tenant Clouds
2.3 The Concept Of Elastic Computing
2.4 Using Virtualized Servers For Rapid Change
2.5 How Virtualized Servers Aid Providers
2.6 How Virtualized Servers Help A Customer
2.7 Business Models For Cloud Providers
2.8 Intrastructure as a Service (IaaS)
2.9 Platform as a Service (PaaS)
2.10 Software as a Service (SaaS)
2.11 A Special Case: Desktop as a Service (DaaS)
2.12 Summary
Type Of Clouds And Cloud Providers
3.1 Introduction
3.2 Private And Public Clouds
3.3 Private Cloud
3.4 Public Cloud
3.5 The Advantages Of Public Cloud
3.6 Provider Lock-In
3.7 The Advantages Of Private Cloud
3.8 Hybrid Cloud
3.9 Multi-Cloud
3.10 Hyperscalers
3.11 Summary
PART II Cloud Infrastructure And Virtualization
Data Center Infrastructure And Equipment
4.1 Introduction
4.2 Racks, Aisles, And Pods
4.3 Pod Size
4.4 Power And Cooling For A Pod
4.5 Raised Floor Pathways And Air Cooling
4.6 Thermal Containment And Hot/Cold Aisles
4.7 Exhaust Ducts (Chimneys)
4.8 Lights-Out Data Centers
4.9 A Possible Future Of Liquid Cooling
4.10 Network Equipment And Multi-Port Server Interfaces
4.11 Smart Network Interfaces And Offload
4.12 North-South And East-West Network Traffic
4.13 Network Hierarchies, Capacity, And Fat Tree Designs
4.14 High Capacity And Link Aggregation
4.15 A Leaf-Spine Network Design For East-West Traffic
4.16 Scaling A Leaf-Spine Architecture With A Super Spine
4.17 External Internet Connections
4.18 Storage In A Data Center
4.19 Unified Data Center Networks
4.20 Summary
Virtual Machines
5.1 Introduction
5.2 Approaches To Virtualization
5.3 Properties Of Full Virtualization
5.4 Conceptual Organization Of VM Systems
5.5 Efficient Execution And Processor Privilege Levels
5.6 Extending Privilege To A Hypervisor
5.7 Levels Of Trust
5.8 Levels Of Trust And I/O Devices
5.9 Virtual I/O Devices
5.10 Virtual Device Details
5.11 An Example Virtual Device
5.12 A VM As A Digital Object
5.13 VM Migration
5.14 Live Migration Using Three Phase
5.15 Running Virtual Machines In An Application
5.16 Facilities That Make A Hosted Hypervisor Possible
5.17 How A User Benefits From A Hosted Hypervisor
5.18 Summary
Containers
6.1 Introduction
6.2 The Advantages And Disadvantages Of VMs
6.3 Traditional Apps And Elasticity On Demand
6.4 Isolation Facilities In An Operating System
6.5 Linux Namespaces Used For Isolation
6.6 The Container Approach For Isolated Apps
6.7 Docker Containers
6.8 Docker Terminology And Development Tools
6.9 Docker Software Components
6.10 Base Operating System And Files
6.11 Items In A Dockerfile
6.12 An Example Dockerfile
6.13 Summary
Virtual Networks
7.1 Introduction
7.2 Conflicting Goals For A Data Center Network
7.3 Virtual Networks, Overlays, And Underlays
7.4 Virtual Local Area Networks (VLANs)
7.5 Scaling VLANs To A Data Center With VXLAN
7.6 A Virtual Network Switch Within A Server
7.7 Network Address Translation (NAT)
7.8 Managing Virtualization And Mobility
7.9 Automated Network Configuration And Operation
7.10 Software Defined Networking
7.11 The OpenFlow Protocol
7.12 Programmable Networks
7.13 Summary
Virtual Storage
8.1 Introduction
8.2 Persistent Storage: Disks And Files
8.3 The Disk Interface Abstraction
8.4 The File Interface Abstraction
8.5 Local And Remote Storage 1
8.6 Two Types Of Remote Storage Systems
8.7 Network Attached Storage (NAS) Technology
8.8 Storage Area Network (SAN) Technology
8.9 Mapping Virtual Disks To Physical Disks
8.10 Hyper-Converged Infrastructure
8.11 A Comparison Of NAS and SAN Technology
8.12 Object Storage
8.13 Summary
PART III Automation And Orchestration
Automation
9.1 Introduction
9.2 Groups That Use Automation
9.3 The Need For Automation In A Data Center
9.4 An Example Deployment
9.5 What Can Be Automated?
9.6 Levels Of Automation
9.7 AIops: Using Machine Learning And Artificial Intelligence
9.8 A Plethora Of Automation Tools
9.9 Automation Of Manual Data Center Practices
9.10 Zero Touch Provisioning And Infrastructure As Code
9.11 Declarative, Imperative, And Intent-Based Specifications
9.12 The Evolution Of Automation Tools
9.13 Summary
Orchestration: Automated Replication And Parallelism
10.1 Introduction
10.2 The Legacy Of Automating Manual Procedures
10.3 Orchestration: Automation With A Larger Scope
10.4 Kubernetes: An Example Container Orchestration System
10.5 Limits On Kubernetes Scope
10.6 The Kubernetes Cluster Model
10.7 Kubernetes Pods
10.8 Pod Creation, Templates, And Binding Times
10.9 Init Containers
10.10 Kubernetes Terminology: Nodes And Control Plane
10.11 Control Plane Software Components
10.12 Communication Among Control Plane Components
10.13 Worker Node Software Components
10.14 Kubernetes Features 1
10.15 Summary
PART IV Cloud Programming Paradigms
The MapReduce Paradigm
11.1 Introduction
11.2 Software In A Cloud Environment
11.3 Cloud-Native Vs. Conventional Software
11.4 Using Data Center Servers For Parallel Processing
11.5 Tradeoffs And Limitations Of The Parallel Approach
11.6 The MapReduce Programming Paradigm
11.7 Mathematical Description Of MapReduce
11.8 Splitting Input
11.9 Parallelism And Data Size
11.10 Data Access and Data Transmission
11.11 Apache Hadoop
11.12 The Two Major Parts Of Hadoop
11.13 Hadoop Hardware Cluster Model
11.14 HDFS Components: DataNodes And A NameNode
11.15 Block Replication And Fault Tolerance
11.16 HDFS And MapReduce
11.17 Using Hadoop With Other File Systems
11.18 Using Hadoop For MapReduce Computations
11.19 Hadoop's Support For Programming Languages
11.20 Summary
Microservices
12.1 Introduction
12.2 Traditional Monolithic Applications
12.3 Monolithic Applications In A Data Center
12.4 The Microservices Approach
12.5 The Advantages Of Microservices
12.6 The Potential Disadvantages of Microservices
12.7 Microservices Granularity
12.8 Communication Protocols Used For Microservices
12.9 Communication Among Microservices
12.10 Using A Service Mesh Proxy
12.11 The Potential For Deadlock
12.12 Microservices Technologies
12.13 Summary
Controller-Based Management Software
13.1 Introduction
13.2 Traditional Distributed Application Management
13.3 Periodic Monitoring
13.4 Managing Cloud-Native Applications
13.5 Control Loop Concept
13.6 Control Loop Delay, Hysteresis, And Instability
13.7 The Kubernetes Controller Paradigm And Control Loop
13.8 An Event-Driven Implementation Of A Control Loop
13.9 Components Of A Kubernetes Controller
13.10 Custom Resources And Custom Controllers
13.11 Kubernetes Custom Resource Definition (CRD)
13.12 Service Mesh Management Tools
13.13 Reactive Or Dynamic Planning
13.14 A Goal: The Operator Pattern
13.15 Summary
Serverless Computing And Event Processing
14.1 Introduction
14.2 Traditional Client-Server Architecture 1
14.3 Scaling A Traditional Server To Handle Multiple Clients
14.4 Scaling A Server In A Cloud Environment
14.5 The Economics Of Servers In The Cloud
14.6 The Serverless Computing Approach
14.7 Stateless Servers And Containers
14.8 The Architecture Of A Serverless Infrastructure
14.9 An Example Of Serverless Processing
14.10 Potential Disadvantages Of Serverless Computing
14.11 Summary
DevOps
15.1 Introduction
15.2 Software Creation And Deployment
15.3 The Realistic Software Development Cycle
15.4 Large Software Projects And Teams
15.5 Disadvantages Of Using Multiple Teams
15.6 The DevOps Approach
15.7 Continuous Integration (CI): A Short Change Cycle
15.8 Continuous Delivery (CD): Deploying Versions Rapidly
15.9 Cautious Deployment: Sandbox, Canary, And Blue/Green
15.10 Difficult Aspects Of The DevOps Approach
15.11 Summary
PART V Other Aspects Of Cloud
Edge Computing And IIoT
16.1 Introduction
16.2 The Latency Disadvantage Of Cloud
16.3 Situations Where Latency Matters
16.4 Industries That Need Low Latency
16.5 Moving Computing To The Edge
16.6 Extending Edge Computing To A Fog Hierarchy
16.7 Caching At Multiple Levels Of A Hierarchy
16.8 An Automotive Example
16.9 Edge Computing And IIoT
16.10 Communication For IIoT
16.11 Decentralization Once Again
16.12 Summary
Cloud Security And Privacy
17.1 Introduction
17.2 Cloud-Specific Security Problems
17.3 Security In A Traditional Infrastructure
17.4 Why Traditional Methods Do Not Suffice For The Cloud
17.5 The Zero Trust Security Model
17.6 Identity Management
17.7 Privileged Access Management (PAM)
17.8 AI Technologies And Their Effect On Security
17.9 Protecting Remote Access
17.10 Privacy In A Cloud Environment
17.11 Back Doors, Side Channels, And Other Concerns
17.12 Cloud Providers As Partners For Security And Privacy
17.13 Summary
Controlling The Complexity Of Cloud-Native Systems
18.1 Introduction
18.2 Sources Of Complexity In Cloud Systems
18.3 Inherent Complexity In Large Distributed Systems
18.4 Designing A Flawless Distributed System
18.5 System Modeling
18.6 Mathematical Models
18.7 An Example Graph Model To Help Avoid Deadlock
18.8 A Graph Model For A Startup Sequence
18.9 Modeling Using Mathematics
18.10 An Example TLA+ Specification
18.11 System State And State Changes
18.12 The Form Of A TLA+ Specification
18.13 Symbols In A TLA+ Specification
18.14 State Transitions For The Example
18.15 Conclusions About Temporal Logic Models
18.16 Summary
Index