Unit 1,2(Cloud Computing)
Unit 1,2(Cloud Computing)
A computing paradigm just means the style or model of how we use computer
resources. Over time, we moved from:
🧠 Core Idea
● "Distributed but coordinated"
● Ideal for jobs that need huge processing, like scientific simulations, data
analysis, or AI training.
🧠 How it works:
1. A task is broken into smaller chunks.
● Large Hadron Collider (CERN): Handles huge physics data with grid
computing.
Key Features:
Use Case:
Scientific simulations, financial modeling, rendering in CGI, weather
prediction.
Example:
Advantages:
● High performance
Disadvantages:
Key Features:
Use Case:
Blockchain networks, Google Docs (real-time editing), multiplayer games,
Amazon backend.
Example:
Advantages:
● Highly scalable
● Complex to manage
🧠 Utility Computing
Definition:
Utility computing is like electricity: you pay for the computing resources you
use, and nothing more. It provides on-demand computing power as a metered
service.
Key Features:
● Pay-as-you-go model
Use Case:
Small companies that don't want to buy servers; renting compute power for
data analysis.
Example:
● No upfront investment
Disadvantages:
🧠 Cloud Computing
Definition:
Cloud computing is the delivery of computing services (like servers, storage,
databases, networking, software) over the internet (the "cloud").
Key Features:
● On-demand access
Example:
● Heroku (PaaS)
Advantages:
Disadvantages:
● Internet-dependent
💭 Think of it like Netflix for IT resources — you don’t buy the DVD, you just
stream what you need.
Key Characteristics:
Service Models:
1. IaaS (Infrastructure as a Service): You rent servers, storage (e.g., AWS
EC2)
2. PaaS (Platform as a Service): You get a dev platform (e.g., Google App
Engine)
3. SaaS (Software as a Service): You use ready-made apps (e.g., Gmail,
Google Docs)
Deployment Models:
Core Goals:
● Everything-as-a-Service (XaaS): Not just infra, but security, AI, DBs — all
delivered as a service.
Driving Forces:
📌 Summary:
Cloud computing is basically turning IT into a utility — easy to access, easy to
scale, and only pay for what you use. The vision is to make computing power as
seamless and essential as plugging into a wall socket.
● What is a Cloud
● The Cloud Delivery Models (IaaS, PaaS, SaaS)
🧠 Defining a Cloud
Cloud refers to a network of remote servers hosted on the Internet that store,
manage, and process data, instead of using local computers or personal
devices.
Main Idea:
The cloud gives you computing as a service — like renting servers, storage,
software, or platforms without owning the hardware.
● 📡 On-demand access
● 🌐 Available over the internet
● 💸 Pay-per-use model
🔧 What it is:
You rent virtual hardware — servers, storage, networking — and build your
system on top.
🧱 What it is:
You get a platform to build and deploy apps. You don’t worry about the OS or
servers — just upload your code.
● Heroku
● Microsoft Azure App Service
✅ Use case: When you're a developer and just wanna code + deploy without
worrying about setup.
🖥️ What it is:
You use ready-made applications over the internet. No setup, no install, just
log in and go.
● Google Docs
● Dropbox
● Zoom
✅ Use case: End-users who want to use software without technical hassle.
Here’s a detailed version for this
🧠 1️⃣ IaaS – Infrastructure as a Service
🔧 Definition:
IaaS gives you access to virtualized hardware resources over the internet —
like servers, storage, and networks.
You can install your own OS, apps, and tools, just like setting up a PC — but
online.
🧱 You manage:
● OS (Windows/Linux)
● Data
🌩️ Cloud provider manages:
● Physical servers
● Networking hardware
● Virtualization
💡 Example services:
● AWS EC2
🔥 Use Case:
● Hosting websites
● Quick scaling
You just upload your code, and the cloud handles the rest.
● Runtime
● Database
● Web server
● Deployment tools
🧱 You manage:
● Your applications
● Your data
🌩️ Cloud provider manages:
● OS
● Runtime
● Infrastructure
● Security patches
💡 Example services:
● Google App Engine
● Heroku
🔥 Use Case:
● Building & hosting web or mobile apps
● Cross-device accessibility
🧱 You manage:
● Just how you use it (your content)
🌩️ Cloud provider manages:
● Everything (infra, software, data, security)
💡 Example services:
● Gmail
● Google Docs
● Zoom
● Salesforce
● Dropbox
🔥 Use Case:
● Sending emails
● Editing documents
● Pay-per-user or subscription-based
💡 Use Case: Startups, small biz, or anyone needing affordable + scalable infra.
✅ Pros:
● Low cost (no need to buy hardware)
● No maintenance
❌ Cons:
● Less control over data
❌ Cons:
● Expensive to build & maintain
💡 Use Case: Company wants to keep sensitive data private but use public
cloud for general tasks.
✅ Pros:
● Flexibility & control
● Cost-effective + secure
❌ Cons:
● Complex to manage
● Collaboration-friendly
❌ Cons:
● Limited scalability
● Shared responsibility
● Services are available over the internet and can be accessed from any
device (PC, phone, tablet).
2️⃣ Scalability
● Great for apps with variable traffic (like e-commerce during festive sales).
● Services and data can be accessed from anywhere, any device with
internet.
💡 Example: You can edit a document from your PC, phone, or tablet via
Google Docs.
● The provider handles software updates, bug fixes, and security patches.
💡 Example: You don’t have to manually update Gmail — Google does it.
6️⃣ Performance Optimization
● Even big cloud providers like AWS or Azure can go down due to outages
or cyberattacks.
● You don't get full access to infrastructure like you do with in-house
systems.
● Different countries have different laws about where and how data is
stored.
● If you’re not careful, usage charges can blow up due to bandwidth, API
calls, storage overages.
🧠 Cloud Computing
💭 What it is:
Using remote servers over the internet to store, manage, and process data,
rather than using local machines. You rent services like storage, software, and
processing power from providers like AWS, Azure, GCP, etc.
🧱 Key Features:
● On-demand access to computing resources
● Pay-as-you-go model
🧱 Key Features:
● All nodes are tightly coupled (usually on same LAN)
🧠 Grid Computing
💭 What it is:
A distributed system where computing resources from multiple locations (even
globally) are combined to work on large-scale tasks. It's like a global cluster.
🧱 Key Features:
● Loosely coupled systems (geographically separated)
● Shared resources
● Decentralized management
● Development environments
● Email systems
2. Refactor – Modify your code to use cloud features like auto-scaling.
4. Replace – Drop the app and use a SaaS alternative (e.g., move from
on-prem Excel to Google Sheets).
🛠️ What it means:
Move the application as-is from on-premises servers to the cloud without
modifying code.
💡 Best For:
● Quick migration
● Legacy apps
🛠️ What it means:
Make a few tweaks to optimize the application for cloud (e.g., switch to
managed database) but don’t re-write the whole thing.
💡 Best For:
● Apps needing better performance in cloud
● Mid-level modernization
💡 Best For:
● Apps that aren’t worth maintaining
🛠️ What it means:
Re-code or redesign the application to use cloud-native features like
microservices, containers, serverless, etc.
💡 Best For:
● Long-term gains
🛠️ What it means:
Shut down unnecessary or outdated parts of your system instead of migrating
them.
💡 Best For:
● Unused apps
🛠️ What it means:
Keep some apps on-premises because of compliance, technical issues, or
business needs, and consider cloud later.
💡 Best For:
● Critical systems not ready for cloud
📌 Key Activities:
● Audit existing infra
💡 Example: List all servers, apps, and data. Tag what's cloud-ready.
2️⃣ Feasibility Analysis
🛠️ What Happens:
Check whether migrating specific components is technically possible and
cost-effective.
📌 Key Activities:
● Cost-benefit analysis
● Risk assessment
💡 Example: Will this legacy app run on AWS? Is it cheaper than on-prem?
3️⃣ Migration Planning
🛠️ What Happens:
Create a full roadmap for how the migration will happen, which apps go first,
what tools you'll use, and who will manage what.
📌 Key Activities:
● Choose migration approach (lift & shift, refactor, etc.)
🛠️ What Happens:
Architect the cloud setup: networking, security, storage, compute, monitoring
— everything.
📌 Key Activities:
● Cloud architecture design
● Network topology
🛠️ What Happens:
Now you actually move the data, applications, and services to the cloud.
📌 Key Activities:
● Data migration (DBs, files)
💡 Example: Use tools like AWS Migration Hub, Azure Migrate, or scripts to
push data.
🛠️ What Happens:
Ensure everything works as expected after the move.
📌 Key Activities:
● Run app functionality tests
💡 Example: Does the app load correctly? Is data secure and accessible?
7️⃣ Optimization and Monitoring
🛠️ What Happens:
Now that everything's in the cloud, fine-tune performance, cost, and
monitoring.
📌 Key Activities:
● Auto-scaling, right-sizing resources
● Set up dashboards/alerts
In simple words:
You use one physical machine to act like multiple virtual machines (VMs), each
with its own OS and applications.
🧱 How It Works:
A special software called a hypervisor creates and manages the virtual
machines.
1. Type 1 (Bare Metal) – Installed directly on hardware (e.g., VMware ESXi)
1️⃣ Isolation
🧱 Each virtual machine (VM) is completely isolated from others, even though
they run on the same physical hardware.
📦 All the components of a VM (OS, apps, data) are stored in a single file or
package, which makes them easy to manage, move, and back up.
💻 VMs are not tied to any specific hardware. You can run the same VM on
different machines without worrying about compatibility.
🧠 The host machine shares its CPU, RAM, disk, and network resources with all
the virtual machines running on it.
💡 One powerful server can host multiple VMs for different teams.
5️⃣ Portability
🚀 Since VMs are just files, they can be copied, moved, or cloned easily across
systems or even cloud environments.
📸 You can take a snapshot (exact copy) of a VM’s current state and revert
back to it anytime if something goes wrong.
🖥️ Using tools like vCenter or Hyper-V Manager, admins can monitor, update,
and manage all VMs from a single dashboard.
💡 You don’t need to physically touch the servers — it's all remote.
8️⃣ Improved Utilization
⚙️ Physical hardware is used more efficiently, since multiple VMs can run on
the same machine rather than letting hardware sit idle.
💥 If one host server fails, VMs can be moved automatically to another host (if
set up), keeping systems up and running.
🔐 You can apply firewalls, access control, and policies per VM, adding layers
of security.
💡 One VM can be locked down while another can be fully open for testing.
📌 In short:
A virtualized environment is flexible, secure, scalable, and cost-effective,
making it perfect for modern IT and cloud systems.
● High performance
🧱 What is Virtualization?
Virtualization is the technology that allows multiple virtual environments (VMs
or containers) to run on a single physical machine by abstracting the hardware.
💡 You don’t care how it works — you just get the service.
🤝 How They Work Together:
● Cloud providers (like AWS, Azure) use virtualization to divide their
physical servers into many VMs.
● Those VMs are then rented out to users via cloud services like EC2 (AWS)
or GCE (Google Cloud).
🧠 Key Takeaways:
● Virtualization is the backbone tech that cloud providers use to create
scalable, flexible, and isolated environments.
● Cloud computing turns those virtual environments into services (like VMs,
storage, apps) that anyone can access over the internet.
📌 Simple Analogy:
● Virtualization = Kitchen
You don't care how the chef (virtualization) cooked it, you just want that biryani
(cloud service) delivered hot 😤
Layman lang explanation:
🧠 Imagine This:
You got one big, powerful gaming PC (let's call it the “real” or physical
machine). Now your homies want to use it at the same time for different stuff
— one wants to play Valorant, one wants to edit videos, one wants to code.
🧠 ✅ Pros of Virtualization
1️⃣ Better Resource Utilization
💡 Example: One powerful server can host 10 VMs doing different jobs.
2️⃣ Cost Saving
● You can take a snapshot of a VM and roll back if something goes wrong.
● If a hacker gets control of the hypervisor, they can access all VMs.
● Some software (like Windows Server) still needs separate licenses for
each VM.
Two major terms you’ll see in cloud environments under this are:
🔁 Elasticity
“Automatic stretch and shrink.”
🧩 What it means:
Elasticity is the ability of a system to automatically increase or decrease
resources based on demand — like a rubber band stretching or snapping back.
✅ Dynamic
✅ Works in real-time
✅ Used in cloud environments like AWS Auto Scaling, Azure VM Scale Sets
💥 Example:
Your shopping website on AWS gets 10x traffic during a flash sale. Elasticity
adds more virtual servers instantly.
Once the sale ends, it removes the extras to save cost.
📈 Scalability
“Ability to grow big or small, but not necessarily automatic.”
🧩 What it means:
Scalability is the system’s capability to handle increased load by adding
resources, but this can be manual or planned in advance.
✅ Can be vertical (more power to one machine)
✅ Or horizontal (adding more machines)
✅ Not always instant — often requires planning or human action
💥 Example:
You upgrade your database server from 16 GB RAM to 64 GB RAM (vertical
scaling) to handle more users — that’s scalability.
💡 Easy Analogy:
● Scalability = Buying a bigger backpack
📊 Examples:
● CPU usage
● RAM usage
● Network bandwidth
● Disk I/O
These help you monitor, compare, and plan for capacity or scaling.
🔰 What is a Baseline?
A baseline is the starting point — a record of the system’s normal or expected
performance under regular conditions.
It’s like taking a health report of your system when everything’s fine.
● Improve performance
○ AWS CloudWatch
○ Nagios
○ Grafana
○ Zabbix
4. Collect & Record Data
Store the data in logs or dashboards over days/weeks.
📌 Example Scenario:
You run a website.
Baseline shows:
🧠 TL;DR
Term Meaning
🧠 System Metrics
📍 What are System Metrics?
System metrics are the key performance indicators (KPIs) that tell you how
your system or application is doing under the hood.
● System health
● Performance bottlenecks
● Resource usage
🧪 Load Testing
📍 What is Load Testing?
Load testing is a type of performance testing where you simulate real-world
traffic or user load to see how well your system handles it.
💥 You're basically stress-testing your app to make sure it won’t crash when
people start hitting it hard.
○ Apache JMeter
○ Locust
○ Gatling
○ BlazeMeter
○ Loader.io
💡 Example:
You built a web app and expect 500 users during a product launch.
Load test simulates 600 users logging in at once.
CPU hits 100%, response time jumps to 8 seconds = 💀
Time to optimize or scale your setup.
🧠 Resource Ceilings
📍 What is a Resource Ceiling?
A resource ceiling is the maximum limit or cap set on how much of a system
resource (like CPU, memory, disk, bandwidth) a process, app, or VM can use.
Think of it as a speed limit 🚫 — the process can’t go beyond it, even if more
resources are available.
🧠 Why Set Resource Ceilings?
● 🔐 Prevent resource hogging
One app eating 100% CPU = other apps suffer
● 💸 Control costs
In cloud, more usage = more money. Ceilings = budget safety
💡 Example Scenarios:
1. VMware / Hyper-V / KVM:
You assign max 2 CPUs and 4 GB RAM to a VM. That’s the resource
ceiling.
Even if the host has 16 GB RAM — that VM won’t touch it.
🖥️ What’s a Server?
A server is a physical or virtual computer that provides services (like hosting a
website, storing data, running applications) to other devices (called clients).
You don’t buy physical servers anymore — you launch an instance from the
cloud and it behaves just like a full-blown computer.
💡 Example: AWS EC2 instance, Azure VM, Google Compute Engine instance.
● You choose types based on your need: more CPU, more RAM, more
storage, or GPUs.
Layman explanation:-
I gotchu — let’s simplify this crazy simple so it clicks.
🧠 What’s a Server?
A server is just a computer, usually more powerful than your laptop, that's
always on and serves stuff — like:
● Websites
● Apps
● Files
● Databases
🧠 What’s an Instance?
An instance is just a virtual server.
It's like a fake computer running inside another computer (cloud or
datacenter).
💡 When you use cloud (like AWS, Azure, GCP), you don’t get a real PC — you
get an instance.
So…
💥 Real-Life Example:
Imagine you're making a multiplayer game:
TL;DR — You:
🧠 Network Capacity
📍 What it means:
Network capacity is the maximum amount of data that can be transferred
across a network per second.
💡 It’s like your internet speed — higher capacity = more data can flow through
without lag.
🔧 Measured in:
● Mbps (Megabits per second)
● If too many users try to use it at once = slowdowns, packet loss, lag.
💡 Like adding more PCs to a gaming café when more friends show up