Back

Unit_1_Computing_Paradigm

Loading views...

Unit 1: Overview of Computing Paradigm


1.1 Introduction to Cloud Computing

1.1.1 The Historic Vision (1969)

In 1969, Leonard Kleinrock — one of the chief scientists of ARPANET (the predecessor to the Internet) — made a remarkable prediction:

"As of now, computer networks are still in their infancy, but as they grow up and become sophisticated, we will probably see the spread of 'computer utilities' which, like present electric and telephone utilities, will service individual homes and offices across the country."

He predicted that computers would become a utility — just like electricity or water — more than 30 years before Cloud Computing became a reality. This is the foundational vision of cloud computing.

The Modern Equivalent:

"I don't care where my servers are, who manages them, where my documents are stored, or where my applications are hosted. I just want them always available and access them from any device connected through the Internet. And I am willing to pay for this service for as long as I need it."

1.1.2 What is Cloud Computing?

Cloud Computing is the paradigm of delivering IT services on demand over the Internet, on a pay-per-use basis, just like a utility service.

Three Key Definitions You Must Know:

① Armbrust et al.:

"Cloud computing refers to both the applications delivered as services over the Internet, and the hardware and system software in the datacenters that provide those services."
  • Covers the entire stack: from bare hardware up to end-user applications.
  • Introduces XaaS (Everything as a Service).

② NIST (National Institute of Standards and Technology) — The Official Definition:

"Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g. networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction."

③ Buyya et al. — A Technical Definition:

"A Cloud is a type of parallel and distributed system consisting of a collection of interconnected and virtualized computers that are dynamically provisioned and presented as one or more unified computing resources based on service-level agreements established through negotiation between the service provider and consumers."

1.1.3 Reese's 3 Criteria: "Is it truly Cloud?"

According to Reese, a service qualifies as Cloud Computing only if it meets all three criteria:

# Criterion What it means Example
1 Accessible via Web Browser or Web API No proprietary client software needed Access Gmail from any browser
2 Zero Capital Expenditure (CapEx) to start No upfront hardware purchase required Sign up for AWS with just a credit card
3 Pay only for what you use Costs are tied strictly to usage, not flat rates AWS EC2 billed per second of VM uptime

1.1.4 Key Concepts in Cloud Computing

  +----------------------------------------------------------+
  |                    CLOUD COMPUTING                       |
  |                                                          |
  |  [No upfront costs]  [Pay-per-use]  [Elastic Scaling]    |
  |  [Access anywhere]   [Virtualized]  [Managed by vendor]  |
  |                                                          |
  |  Technologies inside the "Cloud":                        |
  |    - Virtualization     - Web 2.0                        |
  |    - Service Orientation- Utility Computing              |
  |    - Distributed Systems                                 |
  +----------------------------------------------------------+
         |           |           |
       IaaS         PaaS        SaaS
  (Infrastructure)(Platform) (Software)

1.2 The Cloud Computing Reference Model (SPI Model)

Cloud computing services are organized into three layers — IaaS, PaaS, and SaaS. Together they form the SPI Model.

  +----------------------------------------------+
  |              SaaS                            |
  |  (End-user Applications)                     |
  |  Google Docs, Salesforce, Facebook, Flickr   |
  +----------------------------------------------+
  |              PaaS                            |
  |  (Runtime + Development Platform)            |
  |  Google AppEngine, Windows Azure, Aneka      |
  +----------------------------------------------+
  |              IaaS                            |
  |  (Virtual Hardware + Storage + Networking)   |
  |  Amazon EC2, S3, RightScale, VMware vCloud   |
  +----------------------------------------------+
  |         Physical Datacenter                  |
  |     (Servers, Storage, Network Fabric)       |
  +----------------------------------------------+

1.2.1 Infrastructure-as-a-Service (IaaS)

What is it? You rent raw, virtualized computing infrastructure — virtual machines, storage, and networks. You control everything from the OS upward; the provider manages the physical hardware.

What you get:

  • Virtual Compute: VM instances (e.g., 2 vCPUs, 8 GB RAM). You choose OS, install software.
  • Virtual Storage:

