The Cloud Computing Book The Future of Computing Explained

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"

This latest textbook from bestselling author, Douglas E. Comer, is a class-tested book providing a comprehensive introduction to cloud computing. Focusing on concepts and principles, rather than commercial offerings by cloud providers and vendors, The Cloud Computing Book: The Future of Computing Explained gives readers a complete picture of the advantages and growth of cloud computing, cloud infrastructure, virtualization, automation and orchestration, and cloud-native software design. The book explains real and virtual data center facilities, including computation (e.g., servers, hypervisors, Virtual Machines, and containers), networks (e.g., leaf-spine architecture, VLANs, and VxLAN), and storage mechanisms (e.g., SAN, NAS, and object storage). Chapters on automation and orchestration cover the conceptual organization of systems that automate software deployment and scaling. Chapters on cloud-native software cover parallelism, microservices, MapReduce, controller-based designs, and serverless computing. Although it focuses on concepts and principles, the book uses popular technologies in examples, including Docker containers and Kubernetes. Final chapters explain security in a cloud environment and the use of models to help control the complexity involved in designing software for the cloud. The text is suitable for a one-semester course for software engineers who want to understand cloud, and for IT managers moving an organization’s computing to the cloud.

Author(s): Douglas Comer
Publisher: Chapman and Hall/CRC
Year: 2021

Language: English
Pages: 287

Cover
Half Title
Title Page
Copyright Page
Dedication
Contents
Preface
PART I: The Era Of Cloud Computing
Chapter 1: 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
Chapter 2: 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
Chapter 3: Types 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
Chapter 4: 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
Chapter 5: 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 Phases
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
Chapter 6: 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
Chapter 7: 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
Chapter 8: 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
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
Chapter 9: 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
Chapter 10: 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
10.15. Summary
PART IV: Cloud Programming Paradigms
Chapter 11: 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
Chapter 12: 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
Chapter 13: 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
Chapter 14: Serverless Computing And Event Processing
14.1. Introduction
14.2. Traditional Client-Server Architecture
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
Chapter 15: 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
Chapter 16: 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
Chapter 17: 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
Chapter 18: 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