Unit_1_Computing_Paradigm
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