- Raw Disk: A virtual hard drive attached to your VM (like a real HDD).

- Object Store: Store files/blobs as objects (e.g., Amazon S3). No file system — just key-value (name → file).

  • Virtual Networking: Firewall rules, private networks (VPCs), load balancers, DNS.

Pricing Model: Usually $/hour based on VM size (CPU, RAM, storage).

Who uses IaaS?

  • Developers building scalable web sites.
  • Companies doing batch data processing.
  • Anyone who needs a server but doesn't want to buy one.

Examples: Amazon EC2, Amazon S3, RightScale, VMware vCloud, Microsoft Azure VMs.


1.2.2 Platform-as-a-Service (PaaS)

What is it? A managed development and hosting platform. You write code; the platform handles deployment, scaling, fault tolerance, and infrastructure. You never touch a server.

What you get:

  • A runtime environment for your app (Python, Java, Node.js, etc.)
  • Auto-scaling (more traffic? More instances automatically created)
  • Built-in services: databases, caches, queues, email sending
  • Development SDK + testing tools

What the provider manages:

  • Servers, OS, middleware, runtime, scaling — everything below your code.

Who uses PaaS?

  • Developers who want to focus purely on application logic.
  • Startups that can't afford a DevOps team.

Examples: Google App Engine (Python, Java, Go), Windows Azure (roles model), Force.com (Salesforce apps), Heroku, Aneka.

Trade-off: Higher abstraction = less control. You are constrained to the provider's supported languages and frameworks. Vendor lock-in is a concern.


1.2.3 Software-as-a-Service (SaaS)

What is it? Complete, ready-to-use applications delivered over a browser. No installation, no maintenance.

What you get:

  • Full application accessible from any browser.
  • Multi-tenancy: one application instance serves thousands of users, each isolated from the others.
  • Auto-updates: the provider rolls out new features without you doing anything.

Who uses SaaS?

  • End users (documents, email, photos).
  • Businesses (CRM, accounting, HR).

Examples: Google Docs (office), Salesforce (CRM), Facebook (social), Flickr (photos), Gmail (email).


1.2.4 Comparison: IaaS vs. PaaS vs. SaaS

Feature IaaS PaaS SaaS
You manage OS, App, Data App, Data Nothing
Provider manages Hardware, Network Hardware, OS, Runtime Everything
Control level Highest Medium Lowest
Ease of use Requires expertise Moderate Very easy
Target user System/infra engineers App developers End users
Example AWS EC2 Google AppEngine Gmail
Pricing $/hour per VM $/request or resources used $/month subscription

1.3 NIST 5 Essential Characteristics

The NIST definition defines 5 essential characteristics that every true cloud service must have:

# Characteristic Explanation Example
1 On-demand Self-Service Users provision resources themselves without human interaction with the provider Launch an EC2 VM from the AWS console at 2 AM without calling Amazon
2 Broad Network Access Available over the Internet via standard mechanisms (HTTP, REST) Access Google Docs from phone, tablet, laptop
3 Resource Pooling Provider serves many customers from a shared pool (multi-tenancy). Customer doesn't know which physical server they're on 1000 customers share 50 physical servers; each VM is isolated
4 Rapid Elasticity Resources can be scaled up or down quickly, even automatically Auto-scaling group adds 10 VMs when CPU > 80%, removes them when load drops
5 Measured Service Usage is monitored, controlled, and reported transparently. Billing is based on actual consumption AWS bills by the second; you see exact resource usage in your dashboard

1.4 Cloud Computing Deployment Models

  +------------------+    +------------------+    +------------------+
  |   PUBLIC CLOUD   |    |  PRIVATE CLOUD   |    |   HYBRID CLOUD   |
  |                  |    |                  |    |                  |
  | 3rd party owned  |    | Org-owned infra  |    | Mix of public +  |
  | Anyone can use   |    | Internal use only|    | private          |
  | Multi-tenant     |    | High control     |    | Cloudbursting    |
  |                  |    |                  |    |                  |
  | AWS, GCP, Azure  |    | OpenStack, vCloud|    | AWS + On-premise |
  +------------------+    +------------------+    +------------------+
