Fiveable

โ˜๏ธCloud Computing Architecture Unit 2 Review

QR code for Cloud Computing Architecture practice questions

2.1 Virtualization technologies (hypervisors, containers)

โ˜๏ธCloud Computing Architecture
Unit 2 Review

2.1 Virtualization technologies (hypervisors, containers)

Written by the Fiveable Content Team โ€ข Last updated September 2025
Written by the Fiveable Content Team โ€ข Last updated September 2025
โ˜๏ธCloud Computing Architecture
Unit & Topic Study Guides

Virtualization technologies like hypervisors and containers are game-changers in cloud computing. They let you run multiple virtual machines or apps on a single physical server, maximizing resource use and flexibility. This approach saves money, boosts efficiency, and makes it easier to manage complex IT environments.

Hypervisors create and manage virtual machines, while containers package apps with their dependencies. Both have pros and cons. Hypervisors offer stronger isolation but use more resources. Containers are lightweight and portable but share the host's kernel. Understanding these differences helps you choose the right tool for your needs.

Virtualization overview

Virtualization definition

  • Virtualization abstracts physical hardware resources and creates virtual versions of those resources
  • Enables running multiple operating systems and applications on a single physical machine
  • Virtualizes compute, storage, and networking components to optimize resource utilization and flexibility

Benefits of virtualization

  • Increases hardware utilization by allowing multiple workloads to share the same physical resources
  • Reduces costs associated with hardware, energy consumption, and data center space
  • Enhances flexibility and agility by enabling rapid provisioning and deployment of virtual machines
  • Improves business continuity through simplified backup, recovery, and migration processes
  • Facilitates development and testing by providing isolated environments for different applications and configurations

Hypervisor-based virtualization

Hypervisor definition

  • A hypervisor is a software layer that manages and coordinates multiple virtual machines on a single physical host
  • Abstracts the underlying hardware resources and presents them to the virtual machines
  • Ensures isolation and resource allocation among the virtual machines

Types of hypervisors

  • Type 1 (bare-metal) hypervisors run directly on the host's hardware without an underlying operating system (VMware ESXi, Microsoft Hyper-V)
  • Type 2 (hosted) hypervisors run as a software layer on top of an existing operating system (Oracle VirtualBox, VMware Workstation)

Bare-metal vs hosted hypervisors

  • Bare-metal hypervisors offer better performance and security due to direct hardware access and fewer layers
  • Hosted hypervisors provide easier installation and compatibility with a wider range of hardware and operating systems
  • Bare-metal hypervisors are commonly used in enterprise and production environments, while hosted hypervisors are often used for personal or testing purposes
  • VMware vSphere: A comprehensive virtualization platform that includes ESXi hypervisor and vCenter management tools
  • Microsoft Hyper-V: A native hypervisor integrated with Windows Server operating systems
  • KVM (Kernel-based Virtual Machine): An open-source hypervisor built into the Linux kernel
  • Xen: An open-source bare-metal hypervisor used in many cloud computing platforms

Container-based virtualization

Container definition

  • Containers are lightweight, standalone executable packages that include an application and its dependencies
  • Provide a consistent runtime environment across different computing environments
  • Utilize the host operating system's kernel, making them more lightweight than virtual machines

Containers vs virtual machines

  • Containers share the host operating system kernel, while virtual machines run separate operating systems on top of a hypervisor
  • Containers have lower overhead and faster startup times compared to virtual machines
  • Virtual machines offer stronger isolation and security boundaries between workloads

Container architecture

  • Containers are built from images, which are read-only templates containing the application and its dependencies
  • Each container runs as an isolated process in user space on the host operating system
  • Containers can be connected through virtual networks and share storage volumes

Container orchestration

  • Container orchestration tools automate the deployment, scaling, and management of containerized applications
  • Orchestration platforms handle tasks such as container scheduling, load balancing, and self-healing
  • Popular orchestration tools include Kubernetes, Docker Swarm, and Apache Mesos
  • Docker: The most widely used container platform, providing tools for building, shipping, and running containers
  • Kubernetes: An open-source container orchestration platform for automating deployment, scaling, and management of containerized applications
  • Red Hat OpenShift: A comprehensive container platform built on Kubernetes, offering additional features and support
  • Amazon Elastic Container Service (ECS) and Azure Container Instances (ACI): Managed container services provided by cloud providers

