class: title-slide .row[ .col-7[ .title[ # Cloud Computing ] .subtitle[ ## Cloud Computing ] .author[ ### Laxmikant Soni <br> [Web-Site](https://laxmikants.github.io) <br> [<i class="fab fa-github"></i>](https://github.com/laxmiaknts) [<i class="fab fa-twitter"></i>](https://twitter.com/laxmikantsoni09) ] .affiliation[ ] ] .col-5[ ] ] --- class: very-large-body # Virtualization Virtualization creates a virtual version of something, like a server, computer, storage device, operating system, or network. It allows multiple users or organizations to share a single physical resource by assigning it a logical name and providing access to it when needed. virtualization is a logical concept because it abstracts physical resources and presents them as virtual instances. Instead of directly using the hardware, virtualization creates a software-based (logical) representation of resources, allowing multiple users or applications to share the same physical infrastructure efficiently. The machine on which the virtual machine is going to create is known as Host Machine and that virtual machine is referred as a Guest Machine .pull-top[ ## Example: Imagine you have one big cake (a physical server). Instead of giving the whole cake to one person, you cut it into slices and serve multiple people (virtual machines). Each person feels like they have their own cake, but in reality, they are sharing the same cake. Similarly, virtualization divides a single physical resource (like a server or storage) into multiple virtual instances, so multiple users or applications can use it as if they each have their own separate resource. ] --- class: very-large-body # Virtualization Features .pull-top[ ## Alerts for Issues Just like a car dashboard shows warning lights if something is wrong, virtualization sends alerts if a virtual machine has a problem, helping the administrator fix it quickly. ## Sharing Computer Power and Memory Imagine a large apartment building where each tenant gets a specific amount of electricity and water. Similarly, virtualization assigns a certain amount of processing power and memory to each virtual machine so that everything runs smoothly. ## Automatic Scaling If your business experiences high traffic during peak hours, cloud services automatically increase resources to maintain performance. Similarly, when demand drops, resources scale down to reduce costs, ensuring efficiency. ] --- class: very-large-body # Virtualization Features .pull-top[ ## Keeping an Eye on Performance Just like a fitness tracker monitors your heart rate and steps, virtualization tracks how well virtual machines are running, so administrators can make sure nothing slows down. ## Easy Automation with Programs Imagine you have a smart home where lights turn on automatically at sunset. Similarly, virtualization allows automation, where virtual machines can be started, stopped, or adjusted using simple commands. ## Predicting Future Needs Just like weather forecasts help you plan your day, virtualization analyzes past usage to predict when more resources will be needed in the future. ] --- class: very-large-body # Virtualization Benefits .pull-top[ ## Better Resource Management Virtualization allows sharing computer power and storage more efficiently, ensuring that resources are used optimally. ## Improves Productivity Developers can quickly set up and test applications without needing extra hardware, making software development faster and easier. ## Reduces Costs It lowers the need for expensive physical servers and maintenance, helping businesses save money. ] --- class: very-large-body # Virtualization Benefits .pull-top[ ## Easy Remote Access and Scaling Virtual machines can be accessed from anywhere, and resources can be increased or decreased as needed to meet demand. ## Keeps Systems Running Even if one part of the system fails, virtualization helps keep services available, ensuring reliability. ## Pay Only for What You Use Instead of buying extra hardware, you only pay for the computing resources you actually need. ## Run Different Operating Systems You can run multiple operating systems, such as Windows and Linux, on the same computer without any issues. ] --- class: very-large-body # How does Virtualization works? Virtualization in cloud computing allows one physical computer (or server) to act like many separate computers. This is done using special software called a hypervisor, which divides the physical computer’s resources (CPU, memory, storage) into virtual machines (VMs). Each VM works like an independent computer with its own operating system and applications. .pull-top[ ## A Physical Server is Set Up – A large, powerful computer (server) is installed in a data center. ## The Hypervisor Creates Virtual Machines – The hypervisor software divides the server into multiple virtual machines, each behaving like a separate computer. ## Resources Are Shared – Each VM gets a portion of the server’s processing power, memory, and storage, depending on its needs. ] --- class: very-large-body # How does Virtualization works? .pull-top[ ## Users Access Their Virtual Machines – People or businesses connect to their VMs over the internet, using them for applications, storage, or hosting websites. ## Automatic Scaling and Management – The cloud system can adjust resources automatically, increasing or decreasing power as needed. ##Example Think of a hotel with many rooms. The hotel (physical server) is divided into separate rooms (virtual machines). Each guest (user) gets their own room with furniture and space (resources), but all rooms share the same building infrastructure. This setup makes cloud computing cost-effective, scalable, and efficient, allowing multiple users to share computing resources without needing their own hardware. ] --- class: very-large-body # How does Virtualization works? .pull-top[  ] --- class: very-large-body # Importance of Virtualization .pull-top[ - Better utilisation of the server/desktop. - For easy disaster recovery solution. - Faster roll out of new servers. - Migration of the systems becomes very easy. - Lesser resources are required for the management. ] --- class: very-large-body # Need of Virtualization Virtualization is essential because it helps businesses and individuals use computing resources more efficiently while saving costs and improving flexibility. Here are the key reasons why virtualization is needed: .pull-top[ ## Saves Money 💰 - Instead of buying multiple physical servers, virtualization allows one server to run multiple virtual machines (VMs), reducing hardware costs. - Businesses save on electricity and maintenance costs since fewer physical machines are needed. ## Better Use of Resources ⚡ - Without virtualization, most computers only use a small part of their processing power. - Virtualization ensures that CPU, memory, and storage are used effectively by sharing them among multiple VMs. ## Easier Management 🛠️ - IT teams can quickly create, delete, or modify VMs without changing the physical hardware. - Virtualization makes it easy to back up and restore systems in case of failure. ] --- class: very-large-body # Need of Virtualization Virtualization is essential because it helps businesses and individuals use computing resources more efficiently while saving costs and improving flexibility. Here are the key reasons why virtualization is needed: .pull-top[ ## Remote Access & Flexibility 🌍 - Virtual machines can be accessed from anywhere, making remote work and cloud computing possible. - Developers and businesses can quickly scale up or down depending on demand. ## Disaster Recovery & Security 🔒 - If a physical machine crashes, the VMs can be moved to another server, ensuring business continuity. - Security updates and backups can be applied easily across multiple VMs. ] --- class: very-large-body # Pro and Cons of Virtualization .pull-top[ |Pros |Description | |:------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------| |Utilization of Hardware Efficiently |Virtualization allows efficient hardware usage by both users and cloud providers, reducing the need for physical systems and lowering costs. | |Availability Increases |Virtualization ensures high availability by allowing virtual instances to be always accessible and securely migrated between servers. | |Efficient and Easy Disaster Recovery |Virtualization simplifies data recovery, backup, and duplication, reducing the risk of data loss in case of disasters. | |Energy Savings |Reducing physical servers leads to lower power consumption and cooling costs, benefiting both finances and the environment. | |Quick and Easy Setup |Setting up virtualized systems is much faster than traditional physical server deployment, saving time and increasing productivity. | |Simplified Cloud Migration |Organizations can easily migrate their data from on-premise servers to the cloud, saving costs on maintenance and infrastructure. | ] --- class: very-large-body # Pro and Cons of Virtualization .pull-top[ |Cons |Description | |:-----------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------| |Data Security Risks |Since virtualized environments share resources, data is hosted on third-party servers, making it vulnerable to hacking and unauthorized access. | |Need for Skilled Staff |Moving to cloud-based virtualization requires skilled professionals, leading to additional hiring or training costs. | |High Initial Investment |Although virtualization reduces long-term costs, the initial setup and migration expenses can be high, especially for unskilled organizations. | ] --- class: very-large-body # Pro and Cons of Virtualization .pull-top[ |Cons |Description | |:-----------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------| |Data Security Risks |Since virtualized environments share resources, data is hosted on third-party servers, making it vulnerable to hacking and unauthorized access. | |Need for Skilled Staff |Moving to cloud-based virtualization requires skilled professionals, leading to additional hiring or training costs. | |High Initial Investment |Although virtualization reduces long-term costs, the initial setup and migration expenses can be high, especially for unskilled organizations. | ] --- class: very-large-body # Hypervisor A hypervisor is a software or firmware layer that allows multiple virtual machines (VMs) to run on a single physical machine. It manages how these VMs share the system’s resources (CPU, memory, storage, etc.). There are two types of hypervisors: .pull-top[ ## Type 1 Hypervisor (Bare Metal) - Runs directly on physical hardware without an underlying operating system. - Used for large-scale server virtualization in data centers and cloud computing. - Examples: VMware ESXi, Microsoft Hyper-V, KVM, Xen. ## Type 2 Hypervisor (Hosted) – - Type 2 Hypervisor (Hosted) - Runs on top of an operating system. - Mostly used for development, testing, and personal use, rather than large-scale server deployments. Examples: VMware Workstation, VirtualBox, Parallels Desktop. ] --- class: very-large-body # Type 1 - Hypervisor A Type 1 hypervisor installs directly on the physical server. They are also called bare metal hypervisors. Type 1 hypervisors are the most common. They provide better security and lower latency. Some examples are: - VMware ESXi, - Microsoft Hyper-V, - Open source KVM .pull-top[ <img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a0adc43-7db3-4eda-bb80-acf8ca16378f_3900x3000.png" width="50%" /> ] --- class: very-large-body # Type 2 - Hypervisor A Type 2 hypervisor runs on top of a host operating system installed on the physical server. They are also called hosted hypervisors. Type 2 hypervisors see less frequent use, mainly for end-user virtualization. They have higher latency than Type 1 hypervisors. Some examples include: Oracle VirtualBox, VMware Workstation .pull-top[ <img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4245a43-e87b-4cc7-b3ab-588f21327fd9_3900x3409.png" width="40%" /> ] --- class: very-large-body # Types of Virtualization ## 1) Hardware Virtualization (Machine Virtualization) .pull-top[ ## What happens? A hypervisor creates and manages multiple virtual machines (VMs) on a single physical machine. Each VM runs its own operating system as if it were a separate physical computer. ## Example: VMware ESXi (Type 1 Hypervisor) runs multiple VMs on a server. VirtualBox (Type 2 Hypervisor) allows you to run Windows on a macOS system. ] --- class: very-large-body # Types of Virtualization ## 2) Operating System Virtualization .pull-top[ ## What happens? When the virtual machine software or virtual machine manager (VMM) is installed on the Host operating system instead of directly on the hardware system is known as operating system virtualization. ## Example: - Operating System Virtualization is mainly used for testing the applications on different platforms of OS. - Windows Subsystem for Linux (WSL) enables running Linux on Windows. ] --- class: very-large-body # Types of Virtualization ## 3) Server Virtualization When the virtual machine software or virtual machine manager (VMM) is directly installed on the Server system is known as server virtualization. .pull-top[ ## What Happens: - The hypervisor splits a single physical server into multiple virtual servers. - Each virtual server behaves like an independent machine, running its own OS and applications. - Server Virtualization can use both Type 1 and Type 2 hypervisors, but it is primarily associated with Type 1 hypervisors because they offer better performance, scalability, and security for enterprise environments. ## Example: - A cloud provider (AWS, Azure) uses hypervisors to run thousands of virtual servers on a few physical servers. - Microsoft Hyper-V allows multiple Windows Server instances on one physical machine. ] --- class: very-large-body # Types of Virtualization ## 4) Application Virtualization Application Virtualization means running an application in an isolated environment without installing it directly on the host system. .pull-top[ ## What Happens: - The application and its dependencies are packaged together and executed in a virtualized environment. - The application behaves as if it is installed on the system but does not modify the host OS. - This ensures compatibility across different systems and prevents conflicts between applications. ## Example: - Microsoft App-V allows Windows applications to run in a virtualized container without installation. - Docker containers package applications and their dependencies, allowing them to run on any system without conflicts. - VMware ThinApp enables applications to run on multiple Windows devices without direct installation. ] --- class: very-large-body # Types of Virtualization ## 5) Desktop Virtualization Desktop Virtualization allows users to access a virtual desktop environment remotely, instead of running the operating system directly on a local machine. .pull-top[ ## What Happens: - A desktop hypervisor or virtual machine (VM) runs the entire operating system on a remote server. - Users connect to their virtual desktops using thin clients, web browsers, or remote desktop software. - The actual processing happens on the server, and only the display, keyboard, and mouse inputs are transmitted. ## Example: - Virtual Desktop Infrastructure (VDI) – Solutions like VMware Horizon or Citrix Virtual Apps and Desktops provide Windows desktops that users can access remotely. - Cloud-based Desktops – Services like Amazon WorkSpaces offer full virtual desktops hosted in the cloud ] --- class: very-large-body # Types of Virtualization ## 6) Network Virtualization Network Virtualization is the process of combining **hardware and software network resources** into a **single, unified virtual network**. It allows multiple virtual networks to operate independently on the same physical infrastructure. .pull-top[ ### **How it Works** - A **network hypervisor** abstracts physical networking devices (routers, switches, firewalls). - It creates **virtual networks** that can be customized, scaled, and managed separately. - Each virtual network behaves as an independent unit, even though they share the same physical infrastructure. ### **Example** A cloud service provider can create multiple **virtual networks** on a single physical network, allowing different customers to have **separate, secure** networking environments. ] --- class: very-large-body # Types of Virtualization ## 7) Storage Virtualization Storage Virtualization is the process of **pooling multiple physical storage devices** into a single, centralized storage system. It allows users and applications to **access storage as a single logical unit**, regardless of the underlying physical hardware. .pull-top[ ### **How it Works** - A **storage hypervisor** abstracts multiple physical storage devices. - Users and applications see a **single virtualized storage system** instead of managing individual disks. - The storage system optimizes space utilization, replication, and redundancy. ### **Example** A cloud service provider can combine multiple hard drives and SSDs into a **single storage pool** using software-defined storage solutions like **VMware vSAN** or **Ceph**, allowing users to store and retrieve data without worrying about the underlying hardware. ] --- class: very-large-body # Implementation Levels of Virtualization in Cloud Computing Implementation levels of virtualization refer to the different layers at which virtualization can be applied within a computing system. These levels define how hardware, software, and applications interact with virtual environments. Each level abstracts certain components of the system to enable better resource utilization, flexibility, and efficiency.The five common implementation levels of virtualization in cloud computing are: .pull-top[ - **Instruction Set Architecture (ISA) Level** – Virtualizes machine instructions to allow different architectures to run on the same hardware. - **Hardware Abstraction Level (HAL)** – Uses a hypervisor to abstract physical hardware and create virtual machines. - **Operating System Level** – Creates isolated environments within a single OS using containers. - **Library Level** – Virtualizes API calls between applications and the OS for better compatibility. - **Application Level** – Virtualizes individual applications without requiring full system virtualization ] --- class: very-large-body # Implementation Levels of Virtualization in Cloud Computing .pull-top[  ] --- class: very-large-body # Implementation level: Instruction Set Architecture (ISA) Level ISA-level virtualization allows software written for one type of hardware to run on a different hardware architecture using emulation or binary translation. .pull-top[ ### **How it Works** - Works through ISA emulation, allowing legacy software to run on different hardware. - Enables binary translation, so old programs can run on modern processors like x86 and x64. - Uses an interpreter to convert instructions into a hardware-readable format. ### **Example** - QEMU (Quick Emulator) is a popular open-source emulator that can emulate different CPU architectures. - It allows running x86 software on an ARM processor or vice versa. - Example Use Case: Running legacy 32-bit applications on a modern 64-bit system without modifying the code. ] --- class: very-large-body # Implementation level: Hardware Abstraction Level (HAL) Hardware Abstraction Level (HAL) virtualization uses a hypervisor to manage physical hardware and create multiple virtual machines (VMs). This allows different operating systems to run on the same hardware independently. .pull-top[ ### **How it Works** - Uses a hypervisor to manage virtualization at the hardware level. - Allows virtualization of components like CPU, memory, and I/O devices. - Enables multiple virtual machines (VMs) to run on the same hardware. - Commonly used in cloud infrastructure for resource sharing. ### **Example** - VMware ESXi is a Type 1 hypervisor that runs directly on the hardware. - It abstracts CPU, memory, and I/O devices, allowing multiple virtual machines (VMs) to run on a single server. - Example Use Case: A company can run Windows Server and Linux VMs on the same physical machine, reducing hardware costs. - Example Use Case: IT departments use Hyper-V to create test environments without requiring multiple physical servers. ] --- class: very-large-body # Implementation level: Operating System Level Operating system-level virtualization lets you run multiple independent applications in separate spaces (containers) on the same operating system without needing a full virtual machine. It's like having multiple rooms in one house, where each room has its own setup but shares the same foundation. .pull-top[ ### **How it Works** - Uses a single OS kernel to create multiple isolated virtual environments. - Each environment functions as a separate system but shares the underlying OS resources. - Commonly used in hosting environments, cloud services, and containerization. ## **Example** - **Docker**: Allows applications to run in lightweight containers on a shared OS. - **LXC (Linux Containers)**: Provides an OS-level virtualization method to create isolated environments. - **OpenVZ**: A Linux-based containerization technology that enables multiple OS instances. - **Solaris Zones**: A feature in Solaris OS that enables running multiple virtual environments on a single OS. ] --- class: very-large-body # Implementation level: Library Level Library-level virtualization allows applications to run in isolated environments by redirecting system calls through virtualized libraries instead of directly interacting with the underlying OS. .pull-top[ ### **How it Works** - Instead of virtualizing an entire OS, it virtualizes specific libraries used by applications. - Applications interact with a virtualized version of system libraries, enabling compatibility across different platforms. - Commonly used in cross-platform compatibility and application sandboxing. ## **Example** - **Wine**: Allows Windows applications to run on Linux by providing a compatibility layer for Windows system calls. - **Java Virtual Machine (JVM)**: Allows Java applications to run on different operating systems by abstracting the OS differences. ] --- class: very-large-body # Implementation level: Application Level Application-level virtualization allows individual applications to run in isolated environments without being installed directly on the host operating system. It ensures that applications function independently, avoiding conflicts with other software. .pull-top[ ### **How it Works** - Encapsulates an application and its dependencies in a virtualized environment. - Prevents software conflicts by isolating applications from the underlying OS. - Commonly used for software portability, security, and simplified application management. ## **Examples** - **ThinApp**: Allows applications to run in a self-contained package without modifying the host OS. - **Cameyo**: Virtualizes applications so they can run on any device without installation. - **Microsoft App-V**: Streams applications to users without requiring local installation. - **Docker (for isolated app execution)**: While primarily OS-level virtualization, Docker can be used to run single applications in isolated environments. ] --- class: very-large-body # Virtualization Layer vs. Virtual Machine Monitor (VMM) .pull-top[ | Concept | Description | |-------------------------|-------------| | **Virtualization Layer** | A broader concept that refers to any abstraction layer enabling virtualization. It can include hypervisors (VMMs), emulators, or container runtimes. Example: Docker, LXC (OS-level virtualization). | | **Virtual Machine Monitor (VMM) / Hypervisor** | A specific type of virtualization layer that manages virtual machines (VMs), controlling access to hardware. Example: VMware ESXi, Xen, KVM, Hyper-V. | ## **Key Differences** - **All VMMs are part of the virtualization layer**, but **not all virtualization layers are VMMs**. - **Virtualization Layer** = General concept (can include VMM, OS-level containers, etc.). - **VMM / Hypervisor** = A specific type of virtualization layer that manages VMs. ] --- class: very-large-body # Virtualization Structures .pull-top[ | Stage | Description | Details | |----------------------------|---------------------------------------------------------------------------|---------| | **Types of VM Architectures** | **Hypervisor Architecture** | Uses a Virtual Machine Monitor (VMM) to manage VMs. | | | **Para-Virtualization** | The guest OS is modified to communicate with the hypervisor efficiently. | | | **Host-Based Virtualization** | The hypervisor runs on top of an existing OS, allowing virtualization within it. | | | **Full Virtualization** | Allows an unmodified guest OS to run on virtualized hardware without changes. <br> The guest OS operates as if it has direct hardware access, but the hypervisor controls resource allocation. The Full virtualization combines binary translation and direct execution. | | | **Hardware-Assisted Virtualization** | Uses CPU extensions like Intel VT-x and AMD-V to improve performance. <br> Reduces overhead by allowing direct execution of privileged instructions on hardware. | ] --- class: very-large-body # Para Virtualization .pull-top[  ] --- class: very-large-body # Host based Virtualization .pull-top[  ] --- class: very-large-body # Full Virtualization .pull-top[  ] --- class: very-large-body # Hardware assisted Virtualization .pull-top[  ] --- # Virtualization Structures .pull-top[ Table: Comparison of Virtualization Techniques |Type |Description |Pros |Cons | |:--------------------------------|:----------------------------------------------------------------------------------|:--------------------------------------------|:------------------------------------------| |Para-Virtualization |Guest OS is modified to use hypercalls instead of direct hardware access. |Efficient; less overhead. |Requires OS modification. | |Full Virtualization |Guest OS runs unmodified; hypervisor translates privileged instructions. |Supports unmodified OS; no changes required. |Higher overhead due to binary translation. | |Host-Based Virtualization |Virtualization runs on top of a host OS, with VMM as an application. |Easy to set up and use. |Lower performance due to host OS overhead. | |Hardware-Assisted Virtualization |Uses CPU extensions (Intel VT-x, AMD-V) to allow guest OS direct Ring 0 execution. |Improved performance and security. |Requires hardware support (VT-x, AMD-V). | ] --- # Full Virtualiztion vs Para Virtualization .pull-top[ <img src="https://www.researchgate.net/profile/Hasan-Fayyad/publication/261411692/figure/fig2/AS:2968471172100@1447792751919/Comparison-between-the-virtualization-approaches-16.png" width="80%" /> ] --- class: very-large-body # Full Virtualiztion vs Para Virtualization .pull-top[ | Features | Full Virtualization | ParaVirtualization | |------------------------------|------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------| | **Definition** | A virtualization technique where the guest OS runs unmodified using a hypervisor. | A virtualization technique where the guest OS interacts with the hypervisor for improved performance. | | **Security** | It is less secure than paravirtualization due to direct hardware access. | It is more secure as the hypervisor controls direct hardware interactions. | | **Performance** | Performance is lower due to full hardware emulation. | Performance is higher as the guest OS communicates efficiently with the hypervisor. | | **Guest OS Modification** | No modifications are required in the guest OS. | The guest OS must be modified to communicate with the hypervisor. | ] --- class: very-large-body # Full Virtualiztion vs Para Virtualization .pull-top[ | Features | Full Virtualization | ParaVirtualization | |------------------------------|------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------| | **Guest OS Hypervisor Independence** | The guest OS runs independently of the hypervisor. | The guest OS requires hypervisor-specific modifications. | | **Portability and Compatibility** | Supports a wide range of operating systems without modification. | Limited compatibility as only OSs that support paravirtualization can be used. | | **Isolation** | Provides strong isolation between guest OSs. | Offers less isolation due to direct interaction between the OS and hypervisor. | | **Efficiency** | Less efficient due to full hardware emulation overhead. | More efficient as the hypervisor assists the guest OS in virtualization. | | **Characteristic** | Uses binary translation or hardware-assisted virtualization. | Uses cooperative virtualization, requiring OS modifications for hypervisor communication. | | **Examples** | Used in Microsoft Hyper-V, VMware Workstation, and Parallels. | Used in Xen, VMware ESXi (with para mode), and KVM with paravirtualized drivers. | ] --- # Revision .pull-top[ **Question:** _____ is a firmware that acts as a Virtual Machine Manager. **Choices:** a) Network b) Multiplexing c) Server d) Hypervisor ] --- # Revision .pull-top[ **Question:** Which one of the following given programs provides the isolation (abstraction) and partitioning? **Choices:** a) System hypervisor b) Software hypervisor c) Hardware hypervisor d) Virtualization hypervisor ] --- # Revision .pull-top[ **Question:** How many types of hypervisor are there? **Choices:** a) 1 b) 2 c) 3 d) 4 ]