Model Owned By Users Data Location Use Case
Public 3rd party provider General public Provider's datacenters Startups, general workloads
Private The organization Internal only On-premise Banks, government, hospitals
Hybrid Both Internal + public overflow Both Peak-load handling (cloudbursting)
Community Shared by multiple orgs Member orgs Shared facility Healthcare, government agencies

Cloudbursting: When private cloud hits capacity during peak demand, workloads automatically "burst" to a public cloud.

  Normal Load:   [Private Cloud] --> handles all traffic
  Peak Load:     [Private Cloud] --> overflow --> [Public Cloud] (burst)

1.5 Benefits of Cloud Computing

Economic Benefits

CapEx to OpEx Transformation:

  BEFORE CLOUD (CapEx model):
  Year 1: Buy $500,000 worth of servers (upfront capital expenditure)
          Server is worth $400,000 by Year 2 (depreciation!)
          You still pay maintenance + admin even if server sits idle

  AFTER CLOUD (OpEx model):
  Year 1: Pay $50,000 for what you actually used
          No depreciation. No idle cost. No upfront investment.
          Shut down resources when not needed → $0 cost.
Benefit Explanation
No upfront cost Start a business with just a credit card
Pay-per-use Pay only for what you actually consume
No depreciation No hardware to depreciate or replace
Lower admin costs Provider handles maintenance, updates, hardware
Economies of scale Provider buys hardware at bulk discount; passes savings to users

Technical Benefits

Benefit Explanation
Elasticity Scale up instantly for a traffic spike; scale down immediately after
High Availability Provider's SLA guarantees 99.9%+ uptime
Multi-tenancy efficiency Sharing infrastructure across thousands of users = better utilization
Agility Deploy a new server in minutes, not weeks
Green IT Consolidation reduces total energy consumption across the industry

1.6 Real-World Case Studies

Case A: New York Times (Large Enterprise)

  • Problem: Convert 11 million newspaper articles (1851–1922) from TIFF images to PDFs. Required massive compute power for a short period.
  • Solution: Rented Amazon EC2 and S3 compute + storage.
  • Result: Task completed in 36 hours, paying only for the duration. Cost was tiny compared to buying dedicated servers for a one-time job.
  • Lesson: Cloud is ideal for bursty, short-duration, high-compute workloads.

Case B: Animoto (Startup)

  • Problem: Animoto creates personalized videos from photos and music. Processing is storage and CPU intensive. Load is unpredictable.
  • Solution: Entire backend built on Amazon Web Services — no owned servers.
  • Result: When a Facebook campaign went viral, Animoto scaled from 50 to 3,500 servers in 3 days. Without cloud, this would be impossible.
  • Lesson: Cloud enables startups to handle massive, unpredictable growth without upfront investment.

Case C: Little Fluffy Toys (Developer)

  • Problem: Company built a widget for finding nearby bicycle rental services. Needed a scalable backend.
  • Solution: Hosted on Google App Engine.
  • Result: App was on the market in just one week.
  • Lesson: PaaS platforms dramatically reduce time-to-market.

Case D: Apple iCloud (End User)

  • Problem: Users want their photos/documents available on every device — iPhone, laptop, iPad — without manually syncing.
  • Solution: Files stored in the cloud, automatically synced to all devices.
  • Result: Take a photo on your iPhone → it's instantly on your MacBook and iPad.
  • Lesson: Cloud enables seamless, transparent device-agnostic access to personal data.

1.7 Challenges of Cloud Computing

Challenge Explanation
Security Data must be stored on the provider's servers. If a malicious provider captures VM memory, even encrypted data can be read (it's decrypted in RAM for processing).
Privacy Who has legal access to your data? Jurisdiction matters.
Legal/Regulatory American Patriot Act gives US government access to data. EU privacy laws are stricter. If a US company stores data in Europe, conflicting laws create a legal grey zone.
Vendor Lock-in Proprietary APIs and formats make it difficult to migrate from one provider to another.
Performance Network latency is added to every request. Shared infrastructure can cause "noisy neighbor" problems.
Availability Dependency If the cloud provider goes down (AWS outage), your application goes down too.

