Cloud Computing Models: SaaS, PaaS, IaaS, and Virtualization

Week 1: Cloud Computing Models

Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources.

Software as a Service (SaaS)

  • The consumer uses an application but does not control the operating system, hardware, or network infrastructure on which it’s running.
  • Applications are restricted to business applications or applications that may normally be installed in a business network or personal computer.
  • Examples:
    • Business applications: CRM
    • Gmail, Google Docs, etc.
  • The service specification depends on the actual application; it could be the number of user accounts supported, the size of storage, etc.
  • The pricing is usually subscription-based, e.g., monthly or yearly.
  • Virtualization technology may be used to provide each customer with one or many virtual machines (VMs) with preinstalled applications.
  • Most providers write multi-tenancy-based systems to allow better resource utilization.

Platform as a Service (PaaS)

  • The consumer uses a hosting environment for their applications.
  • The consumer controls the applications that run in the environment but does not control the operating system, hardware, or network infrastructure on which they are running.
  • The platform is typically an application framework.
  • Pricing could be a fine-grained hourly rate or subscription-based.
  • Virtualization technology can be used if the platform is presented as a VM + some preinstalled software.
  • Container technology may be used, and the launching time could be greatly reduced.
  • Providers may design their own software to let clients share an underlying platform.

Infrastructure as a Service (IaaS)

  • The consumer uses “fundamental computing resources” such as processing power, storage, networking components, or middleware.
  • The consumer can control the operating system, storage, deployed applications, and possibly networking components such as firewalls and load balancers, but not the cloud infrastructure beneath them.
  • The specification is similar to the general spec when you purchase a computer. These include CPU speed, number of cores, memory, etc.
  • At the beginning, most providers used a fine-grained, pay-as-you-go hourly rate.
  • Now, many providers have even finer-grained “Per Second Billing”.
  • IaaS provides a virtual machine together with storage and network as a package.
  • All providers use virtualization technology; the actual software used could be different.

Data Center

A data center is a building or portion of a building whose primary purpose is to house a computer room and its support areas.

Week 2: Virtualization

Server Consolidation Solution

  • Pool heterogeneous services together.
  • To do so, run several virtual machines on the same shared hardware, coordinated by a hypervisor (VMM).
  • The hypervisor abstracts/hides the physical computing platform.
  • Allows to share commodity hardware without sacrificing security and performance.

Benefits

  • Better resource utilization
  • Fault tolerance
  • Portability
  • Manageability

Instruction Set Architecture (ISA)

Instruction Set Architecture sits at the boundary of hardware and software.

  • Instruction refers to machine code for simple manipulation that can be directly executed by the CPU.
  • Typical ISAs:
    • x86 for PC
    • ARM for mobile

Application Binary Interface (ABI)

  • The interface between a user application and the operating system.
  • User applications are usually written in a high-level language.
  • Some kind of support is needed to make it run on a machine:
    • C++: a compiler
    • Python: an interpreter

API is the interface of libraries provided by many languages or frameworks.

Virtual Machine (VM)

A VM is an isolated environment that appears to be a whole computer but actually only has access to a portion of the computer’s resources.

Two Types of VMs

  • System VM: Provides a full computer system’s ISA emulation; applications can run on top of it as if on an actual computer. Examples: VMWare, VirtualBox.
  • Process VM: Is a virtual platform created for an individual process and destroyed once the process terminates. Examples: JVM, JavaScript Engine.

Role of the Virtual Machine Monitor (VMM)

  • The concept of time-sharing was the first to improve resource utilization.
  • Multi-user, multi-tasking systems.
  • The relationship between VMM and VM is similar to the relationship between the OS and other applications.
  • Managing hardware resources among multiple applications.
  • Provide an interface between hardware and other applications.

Challenges for VMM

  • Each VM runs its OS (guest OS), which assumes full control of all hardware resources.
  • But that is not true; the guest OS has only a portion of the hardware to use in virtualization.
  • The OS is designed to be the most privileged software system on a machine; now it is not.
  • Do we need to modify the OS implementation?
  • The extra layer may introduce performance overhead.

Virtualization Techniques

Full Virtualization

  • No guest OS modification.
  • Either:
    • Software Approach
    • Hardware-assisted Virtualization
    • New privilege mode (This is considered the preferred mode)

Paravirtualization

  • Modify the OS to the virtualized environment, but expose some details of the hardware for optimization.
  • The guest OS is aware that it is running on a VM to some extent – Xen.

Executing Guest Instructions

  • If host and guest ISAs are different, the only way to implement full virtualization is through emulation.
  • Translating the instruction from one ISA to another.
  • If host and guest ISAs are the same, under certain conditions, the guest instructions may execute directly on the host machine.
  • Best performance.
Conditions for ISA
  • The hardware consists of a processor and uniformly addressable memory.
  • The processor can operate in system mode or user mode.
  • Some subset of the instruction set is available only in system mode.
  • Memory address translation is done in a standard way.