Study Notes on Virtualization and Cloud Computing Concepts

Virtualization

Definition of Virtualization

  • Virtualization refers to the running of multiple operating systems on a single physical machine.
  • It allows for the creation of virtual machines (VMs) that function as individual computers, each with its own operating system and applications.

Historical Context

  • Virtualization technology was first introduced in 1967 on IBM mainframes.
  • The principles from that era are still applicable in modern virtualization on contemporary hardware.

Concepts of Virtualization

Types of Virtualization

  • Type One Hypervisor (Bare Metal Hypervisor): Sits directly on the hardware, managing resources without a host operating system. Examples include VMware ESXi and Microsoft Hyper-V.
  • Type Two Hypervisor (Hosted Hypervisor): Runs on top of a host operating system. Examples include VMware Workstation and Oracle VirtualBox.

Benefits of Virtualization

  • Sandboxing: Provides an isolated environment for testing applications and code without affecting the main operating system.
  • Snapshots: Virtual machines can take snapshots of their configuration at any point, allowing users to revert back if changes cause issues.
  • Multi-OS Support: Allows for running different operating systems simultaneously on one physical device (e.g., Windows 10 and Windows 11).
  • Resource Efficiency: Reduces the need for multiple physical machines, saving costs and facilitating better resource management.

Applications of Virtualization

Application Development

  • Developers can create VMs to test applications in environments that mirror production configurations, ensuring reliability when deployed to end users.
  • The flexibility of VMs enables rapid iteration and testing of code without risk to the main operating system.

Legacy Software Support

  • Virtualization allows outdated or legacy software to run on modern hardware, bypassing the need for original physical machines.

Cross-Platform Virtualization

  • Users can run various operating systems and applications concurrently, enhancing productivity and operational flexibility (e.g., running macOS, Windows, and Linux together).

Hypervisor Functionality

Role of Hypervisors

  • The hypervisor manages the interaction between virtual machines and the physical hardware.
  • It allocates CPU cycles, memory, and networking resources among the VMs.

Networking in Virtualization

  • Hypervisors can manage internal virtual networks to control how VMs communicate with each other and the outside world.
  • Options include:
    • Shared Network Address: VMs share an IP subnet.
    • Private Address: VMs communicate only with themselves.
    • Bridge Network: VMs can behave like devices on the physical network without NAT (Network Address Translation).

Security Considerations

  • VM Escape: A potential security vulnerability where malware escapes a VM to access other systems on the same hypervisor. Developers must implement security measures similar to those for standalone systems: firewalls, anti-malware software, and regular updates of hypervisors.
  • Users must verify the sources of virtual machine images to avoid corrupted or malicious VMs.

Virtual Desktop Infrastructure (VDI)

Definition of VDI

  • VDI is a technology that runs desktops as virtual machines hosted on a server.
  • Users access their desktop environments remotely, requiring only minimal local hardware (e.g., keyboard, mouse, display).

Persistent vs. Non-Persistent Desktops

  • Persistent Desktops: Retain user settings and applications between sessions.
  • Non-Persistent Desktops: Users log into a generic environment that resets after use, providing security and managing costs effectively, frequently used in large organizations.

Containerization

Overview of Containerization

  • Containerization is a method of virtualizing applications rather than entire operating systems, using technology like Docker.
  • Containers share the host operating system's kernel, making them lightweight compared to VMs.

Advantages of Containerization

  • Increased Portability: Containers can be easily transferred across different platforms without changing content.
  • Faster Start-Up: Containers are quicker to deploy than VMs because they do not require a full OS to boot.
  • Setting up microservices is simplified through maintained and isolated environments for each application.

Differences Between VMs and Containers

  • Virtual Machines: Each VM includes a complete operating system and its own resources.
  • Containers: Containers are lightweight and run as applications on a single operating system, sharing the host operating system's kernel but isolated in their execution.

Cloud Computing Concepts

Definition of Cloud Computing

  • Cloud computing refers to technologies that provide IT infrastructure delivered as a service, reducing the reliance on on-premises resources like servers and networking.

Cloud Deployment Models

  • Public Cloud: Shared resources accessible to the general public from cloud service providers.
  • Private Cloud: Dedicated resources for one organization, maintaining operational control over infrastructure.
  • Hybrid Cloud: A combination of public and private clouds, providing flexibility and scalability.
  • Community Cloud: Shared cloud services among several organizations with similar needs (e.g., educational institutions, government).

Cloud Service Models

  • Infrastructure as a Service (IaaS): Basics covered here involve renting hardware but managing the OS and applications; providers ensure hardware and networking support.
  • Software as a Service (SaaS): On-demand software applications managed entirely by the cloud service provider (e.g., Google Mail, Microsoft 365).
  • Platform as a Service (PaaS): Managed platforms where developers can build and deploy their applications without worrying about underlying infrastructure.

Key Characteristics of Cloud Computing

Elasticity

  • The ability to scale resources up or down based on demand without requiring significant lead time, which enhances operational efficiency.

High Availability

  • Ensuring infrastructure is consistently available with minimal downtime, typically assured by service level agreements (SLAs).

Multi-tenancy

  • Multiple customers sharing cloud infrastructure and services, enhancing resource usage efficiency and reducing costs.

Billing Models

  • Cloud service providers usually offer metered billing, charging based on resources used, and customers need to manage their costs relative to data ingress and egress associated with their services.

Effective Resource Utilization

  • Deployment decisions can be made based on geographical location, securing applications closer to users for improved performance.

Conclusion

  • Understanding virtualization and its applications is essential for modern IT infrastructure.
  • Mastery over virtualization, cloud models (IaaS, PaaS, SaaS), and network configurations is critical to successful application deployment and service management.