Full model answers for predicted final exam essays. Memorize the structure and key phrases from lectures.
A hypervisor is the software layer that performs virtualization — it sits between hardware and virtual machines (VMs), allocating CPU, memory, storage, and network resources to each VM according to its configuration.
Type 1 (bare-metal) hypervisors are installed directly on physical hardware, acting as the host operating system. They do not require a separate host OS underneath. Examples include VMware ESXi, Microsoft Hyper-V, and KVM. Type 1 hypervisors are faster, more reliable, and designed for production datacenters and enterprise servers because no host OS consumes hardware resources.
Type 2 (hosted) hypervisors run as applications on top of an existing host OS (such as Windows or Linux). Examples include VMware Workstation, Oracle VirtualBox, and Client Hyper-V. Type 2 is significantly slower than Type 1 because the host OS takes CPU, memory, and I/O before the hypervisor and guest VMs receive resources. It is not reliable for large datacenters.
Use cases: Type 1 consolidates multiple servers (email, web, database) onto one physical machine in production environments. Type 2 is used for testing, development, and education — for example, a developer running Linux on a Windows laptop, or students installing Windows Server in a VM.
Conclusion: Choose Type 1 for enterprise production and cloud infrastructure; choose Type 2 for personal testing and learning environments.
Cloud computing offers three main delivery models at different abstraction levels. IaaS is the lowest level (most user control); SaaS is the highest level (least user control).
IaaS (Infrastructure as a Service) provides virtualized computing resources — VMs, storage, networking, and CPU. The user can deploy arbitrary software including operating systems and applications. The user controls OS, storage, deployed apps, and limited networking (e.g., host firewalls), but does not manage physical infrastructure. Example: Amazon EC2. Services include server hosting, load balancing, and bandwidth provisioning.
PaaS (Platform as a Service) provides a platform for developers to build, deploy, and manage applications using provider-supported languages and tools. The user controls deployed applications and possibly hosting environment configuration, but does not manage servers, OS, storage, or network. Example: Google App Engine, Windows Azure. PaaS is not suitable when the application must be portable, proprietary languages are used, or hardware must be customized for performance.
SaaS (Software as a Service) delivers ready-to-use applications from the provider. The user does not manage infrastructure or individual application capabilities. Examples: Gmail, Salesforce. SaaS is not suitable for real-time applications or when data cannot be hosted externally.
Conclusion: Organizations choose IaaS for maximum control, PaaS to focus on development without ops overhead, and SaaS for turnkey applications with minimal management.
A cloud deployment model defines ownership, access, scale, and purpose of cloud infrastructure — who controls servers, who can access resources, and how data is stored.
Public cloud: Infrastructure owned by the provider and offered over the Internet to the general public or industry groups. Advantages: minimal investment, pay-per-use, no setup or maintenance cost, dynamic scalability. Disadvantages: less secure (shared resources), low customization. Example services: Google App Engine.
Private cloud: Infrastructure operated solely for one organization, on-premises or via a third party. Offers the greatest control and security because hardware is not shared. Disadvantages: complex setup requiring professional teams, higher cost.
Hybrid cloud: Combines public and private clouds bound by standardized technology, allowing data and application portability. Advantages: flexibility, cost optimization (burst to public when needed), improved security through data separation. Disadvantages: difficult to manage, slow data transmission/latency through public links.
Community cloud: Shared by several organizations with common concerns (e.g., same industry or compliance needs). Cost-effective through shared infrastructure; supports collaboration. Disadvantages: limited scalability, rigid customization affecting all members.
Multi-cloud: Uses multiple public cloud providers simultaneously (not public+private). Advantages: best-of-breed services, reduced vendor lock-in, high availability (rare for two clouds to fail at once). Disadvantages: complex architecture, potential security loopholes.
Conclusion: Selection depends on cost, scalability, compliance, privacy, and ease of management — no single model fits all requirements.
KVM (Kernel-based Virtual Machine) is a Linux kernel module that provides native virtualization, turning any Linux machine into a bare-metal hypervisor without investing in new hardware.
Performance: Each VM is implemented as a regular Linux process scheduled by the standard Linux scheduler. VMs inherit Linux performance features and run virtualization as close to hardware as possible, reducing latency. KVM handles high-demanding applications seamlessly.
Security: VMs benefit from Linux security features including SELinux (Security-Enhanced Linux), which enforces strict security boundaries around virtual environments for data privacy and governance. sVirt integrates SELinux with virtualization.
Cost: KVM is free and open source with no additional licensing fees per VM, unlike commercial hypervisor licensing models.
Live migration: KVM supports moving a running VM between physical hosts with no noticeable service interruption — critical for maintenance and load balancing.
Management & scale: Tools like libvirt and virt-manager help manage large numbers of VMs. KVM frees administrators from manually provisioning infrastructure and enables easy deployment in cloud environments.
Conclusion: KVM combines enterprise-grade performance, Linux-native security, zero licensing cost, and operational features like live migration — making it ideal for cloud and datacenter virtualization.
Despite its benefits, cloud computing faces significant challenges:
1. Availability of service: What happens when the provider cannot deliver? Outages at major providers (Akamai 2004, Google DoS 2009, Amazon lightning 2012) demonstrate real risk.
2. Data confidentiality and auditability: A serious problem — sensitive data in shared environments raises privacy and compliance concerns, especially for healthcare applications.
3. Vendor lock-in / limited mobility: Diversity of services, data formats, and interfaces at different providers makes it hard to switch once committed to one vendor.
4. Data transfer bottleneck: Many applications are data-intensive; moving large datasets to/from the cloud is slow and costly.
5. Performance unpredictability: A consequence of resource sharing — workloads may not get consistent performance. Solutions involve virtualization, performance isolation, and elasticity (scaling up/down quickly).
6. Resource management: Managing diverse workloads on large datacenters is complex; self-organization and self-management are proposed solutions.
7. Security and confidentiality: Major concern for sensitive applications; ethical issues include privacy, de-perimeterisation, and cloud vulnerabilities.
Conclusion: Organizations must weigh these challenges against cloud benefits and choose deployment models and service levels that match their security, compliance, and performance requirements.
Public cloud makes systems and services accessible to anyone over the Internet. The provider owns and maintains all infrastructure; users pay per use with no substantial upfront fee. It offers dynamic scalability and requires no infrastructure management from the user. However, it is less secure because resources are shared publicly, and customization is limited since many users access the same platform.
Private cloud is the opposite — a dedicated environment for a single organization. The organization does not share hardware with others. It can be hosted on-premises or by a third party but remains exclusive. Private cloud provides the greatest control and security, making it suitable for regulated industries and sensitive data. The trade-off is higher cost, complex setup requiring professional teams, and the organization bearing more management responsibility.
Conclusion: Public cloud suits cost-sensitive, scalable workloads with moderate security needs; private cloud suits organizations requiring maximum control, customization, and data isolation.
These models are often confused but differ fundamentally.
Hybrid cloud combines public and private cloud environments connected by a layer of proprietary software. Organizations can host sensitive workloads in the private cloud while bursting to the public cloud for cost-effective scalability. Advantages: flexibility, control over sensitive data, pay only for extra public capacity when needed. Disadvantages: complex management across two environments, latency when data moves through public cloud links.
Multi-cloud employs multiple public cloud providers at the same time (e.g., AWS + Azure + GCP). It is similar to hybrid in combining environments, but specifically uses multiple public clouds rather than public+private. Advantages: mix best features of each provider, reduce vendor lock-in, improve high availability (unlikely for two providers to fail simultaneously), reduce latency by choosing nearby regions. Disadvantages: complex architecture, potential security loopholes from the combined structure.
Conclusion: Hybrid optimizes public-private balance for security and cost; multi-cloud optimizes across vendors for redundancy and service selection.
Both are early models that influenced modern cloud computing but served different purposes.
Grid computing (early 1990s, National Labs) aggregates computer resources from multiple locations to reach a common goal. It is a distributed system with non-interactive workloads involving large numbers of files, targeted primarily at scientific computing.
Utility computing (2005–2006, IT companies) is a service provisioning model where the provider makes computing resources and infrastructure management available as needed, charging for specific usage rather than a flat rate. It targeted enterprise computing.
Modern cloud computing builds on utility computing's pay-per-use model while adding elasticity, broad network access, and managed services. Grid computing's resource aggregation concept lives on in distributed cloud infrastructure.
Conclusion: Grid = scientific resource federation; Utility = enterprise pay-per-use — both precursors to today's cloud paradigm.
Virtualization is the process of creating a virtual (software-based) version of a physical resource — servers, storage, or networking — so software plays the role of hardware.
A virtual machine (VM) is a software-based computer with its own virtual hardware, running on a physical machine. The host machine is the physical device; the host OS runs on it (in Type 2 setups). The guest OS runs inside each VM.
The hypervisor is the critical component — software between the OS/hardware layer that manages physical resources and allocates them to VMs. History: CP/CMS allowed multiple OSes on one device; VMware Workstation (Type 2) let any device run multiple isolated VMs with different OSes.
Virtualization enables resource multiplexing (higher utilization), server consolidation, developer testing across OSes, and the foundation for IaaS cloud services.
Conclusion: Virtualization abstracts hardware into software-managed VMs via the hypervisor, enabling efficient resource use and modern cloud infrastructure.
Sources: Cloud Lec 1–6, Dr. Sherif Mostafa, CS432.