Why Cloud is Attractive
1. Economic Reasons
• Very low initial investment (no need to buy servers).
• Pay-as-you-use model → customers are billed only for the resources they
consume.
2. Convenience & Performance
• Developers can focus only on the application; the cloud provides the
infrastructure automatically.
• Compute-intensive and data-intensive applications run faster due to parallel
processing.
• Cloud providers utilize their hardware efficiently, leading to higher resource
utilization.
Ideal Applications for Cloud Computing
✔ 1. Web Services
Websites, APIs, social media services, e-commerce platforms.
✔ 2. Database Services
Cloud-hosted databases (like AWS RDS, Cloud SQL).
✔ 3. Transaction-Based Services
Apps that need elasticity, such as:
• banking transactions
• online payments
• booking systems
These benefit because cloud resources can scale up/down instantly.
Applications NOT Suitable for Cloud
1. Applications with complex workflows
• High-performance computing (HPC)
, • Scientific simulations
These depend on tightly synchronized tasks and don’t run efficiently on
distributed cloud hardware.
2. Apps needing very high communication
• Apps where many parts need to communicate constantly.
Cloud network latency can slow them down.
3. Workloads that cannot be partitioned
If a task cannot be split into parallel parts, it won’t gain performance benefits from
cloud scaling.
Layering and Virtualization
Layering and virtualization are two important techniques used to manage complexity
and share hardware resources efficiently in computer systems and cloud
environments.
1. What is Layering?
Layering means dividing a computer system into different levels, where each level has
a specific function and interacts only with the layers directly above and below it.
Purpose of Layering
• Reduces complexity
• Makes systems easy to design and maintain
• Allows each layer to evolve independently
Common Layers in a Computer System
1. Hardware
2. Operating System (OS)
3. Libraries
4. Applications
Each layer provides interfaces for the next layer:
• ISA (Instruction Set Architecture) → between hardware & OS
• ABI (Application Binary Interface) → between OS & applications
, • API (Application Programming Interface) → functions accessible to programs
Why Layering is Important in Cloud Computing?
Because different apps, OSs, and services run on top of the cloud stack, layering keeps
the system organized, flexible, and modular.
2. What is Virtualization?
Virtualization is the technique of creating a virtual version of hardware or software
resources, such as:
• virtual machines (VMs)
• virtual memory
• virtual networks
• virtual storage
It allows multiple operating systems to share a single physical machine safely.
Types of Virtualization Techniques
✔ a) Multiplexing
One physical resource → many virtual resources
Example: One CPU shared by many virtual CPUs
✔ b) Aggregation
Many physical devices → one virtual device
Example: RAID (multiple disks combined into a single virtual disk)
✔ c) Emulation
One type of hardware behaves like another
Example: Running ARM programs on an x86 machine
✔ d) Combined Multiplexing + Emulation
Used in virtual memory and TCP networking
Example: Pages of RAM stored on disk + virtual addresses mapped to real addresses