Session2-Cloud computing
Session2-Cloud computing
The concept was born in the 1960s from the ideas of pioneers like
J.C.R Licklider. The John mcCaurthy form a global net work
computation and framing computation as a public utility Flash
forward to 1997,when the term “Cloud Computing” was used by
first information systems professor Ramnath chellappa Within a
just a few years, companies began switching from hardware to
cloud services
Advantages:
• Trade Capital expenses for Variable expenses
• Benefit from massive economies of scale
• No guessing capacity – infrastructure can be adjusted with
number of users
• No investment in maintenance of servers and data centres
• Go global in minutes – cloud enables deploying of
applications in multiple region
1. IAAS
a. Users need to manage Application, Data, Runtime,
Midleware, O/s
b. Cloud providers manage Virtualization, Servers,
Storage and Networking
2. PAAS:
a. Users need to manager application and data
b. Cloud providers manage Runtime, Midleware, O/s,
Virtualization, Servers, Storage and Networking
3. SAAS
a. Users need not to manage anything
b. Cloud providers manage everything
Three types of Virtualizations:
- CPU Virtualization
- Memory Virtualization
- I/O Device Virtualization
SAAS:
IAAS:
PAAS:
Documentation: https://learn.microsoft.com/en-
us/azure/developer/
• Seamless integration with Microsoft products like Office
365 and Windows Server.
• Expansive hybrid cloud capabilities with Azure Stack for on-
premises integration.
• Strong AI and analytics offerings, particularly with Azure
Machine Learning.
• Less extensive global data center coverage compared to
AWS.
• Azure Active Directory is highly valued for seamless
integration with Microsoft environments, making it a go-to
for organizations needing strong identity and access
management.
• Azure Pipelines for Devops and deployments is a popular
service.
• Typically priced similarly to AWS, with competitive rates for
hybrid cloud services but premium costs for some AI and
advanced analytics offerings.
Popular services:
• Virtual Machines. Scalable cloud-based virtual servers.
• Azure Blob Storage. Object storage optimized for
unstructured data.
• Azure Functions. Serverless computing for event-driven
tasks.
• Azure SQL Database. Managed relational database as a
service.
• Azure Active Directory. Identity and access management
service.
Popular services:
• Compute Engine. Flexible virtual machines for compute
workloads.
• Cloud Storage. Unified object storage for various data
types.
• BigQuery. Serverless data warehouse for analytics.
• App Engine. Managed platform for web applications.
• Kubernetes Engine. Managed Kubernetes for containerized
applications
Compone Deplo
nt/ ymen Indicative
Purpose Short Description
Service t Price
Name Model
$0.25 per
Managed service for
Azure hour +
Data orchestrating and automating
Data PaaS activity-
Ingestion data workflows; supports ETL
Factory based
processes and data movement.
costs
Fully managed ETL service for
Data data preparation and $0.44 per
AWS Glue PaaS
Ingestion movement. Supports serverless DPU-hour
execution and job scheduling.
Integrated analytics platform
Azure Data combining big data and data
$5 per
Synapse Processi warehousing; supports SQL- PaaS
DWU-hour
Analytics ng based querying and integration
with Spark.
Fully managed cloud data
Data warehouse for SQL-based $0.25 per
Amazon
Processi analytics; supports petabyte- PaaS DC2.large
Redshift
ng scale processing and machine /hour
learning integration.
Object storage for unstructured
Azure data such as text and binary $0.0184
Blob Storage files; supports hot, cool, and PaaS per
Storage archive tiers for cost GB/month
management.
Scalable object storage service
for backup, archiving, and
Amazon $0.023 per
Storage application data. Offers various PaaS
S3 GB/month
storage classes for cost
optimization.
Azure Serverles Event-driven serverless $0.20 per
PaaS
Functions s compute service for lightweight 1M
workloads and integrations; execution
scales automatically based on s
demand.
Event-driven serverless
$0.20 per
compute platform for running
AWS Serverles 1M
code in response to triggers; PaaS
Lambda s execution
supports multiple runtime
s
environments.
Unified analytics platform
Azure
based on Apache Spark; $0.40 per
Databrick Compute PaaS
supports data science, AI, and DBU-hour
s
big data processing.
Managed big data platform for $0.11 per
Amazon running frameworks such as EC2
Compute PaaS
EMR Apache Spark, Hadoop, and instance-
Presto on a scalable cluster. hour
Globally distributed, multi-
Azure $0.008 per
model database service
Cosmos Database PaaS RU +
designed for high availability,
DB storage
low latency, and scalability.
Fully managed NoSQL database
Amazon service for key-value and $1.25 per
DynamoD Database document-based workloads; PaaS WCU/mon
B optimized for low-latency th
performance.
Comprehensive monitoring and
$2.30 per
logging solution for Azure
Azure Monitorin GB
resources; integrates with PaaS
Monitor g (ingested
Application Insights and Log
data)
Analytics.
Monitoring and observability
Amazon $0.30 per
Monitorin service for AWS resources and
CloudWat PaaS 1M API
g custom metrics; supports
ch calls
alarms, logs, and dashboards.
End-to-end service for building,
Azure deploying, and managing $0.005/ho
Machine
Machine machine learning models with PaaS ur for
Learning
Learning support for AutoML and inference
scalable compute.
Comprehensive service for
Amazon $0.058/ho
Machine building, training, and deploying
SageMak PaaS ur for
Learning ML models at scale with
er notebook
integrated Jupyter notebooks.
Cloud service for managing
$6 per
Azure Dev software development
SaaS user/mont
DevOps Studio pipelines; includes CI/CD,
h
repositories, and Agile tools.
Fully managed continuous $1 per
AWS
Dev integration and delivery service active
CodePipe PaaS
Studio for automating application pipeline/
line
updates across environments. month
Scalable IaaS offering for
Azure Virtual running virtualized compute $0.011/ho
Virtual Machine workloads; supports Windows IaaS ur (B1s
Machines s (VMs) and Linux OS with custom instance)
configurations.
Scalable IaaS service for hosting $0.012/ho
Virtual
Amazon virtual machines with diverse ur
Machine IaaS
EC2 instance types and operating (t4g.micro
s (VMs)
system support. )
Appendix (Extra Material)
Web-Queue-Worker:
For a purely PaaS solution, consider a Web-Queue-Worker
architecture. In this style, the application has a web front end that
handles HTTP requests and a back-end worker that performs
CPU-intensive tasks or long-running operations. The front end
communicates to the worker through an asynchronous message
queue.
Web-queue-worker is suitable for relatively simple domains with
some resource-intensive tasks. Like N-tier, the architecture is
easy to understand. The use of managed services simplifies
deployment and operations. But with complex domains, it can be
hard to manage dependencies. The front end and the worker can
easily become large, monolithic components that are hard to
maintain and update. As with N-tier, this can reduce the
frequency of updates and limit innovation
Event-Driven Architecture:
Event-Driven Architectures use a publish-subscribe (pub-sub)
model, where producers publish events, and consumers
subscribe to them. The producers are independent from the
consumers, and consumers are independent from each other.
Consider an event-driven architecture for applications that ingest
and process a large volume of data with very low latency, such as
IoT solutions. This style is also useful when different subsystems
must perform different types of processing on the same event
data.
Big Data, Big Compute:
Big Data and Big Compute are specialized architecture styles for
workloads that fit certain specific profiles. Big data divides a very
large dataset into chunks, performing paralleling processing
across the entire set, for analysis and reporting. Big compute,
also called high-performance computing (HPC), makes parallel
computations across a large number (thousands) of cores.
Domains include simulations, modeling, and 3-D rendering.
N-Tier Architecture :
• Layers:
o Layers separate responsibilities and manage
dependencies in a system.
o Each layer has a specific responsibility.
o A higher layer can use services in a lower layer, but
lower layers cannot depend on higher layers.
• Tiers:
o Tiers are physically separated and run on separate
machines.
o Communication between tiers can be direct or through
asynchronous messaging (e.g., message queues).
o Layers can be hosted on the same tier or distributed
across multiple tiers.
• Advantages of Physical Tier Separation:
o Improves scalability and resiliency by isolating
resources.
o Adds latency due to additional network
communication.
• Traditional Three-Tier Architecture:
o Presentation tier: User interface layer.
o Middle tier (optional): Business logic and processing
layer.
o Database tier: Data storage and management layer.
• Complex Applications:
o Can include more than three tiers.
o Example: Two middle tiers encapsulating different
areas of functionality.
When to use N-tier architecture
• N-tier Architectures:
Challenges
• It’s easy to end up with a middle tier that just does CRUD
operations on the database, adding extra latency without
doing any useful work.
• Monolithic design prevents independent deployment of
features.
• Managing an IaaS application is more work than an
application that uses only managed services.
• It can be difficult to manage network security in a large
system.
Traditional on-premises • • • • • • • • •
Monolithic,
centralized Design for predictable scalability Relational database
Strong consistency Serial and synchronized processing Design to
avoid failures (MTBF) Occasional big updates Manual
management Snowflake servers Modern cloud • • • • • • • • •
Decomposed, de-centralized Design for elastic scale Polyglot
persistence (mix of storage technologies) Eventual consistency
Parallel and asynchronous processing Design for failure (MTTR)
Frequent small updates Automated self-management Immutable
infrastructure
Let's consider a couple of use cases.
Let's start with a online shopping application.
What is the challenge that an online shopping application faces?
Online shopping applications typically have peak usage during
holidays and weekends.
For example, during the Christmas period and the New Year
period, you'd have a lot of load on the application
and rest of the time you'll have low loads on the application.
Now, what was the solution before the cloud?
The solution before the Cloud was to do peak load provisioning.
What is peak load provisioning?
It is to buy infrastructure or procure infrastructure for the peak
load.
So, if this is the peak load you expect, you'd buy infrastructure to
support that kind of a load.
Now, think about this.
What would that infrastructure be doing in periods of low load?
It would just be sitting idle. Now,
let's consider another example.
Take a startup.
What is a challenge that it faces?
This challenge is also kind of a good news.
The startup suddenly becomes popular.
But what do you need is more infrastructure to support the load.
How do you handle the sudden increase in the load?
What was the solution before the Cloud?
Again, it was to procure infrastructure, assuming that you would
be successful.
And what if you are not really successful?
All the infrastructure that you bought is wasted.
So, the typical challenges before the emergence of Cloud were
the high cost of procuring infrastructure.
If you want to buy infrastructure ahead of time, it is very
expensive and it also needs ahead of time
planning.
Can you really guess the future?
Can you accurately estimate the peak load?
The other challenge is low infrastructure utilization.
You can do peak load provisioning and buy infrastructure for the
peak load, but during the rest of
the time, the infrastructure is wasted.
You have low infrastructure utilization and you need a dedicated
infrastructure maintenance team to
maintain this infrastructure.
Think about a startup.
Can they afford a dedicated infrastructure maintenance team?
And because of these challenges, we started moving towards the
Cloud.
Whenever we use the cloud, we are talking about a simple
question.
How about provisioning or renting resources when we want them
and releasing them back to the Cloud when
you do not need them?
This is also called On-demand resource provisioning.
If you have high load on your application, if you have huge number
of users using the application,
you'll provision or you'll rent a lot of resources from the Cloud.
And once the load goes down, once the number of users on your
application goes down, you'll release the resources back to the
Cloud.
You can see that the number of resources you use, increases with
the number of users who are using the application and that's why
this is also called elasticity.
Now, what are the advantages of this approach?
You're trading capital expense for variable expense.