Module 2: Abstraction & Virtualization
Quick Exam Notes — Cloud Computing
1. Cloud Computing Stack
Cloud architecture couples software on virtualized hardware across multiple locations to deliver on-demand services.
The unique combination of abstraction and metered service separates cloud computing from standard n-tiered internet
apps. Described in two layers: Client (front end) and Cloud (backend).
Composability
Building apps from reusable, standardized components. A composable component must be:
• Modular — self-contained, cooperative, reusable, replaceable
• Stateless — transactions execute independently of others
2. Cloud Stack Layers
Infrastructure (IaaS)
Uses virtual machine technology to deliver servers. Virtual servers described as machine images/instances with CPU
cycles, memory, and bandwidth. The VMM (Virtual Machine Monitor / Hypervisor) is low-level software that manages
I/O and memory isolation for VMs.
Platforms (PaaS)
Software layers for creating higher-level services. Cover nearly the full stack except the UI layer. Examples:
• Salesforce [Link] • Windows Azure • Google AppEngine
Virtual Appliances
Applications (e.g., web server, DB server) packaged with an OS to run on VMs. They occupy the middle of the cloud
stack. Easier to deploy but larger in size — a 50–100MB app may need a 500MB–1GB appliance.
3. Communication Protocols
Protocol Description
HTTP / HTTPS Foundation of all cloud communication
XML-RPC First web-centric RPC; encodes calls in XML over HTTP
SOAP Replaced XML-RPC; uses XML + HTTP; basis of most web services
WSDL W3C standard; describes/discovers web services via endpoints/ports
DCOM / CORBA Platform-specific RPC specs for component interoperability
Assigns URIs to resources; uses HTTP commands (GET, PUT, etc.) for stateless
REST
exchange
4. Abstraction vs. Virtualization
Aspect Abstraction Virtualization
Hides background details; shows only essential
Definition Creates virtual versions of hardware/OS/storage
features
Divides/shares physical resources among multiple
Purpose Simplifies interfaces for users/developers
environments
Detail hiding Always hides low-level details Does NOT always hide low-level details
Role in cloud Core feature; hides physical implementation Fundamental component; enables IaaS
5. Virtualization
Creating a virtual version of hardware, OS, or storage. Allows multiple VMs on one physical machine. Concept dates
to the 1960s (IBM mainframes). Virtualization is supported by the hypervisor.
Benefits
• Flexible & efficient resource allocation
• Lowers IT infrastructure cost
• Remote access and rapid scalability
• High availability and disaster recovery
• Pay-per-use model
• Enables multiple OS on one machine
Types of Virtualization
• Application Virtualization — Remote access to apps from a server (hosted / packaged apps)
• Network Virtualization — Multiple virtual networks on one physical network — logical switches, VPNs, firewalls
• Desktop Virtualization — OS stored remotely; accessible from any location on any device
• Storage Virtualization — Multiple storage sources managed as one unified repository
• Server Virtualization — One physical server divided into multiple virtual servers, each with its own OS
• Data Virtualization — Retrieve data from various sources regardless of type or physical location
6. Hypervisors
Software that isolates OS and applications from hardware; allows multiple guest OSes (VMs) to run simultaneously on
one host. Dates back to the 1960s; became mainstream in 2005 when CPU vendors added hardware virtualization
support.
Type 1 — Bare Metal / Native Hypervisor
Runs directly on hardware (no host OS in between).
• Examples: VMware ESXi, Microsoft Hyper-V, Oracle VM, Xen
• Pros: Highly efficient (direct hardware access), inherently secure
• Cons: Needs a dedicated separate machine
Type 2 — Hosted Hypervisor
Runs as an application on a host OS.
• Examples: VirtualBox, VMware Workstation, KVM, QEMU, Parallels Desktop
• Pros: Easy setup; useful for dev/testing environments
• Cons: Lower performance; security risk if host OS is compromised
Benefits of Hypervisors
• Speed — VMs built instantly; simplifies resource provisioning
• Efficiency — Multiple VMs share one physical machine's resources
• Flexibility — OS decoupled from hardware; runs on various hardware types
• Portability — VMs are separate from physical hardware and easily moved
7. VM-to-Physical Machine Mapping
A two-phase process for allocating virtual machines to physical machines:
Phase 1 — VM Configuration (VM Config Manager)
Determines VM specs (number, size, resources). Aims to avoid:
• Over-provisioning — more resources than needed → resource wastage
• Under-provisioning — fewer resources than needed → performance degradation
Phase 2 — VM Placement (VM Placement Manager)
Maps VMs to PMs optimally. Two sub-problems:
• Initial Placement — allocates new VMs to PMs; formulated as an NP-hard integer programming problem
• VM Reallocation / Migration — reshuffles VMs as workloads change; must balance migration cost vs. gain
Triggers for Reallocation
• Event-driven — new VM requests, terminations, resize requests
• Periodic — invoked at predefined scheduled intervals
• Hybrid — combination of event-driven and periodic
Optimization Objectives
Objective Details
Resource Utilization Host consolidation, workload balancing, workload concentration
Minimize operating cost; maximize profit. Factors: infrastructure cost, SLA
Monetary / Cost
penalties, revenue
Minimize active machines; Dynamic Voltage & Frequency Scaling (DVFS); thermal
Energy Consumption
management
Good luck on your exam! ■