Notes on Cloud Computing (CY/IS 173)
University of Mines and Technology, Tarkwa
Faculty of Engineering
Computer Science and Engineering Department
Cloud Computing Course - CY/IS 173
Lecture Notes on Cloud Computing
January 2023
Table of Contents
What is Cloud Computing?
1.1 Cloud Computing Is Around Us
1.2 Characteristics of Cloud Computing
1.2.1 On-Demand Self-Service
1.2.2 Broad Network Access
1.2.3 Resource Pooling
1.2.4 Rapid Elasticity
1.2.5 Measured Service
1.3 Definition of Cloud Computing
1.4 Origin and Development of Cloud Computing
1.4.1 A Brief History of the Internet
1.4.2 The History of Computing
1.4.3 Development of Cloud Computing
1.4.4 Differences Between Cloud Computing 1.0 and 2.0/3.0
1.5 Cloud Computing Models
1.5.1 By Deployment Model
1.5.2 By Service Model
Introduction to Compute Virtualization
2.1 Virtualization Overview
2.1.1 What's Virtualization?
2.1.2 A Brief History of Compute Virtualization
2.1.3 Compute Virtualization Types
2.2 Compute Virtualization
2.2.1 CPU Virtualization
2.2.2 Memory Virtualization
2.2.3 I/O Virtualization
2.2.4 Mainstream Compute Virtualization
2.3 KVM
Network Basics for Cloud Computing
3.1 Network Architecture in Virtualization
3.1.1 Traffic on a Virtual Network
3.1.2 Basic Network Concepts
3.2 Physical Networks in Virtualization
3.3 Virtual Networks in Virtualization
Storage Basics for Cloud Computing
4.1 Mainstream Physical Disk Types
4.1.1 HDD
4.1.2 SSD
4.2 Centralized Storage and Distributed Storage
4.2.1 Centralized Storage
4.2.2 RAID
4.2.3 Distributed Storage and Replication
4.3 Virtualized Storage and Non-virtualized Storage
4.4 VM Disks
Virtualization Features
5.1 Virtualization Cluster Features
5.1.1 HA
5.1.2 Load Balancing
5.1.3 Scalability
5.1.4 Memory Overcommitment
5.2 VM Features
5.2.1 Quick VM Deployment
5.2.2 VM Resource Hot-Add
5.2.3 VM Console
5.2.4 VM Snapshot
5.2.5 NUMA
Cloud Computing Trends
6.1 Fields Related to Cloud Computing
6.2 Cloud-Enabling Technologies
6.2.1 Container
6.2.2 OpenStack
6.3 Other Emerging Technologies
6.3.1 Fog Computing
6.3.2 Edge Computing
6.3.3 Microservices
6.3.4 Serverless
Appendix
## 7.1 Verification 1
## 7.2 Verification 2
## 7.3 Verification 3
## 7.4 Verification 4
1. What is Cloud Computing?
1.1 Cloud Computing Is Around Us
Cloud computing is not just a technical term, but something that many people are likely using without realizing it.
Services such as Huawei Cloud, which offers a variety of services like Computation, Storage, Networking, and Applications, exemplify this usage.
Examples of cloud services accessible through Huawei’s platform include:
Elastic Cloud Server (ECS): Allows users to configure computing resources on the cloud similar to a personal computer.
Provides various specifications and capabilities for users, replicating conventional PC capabilities and functionalities.
Other services mentioned include website building tools and AI services like facial and voice recognition, all emphasizing the convenience and accessibility of IT services via the internet.
Cloud computing as a service delivery model makes IT services usable as easily and conveniently as utilities like water and electricity.
1.2 Characteristics of Cloud Computing
Five recognized characteristics of cloud computing:
1.2.1 On-Demand Self-Service
Users can provision computing capabilities without requiring human interaction with service providers.
Analogy: Much like shopping in a supermarket, where consumers select items themselves, users can provision services based on their needs.
1.2.2 Broad Network Access
Users can access cloud services via network connections from any device with internet connectivity, e.g., PCs, tablets, smartphones.
1.2.3 Resource Pooling
Resources are pooled to serve multiple users, allowing for dynamic resource distributions based on demand without users needing to know the underlying mechanisms.
1.2.4 Rapid Elasticity
Resources can be elastically provisioned and released to scale up and down as needed, ensuring the availability of resources during fluctuating demands.
1.2.5 Measured Service
The resource usage is monitored, controlled, and reported, providing transparency for both providers and consumers to optimize services based on actual consumption.
1.3 Definition of Cloud Computing
National Institute of Standards and Technology (NIST) Definition:
"A model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction."
Highlights:
Cloud computing is essentially a service delivery model, contrasting with a direct technology focus.
It abstracts various computing functionalities into managed services accessible via the internet.
1.4 Origin and Development of Cloud Computing
1.4.1 A Brief History of the Internet
Milestones:
1969: ARPANET, the predecessor of today’s Internet, launched by the US military for reliable communications.
1983: TCP/IP protocol suite introduced, facilitating large-scale networking.
1991: The World Wide Web becomes publicly available, allowing unprecedented access to information and resources.
1.4.2 The History of Computing
Transition from serial to parallel and distributed computing, which lays the groundwork for cloud-centric models.
1.4.3 Development of Cloud Computing
Evolution of cloud services from original single / limited purposes to sophisticated IaaS, PaaS, and SaaS models.
1.4.4 Differences Between Cloud Computing 1.0 and 2.0/3.0
Initial virtualization focus shifting to widespread adoption in mission-critical applications focused on increased efficiency, performance, and reliability.
1.5 Cloud Computing Models
1.5.1 By Deployment Model
Public Cloud: Services available to multiple clients on a shared infrastructure (e.g., AWS).
Private Cloud: Infrastructure dedicated to a single organization, allowing greater control and privacy.
Hybrid Cloud: Combination allowing for data and applications to be shared between them, supporting flexible workloads and services.
1.5.2 By Service Model
Infrastructure as a Service (IaaS): Provides virtualized computing resources over the internet, like virtual machines.
Platform as a Service (PaaS): Delivering a platform allowing customers to develop, run, and manage applications.
Software as a Service (SaaS): Provides software applications over the internet, on a subscription basis.
2. Introduction to Compute Virtualization
2.1 Virtualization Overview
2.1.1 What's Virtualization?
Definition: A technology simulating hardware functionalities, creating multiple VMs on physical servers.
2.1.2 A Brief History of Compute Virtualization
Trace the development from IBM's early virtual systems to modern hypervisors like KVM.
2.1.3 Compute Virtualization Types
Types discuss the division into Type 1 (bare-metal) and Type 2 (hosted) hypervisors.
2.2 Compute Virtualization
2.2.1 CPU Virtualization
Discuss methods in CPU virtualization enabling abstraction and management, including Full, Para, and Hardware-assisted virtualization techniques.
2.2.2 Memory Virtualization
Overview of managing physical memory for virtual entities through mapping and management techniques.
2.2.3 I/O Virtualization
Discusses how I/O resources are allocated and managed for VMs, including performance considerations.
2.2.4 Mainstream Compute Virtualization
Provides insights on currently dominant virtualization solutions employed across environments (KVM, VMware, etc.).
2.3 KVM
Discusses management and utilization specifics of the Kernel-based Virtual Machine as a leading hypervisor technology.
3. Network Basics for Cloud Computing
3.1 Network Architecture in Virtualization
3.1.1 Traffic on a Virtual Network
Understanding north-south vs. east-west traffic patterns in virtualized data centers.
3.1.2 Basic Network Concepts
Overview of broadcasting, unicast communication, packet structure, distinguishing VLANs, and other network concepts.
3.2 Physical Networks in Virtualization
Overview of required infrastructure such as routers and switches (layer distinctions).
3.3 Virtual Networks in Virtualization
Discusses the concept and advantages of virtual switches for handling intra-VM and network traffic management.
4. Storage Basics for Cloud Computing
4.1 Mainstream Physical Disk Types
4.1.1 HDD
Overview of Hard Disk Drive technology evolution, mechanical structure, and storage principles.
4.1.2 SSD
Context of Solid State Drives highlighting advantages, challenges in terms of cost and longevity compared to traditional HDDs.
4.2 Centralized Storage and Distributed Storage
4.2.1 Centralized Storage
Defined as storage resources managed at a centralized level, typically using RAID technologies for performance and redundancy.
4.2.2 RAID
Detailed explanation of RAID levels (0, 1, 5, 6) focusing on strengths and specific use cases for each configuration.
4.2.3 Distributed Storage and Replication
Emphasizes the differences between centralized and distributed storage frameworks and their associated management techniques.
4.3 Virtualized Storage and Non-virtualized Storage
Exploring how virtualization changes the interaction with storage resources and their management.
4.4 VM Disks
Insights into Virtual Machine disk structures, formats, and usage within the virtualization context.
5. Virtualization Features
5.1 Virtualization Cluster Features
5.1.1 HA
High availability strategies and how they enhance cluster reliability in the event of node failure.
5.1.2 Load Balancing
Mechanisms allowing for optimal distribution of workloads ensuring efficient resource use and responsiveness.
5.1.3 Scalability
Analysis of horizontal and vertical scaling methods, detailing how scalability is achieved in cloud environments.
5.1.4 Memory Overcommitment
Techniques allowing for dynamic memory allocation exceeding physical limits to increase density of running VMs.
5.2 VM Features
5.2.1 Quick VM Deployment
Methods facilitating fast and efficient VM creation using templates and cloning functions.
5.2.2 VM Resource Hot-Add
Techniques for adding hardware resources to VMs on-the-fly without interruption.
5.2.3 VM Console
Management options for remote access and management of VMs.
5.2.4 VM Snapshot
Snapshots used for backup and recovery, including technologies underpinning snapshotting and performance.
5.2.5 NUMA
Overview of Non-Uniform Memory Access technology improving performance by allocating memory to specific CPU nodes.
6. Cloud Computing Trends
6.1 Fields Related to Cloud Computing
Overview of IoT, AI, and Big Data's intertwining role in cloud environments.
6.2 Cloud-Enabling Technologies
6.2.1 Container
Insights into containerization as a technology enabling microservices architecture.
6.2.2 OpenStack
Discussion on OpenStack's role as a cloud OS framework, with details on its projects and integrations.
6.3 Other Emerging Technologies
6.3.1 Fog Computing
Description of fog computing extending cloud capabilities closer to data generation points.
6.3.2 Edge Computing
Exploration of decentralized computing architectures relevant to real-time data processing.
6.3.3 Microservices
Emphasizing the modular, independent service architecture enhancing response and development capabilities.
6.3.4 Serverless
Explanation of serverless computing models relieving developers from server management overhead.
7. Appendix
7.1 Verification 1
Detailed command line instructions to verify virtualization technology used.
7.2 Verification 2
Commands to confirm QEMU modules and their integrations in KVM.
7.3 Verification 3
Using
ovs-vsctlfor inspecting virtual networking configurations.
7.4 Verification 4
Commands to obtain traffic statistics from virtual switches.
Important Notes:
Each section related to definitions, historical context, and technological advances is presented in detailed, accessible formats, with distinctions between various models and practices addressed in comprehensive contexts.
All technical specifications including numerical data and examples retained in their entirety to support thorough understanding and application in cloud computing studies and practices.
This document serves as a comprehensive guide for students of Cloud Computing at the University of Mines and Technology and aims to provide detailed insights into cloud technologies, trends, and practices.
It is meticulously structured to ensure clarity and facilitate learning by covering all essential components of cloud computing technologies thoroughly.