1.8 Historical Development of Cloud Computing

1.8.1 Timeline of Distributed Computing

1951 ──> UNIVAC I: First commercial mainframe
1960 ──> Cray's first supercomputer
1966 ──> Flynn's Taxonomy (SISD, SIMD, MISD, MIMD) for parallel computing
1969 ──> ARPANET: The seed of the Internet (Kleinrock's "computer utility" quote)
1970 ──> DARPA's TCP/IP protocol development begins
1975 ──> Xerox PARC invents Ethernet
1984 ──> DEC VMScluster + IEEE 802.3 (Ethernet & LAN standardized)
1989 ──> TCP/IP standardized (IETF RFC 1122)
1990 ──> Lee-Cailliau: WWW, HTTP, HTML — the web is born
1997 ──> IEEE 802.11 (Wi-Fi standard)
1999 ──> Grid Computing + Amazon begins (later AWS)
2004 ──> Web 2.0 era begins
2005 ──> Amazon Web Services launched (EC2, S3)
2007 ──> Manjrasoft Aneka platform
2008 ──> Google App Engine launched
2010 ──> Microsoft Azure becomes generally available

1.8.2 Mainframe Computing (1950s)

What: Large, powerful centralized computers. Multiple processors in one cabinet. Presented as a single entity to users.

Key Features:

  • Specialized for massive I/O operations and bulk data processing.
  • Always-on: Failed components could be replaced without shutting down the system (hot-swap).
  • No distributed computing — everything is centralized.

Applications (still in use today): Online banking (SWIFT), airline booking (SABRE), government services.

Relevance to Cloud: Clouds inherit the "always-on" and "single logical entity" characteristics of mainframes.


1.8.3 Cluster Computing (1980s)

What: Groups of commodity PCs/servers connected by high-bandwidth networks and managed as a single system.

  [ Node 1 ] --+
  [ Node 2 ] --+-- [ High-Speed Network ] --> [ Job Scheduler ] --> Users
  [ Node 3 ] --+
  [ Node N ] --+
  
  Each node is a cheap commodity machine. Together, they = a supercomputer.

Driver: Cheap commodity hardware became powerful enough to tackle HPC workloads at a fraction of mainframe cost.

Key Tools:

  • Condor: Job scheduling for clusters.
  • PVM (Parallel Virtual Machine): Run parallel jobs across heterogeneous machines.
  • MPI (Message Passing Interface): Standard API for nodes to communicate in parallel programs (still dominant today).

Relevance to Cloud: Cloud provider datacenters ARE massive clusters. Hadoop runs on commodity cluster nodes.


1.8.4 Grid Computing (1990s)

What: Aggregation of geographically dispersed clusters from multiple organizations, connected via the Internet, forming a planet-scale compute resource.

  University A (100 nodes)
          |
          +------ INTERNET ------ National Lab (500 nodes) -----+
          |                                                       |
  University B (200 nodes) -------------------------------- Research Institute (300 nodes)
  
  All combined = 1100 nodes available on demand via a Grid middleware

Key Differences from a Cluster:

Feature Cluster Grid
Location Same room/building Geographically distributed
Ownership One organization Multiple organizations
Homogeneity Usually same hardware Heterogeneous
Scale Hundreds of nodes Thousands to millions
Admin domain One Many (Virtual Organizations)

Why Grids emerged:

  • Clusters were now common but underutilized.
  • New problems required compute beyond any single cluster.
  • Internet made long-distance high-bandwidth connectivity possible.

Examples: CERN LHC Grid (particle physics), BIRN (biomedical research), IVOA (astronomy).

Relevance to Cloud: Grids introduced the utility computing vision — pay-per-use of shared resources. Cloud refines this with easier access and commercial pricing.


1.8.5 Cloud vs. Grid vs. Cluster: Key Differences

Feature Cluster Grid Cloud
Access Usually private Via middleware (complex) Via Web browser / REST API
Pricing Free (internal) Free / allocation-based Pay-per-use (commercial)
Setup complexity High Very High Near zero
Elasticity None (fixed nodes) Limited Near-infinite
Virtualization Rarely used Sometimes Core technology
SLA guarantee Informal Best-effort Commercial SLA

1.9 Enabling Technologies

1.9.1 Virtualization

  • Allows one physical server to run many isolated VMs.
  • Enables IaaS (rent a VM, not a physical server).
  • Enables resource pooling and multi-tenancy.

1.9.2 Web 2.0

  • Transformed the web from static pages (Web 1.0) to interactive applications.
  • Technologies: AJAX, REST APIs, JSON, HTML5.
  • Made it viable to run full applications (Google Docs) in a browser.

1.9.3 Service-Oriented Computing (SOC)

  • Core model: services as building blocks of applications.
  • Services are: loosely coupled, reusable, platform-independent, location-transparent.
  • Web Services: Use HTTP + SOAP + WSDL to expose software as accessible services.
  • REST (Representational State Transfer): Simpler alternative to SOAP. Uses HTTP verbs (GET, POST, PUT, DELETE).
  • SOC introduces QoS and SLA concepts — important for cloud billing.
  • SOC introduces SaaS — delivering complete software functionality as a service.

1.9.4 Utility Computing

  • Vision: package compute resources (CPU, storage, apps) on a pay-per-use basis.
  • First articulated by John McCarthy (1961): "Computing may someday be organized as a public utility just as the telephone system..."
  • Grids implemented this at academic scale. Cloud implements it commercially.

1.10 Major Cloud Platforms (Reference Implementations)

1.10.1 Amazon Web Services (AWS)

  • Type: IaaS (and more)
  • Core Services:

- EC2 (Elastic Compute Cloud): Virtual machines on demand. Choose CPU, RAM, disk, OS.

- S3 (Simple Storage Service): Object storage. Store files as objects in "buckets".

  • Additional Services: RDS (database), VPC (networking), Route53 (DNS), CloudFront (CDN), ElasticCache, SQS (queuing), etc.
  • Significance: First major commercial cloud. Launched 2005. Still market leader.

1.10.2 Google App Engine (GAE)

  • Type: PaaS
  • What it does: Host Python, Java, or Go web applications. Auto-scales automatically.
  • Built-in services: Scalable Datastore (NoSQL), Memcache, Task Queues, Cron Jobs.
  • Developer workflow: Build locally using SDK → Deploy with one command → Google handles all scaling.

1.10.3 Microsoft Azure

  • Type: PaaS + IaaS
  • Roles model:

- Web Role: Hosts a web application (IIS-based).

- Worker Role: Background processing (e.g., video encoding, batch jobs).

- VM Role: Full customizable virtual machine.

  • Additional Services: Azure SQL, Azure Storage (Blobs), Azure Service Bus, CDN.

1.10.4 Apache Hadoop

  • Type: Open-source data processing platform (used for PaaS-level big data)
  • Based on: Google's MapReduce paper (2004) and Google File System (GFS).
  • Two core components:

- HDFS (Hadoop Distributed File System): Stores data across many nodes with replication.

- Hadoop MapReduce: Processes data in parallel using Map + Reduce functions.

  • Sponsor: Yahoo! runs the world's largest Hadoop cluster.

1.10.5 Force.com / Salesforce.com

  • Type: SaaS + PaaS
  • What it does: A complete platform for building social enterprise applications.
  • Salesforce.com is built on Force.com — the #1 SaaS CRM in the world.
  • Marketplace: AppExchange — ready-made components you can plug into your Salesforce app.

1.11 Comparison Summary

Platform Model Primary Use Language Key Feature
AWS EC2 IaaS Virtual servers Any Most flexible, biggest ecosystem
Google App Engine PaaS Web apps Python, Java, Go Auto-scales to zero and to millions
Microsoft Azure PaaS+IaaS Enterprise apps .NET, Java, etc. Deep Windows/Microsoft integration
Hadoop Data Platform Big Data processing Java MapReduce on commodity hardware
Force.com SaaS+PaaS CRM / Enterprise apps Apex (proprietary) Pre-built enterprise components

Navigation

Next Unit: Parallel and Distributed Computing