Resource allocation

CPU allocation

  • Hypervisors and container runtimes allocate CPU resources to virtual machines and containers based on predefined limits and shares
  • CPU allocation can be dynamically adjusted to meet changing workload demands
  • Techniques like CPU pinning and NUMA awareness optimize CPU performance for virtualized workloads

Memory allocation

  • Hypervisors allocate memory to virtual machines based on configured sizes and can use techniques like memory ballooning and transparent page sharing for efficient utilization
  • Containers share the host's memory and rely on cgroups to enforce memory limits and isolation
  • Memory overcommitment allows allocating more virtual memory than physically available, but requires careful monitoring to avoid performance issues

Storage allocation

  • Virtual machines and containers can be allocated storage through virtual disks or volumes backed by local or networked storage
  • Storage can be provisioned dynamically or statically, with options for thin or thick provisioning
  • Storage quality of service (QoS) policies ensure fair allocation of I/O resources among workloads

Network allocation

  • Virtualization platforms create virtual networks to connect virtual machines and containers
  • Network resources like bandwidth and QoS can be allocated and prioritized based on workload requirements
  • Virtual network functions (VNFs) and software-defined networking (SDN) enable advanced network services and automation in virtualized environments

Isolation and security

Isolation in virtualization

  • Hypervisors provide strong isolation between virtual machines, preventing unauthorized access and data leakage
  • Containers offer process-level isolation, but share the host kernel, requiring additional security measures
  • Techniques like virtual machine encryption, network microsegmentation, and role-based access control enhance isolation and security

Security benefits of virtualization

  • Virtualization enables running applications with different security requirements on separate virtual machines or containers
  • Snapshots and backups of virtual machines and containers facilitate rapid recovery from security incidents
  • Security patches and updates can be applied to virtual machines and container images without affecting other workloads

Security risks and challenges

  • Hypervisor vulnerabilities can potentially compromise all virtual machines running on the host
  • Containers' shared kernel model requires careful management of host security and container privileges
  • Sprawling virtual machine and container deployments can lead to inconsistent security policies and unpatched systems
  • Virtualization management tools and APIs must be properly secured to prevent unauthorized access and misuse

Performance considerations

Virtualization overhead

  • Virtualization introduces some performance overhead due to the additional layer of abstraction between hardware and workloads
  • Overhead is more noticeable for I/O-intensive workloads and can be mitigated through proper configuration and hardware support
  • Containers generally have lower overhead compared to virtual machines due to their lightweight nature

Performance tuning

  • Hypervisor and container runtime settings can be tuned to optimize performance for specific workloads
  • Examples include adjusting virtual CPU and memory allocation, enabling hardware-assisted virtualization features, and configuring storage and network I/O
  • Monitoring and analyzing performance metrics helps identify bottlenecks and inform tuning decisions

Monitoring and optimization

  • Virtualization platforms provide built-in monitoring tools to track resource utilization and performance of virtual machines and hosts
  • Third-party monitoring solutions offer additional insights and integration with other IT management systems
  • Optimization techniques like load balancing, resource scheduling, and workload placement ensure efficient use of virtualized resources

Use cases

Server consolidation

  • Virtualization enables consolidating multiple underutilized physical servers into fewer hosts, reducing hardware and operational costs
  • Server consolidation improves resource utilization, simplifies management, and reduces data center footprint

Development and testing

  • Virtualization provides isolated environments for developers to build, test, and debug applications without impacting production systems
  • Containers offer lightweight and portable development environments that can be easily shared and deployed across different stages of the software development lifecycle

High availability and disaster recovery

  • Virtualization features like live migration, failover clustering, and replication ensure high availability and minimize downtime for critical workloads
  • Virtual machines and containers can be quickly restored from snapshots or backups in case of system failures or disasters
  • Virtualization enables geographically dispersed disaster recovery setups for improved business continuity

Microservices and cloud-native apps

  • Containers are well-suited for deploying and scaling microservices-based applications, where each service runs in its own container
  • Containerization enables a cloud-native approach, with loosely coupled services that can be independently developed, deployed, and scaled
  • Kubernetes and other container orchestration platforms provide the necessary infrastructure for managing and automating microservices deployments in cloud environments