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.