0% found this document useful (0 votes)
2 views

Cloud Computing

The document provides an overview of cloud computing, detailing its benefits such as scalability, cost efficiency, and resource sharing, while also addressing challenges like data security and service reliability. It categorizes cloud types into public, private, community, and hybrid clouds, and outlines various service delivery models including SaaS, PaaS, and IaaS. Additionally, it discusses ethical considerations, privacy issues, and vulnerabilities associated with cloud services, along with examples of major cloud service providers and their offerings.

Uploaded by

Isuru Amarasena
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Cloud Computing

The document provides an overview of cloud computing, detailing its benefits such as scalability, cost efficiency, and resource sharing, while also addressing challenges like data security and service reliability. It categorizes cloud types into public, private, community, and hybrid clouds, and outlines various service delivery models including SaaS, PaaS, and IaaS. Additionally, it discusses ethical considerations, privacy issues, and vulnerabilities associated with cloud services, along with examples of major cloud service providers and their offerings.

Uploaded by

Isuru Amarasena
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

5CS022 Distributed and Cloud

Systems Programming
Lecture 3
Introduction To Cloud
Computing
Cloud computing
• Uses Internet technologies to offer scalable and elastic
services.
• The term “elastic computing” refers to the ability of
dynamically acquiring computing resources and supporting a
variable workload.
• The resources used for these services can be metered and
the users can be charged only for the resources they used.
• The maintenance and security are ensured by service
providers.
• The service providers can operate more efficiently due to
specialization and centralization.
Cloud computing
• Lower costs for the cloud service provider are
past to the cloud users.
• Data is stored:
– closer to the site where it is used.
– in a device and in a location-independent manner.
• The data storage strategy can increase
reliability, as well as security, and can lower
communication costs.
Types of Clouds
Types of Clouds
• Public Cloud
– the infrastructure is made available to the general public or a large industry
group and is owned by the organization selling cloud services.
• Private Cloud
– the infrastructure is operated solely for an organization.
• Community Cloud
– the infrastructure is shared by several organizations and supports a
community that has shared concerns.
• Hybrid Cloud
– composition of two or more clouds (public, private, or community) as unique
entities but bound by standardized technology that enables data and
application portability.
Cloud Computing Pros
• Resources, such as CPU cycles, storage, network bandwidth,
are shared.
• When multiple applications share a system,
their peak demands for resources are not
synchronized thus, multiplexing leads to a higher
resource utilization.
• Resources can be aggregated to support data-intensive
applications.
• Data sharing facilitates collaborative activities. Many
applications require multiple types of analysis of shared data
sets and multiple decisions carried out by groups scattered
around the globe.
Cloud Computing Pros
• Eliminates the initial investment costs for a private
computing infrastructure and the
maintenance and operation costs.
• Cost reduction: concentration of resources
creates the opportunity to pay as you go for
computing.
• Elasticity: the ability to accommodate workloads
with very large peak-to-average ratios.
• User convenience: virtualization allows users to
operate in familiar environments rather than in
idiosyncratic ones.
Cloud Computing Cons
• Data safety and security.
– Not always possible to know where and how an
organisation's confidential data is stored.
• Technical reliability.
– Cloud providers are usually robust, but large failures have
occurred previously.
• Workflow incompatibility.
– To use the cloud, data and information need to be upload
to the cloud services and results and output downloaded.
This can be difficult if the services are only one part of a
complex workflow.
Why Cloud Computing?
• It is in a better position to exploit recent advances in software,
networking, storage, and processor technologies promoted by
the same companies who provide cloud services.
• It is focused on enterprise computing; its adoption by
industrial organizations, financial institutions, government, and
so on could have a huge impact on the economy.
• A cloud consists of a homogeneous set of hardware and
software resources.
• The resources are in a single administrative domain (AD).
Security, resource management, fault-tolerance, and quality
of service are less challenging than in a heterogeneous
environment with resources in multiple Ads.
Challenges for cloud computing

• Availability of service; what happens when the


service provider cannot deliver?
• Diversity of services, data organization, user
interfaces available at different service providers
limit user mobility; once a customer is hooked to one
provider it is hard to move to another.
Standardization efforts?
• Data confidentiality and audit-ability, a serious
problem.
• Data transfer bottleneck; many applications are
data-intensive.
More Challenges
• Performance unpredictability, one of the consequences
of resource sharing.
– How to use resource virtualization and performance isolation for
QoS guarantees?
– How to support elasticity, the ability to scale up and down
quickly?
• Resource management; are self-organization and self-
management the solution?
• Security and confidentiality; major concern.
• Addressing these challenges provides good research
opportunities.
More Challenges
• Performance unpredictability, one of the
consequences of resource sharing.
– How to use resource virtualization and performance
isolation for QoS guarantees?
– How to support elasticity, the ability to scale up and down
quickly?
• Resource management; are self-organization and
self-management the solution?
• Security and confidentiality; major concern.
Delivery models
Software as a Service (SaaS) Deployment models
Platform as a Service (PaaS) Public cloud

Infrastructure as a Service (IaaS) Private cloud


Community cloud
Hybrid cloud

Cloud computing
Infrastructure
Distributed infrastructure
Defining attributes
Resource virtualization
Massive infrastructure
Autonomous systems
Utility computing. Pay-per-usage
Resources
Accessible via the Internet
Compute & storage servers
Networks Services Elasticity

Applications
Cloud delivery models
• Software as a Service (SaaS)
• Platform as a Service (PaaS)
• Infrastructure as a Service (IaaS)
Software-as-a-Service (SaaS)
• Applications are supplied by the service provider.
• The user does not manage or control the underlying cloud
infrastructure or individual application capabilities.
• Services offered include:
– Enterprise services such as: workflow management, group-ware and
collaborative, supply chain, communications, digital signature, customer
relationship management (CRM), desktop software, financial management,
geo-spatial, and search.
– Web 2.0 applications such as: metadata management, social networking,
blogs, wiki services, and portal services.
• Not suitable for real-time applications or for those where data is not
allowed to be hosted externally.
• Examples: Gmail, Google search engine.
Platform-as-a-Service (PaaS)
• Allows a cloud user to deploy consumer-created or acquired
applications using programming languages and tools supported by
the service provider.
• The user:
– Has control over the deployed applications and, possibly, application
hosting environment configurations.
– Does not manage or control the underlying cloud infrastructure including
network, servers, operating systems, or storage.
• Not particularly useful when:
– The application must be portable.
– Proprietary programming languages are used.
– The hardware and software must be customized to improve the
performance of the application.
Infrastructure-as-a-Service (IaaS)

• The user is able to deploy and run arbitrary software,


which can include operating systems and applications.
• The user does not manage or control the underlying
cloud infrastructure but has control over operating
systems, storage, deployed applications, and possibly
limited control of some networking components, e.g.,
host firewalls.
• Services offered by this delivery model include: server
hosting, Web servers, storage, computing hardware,
operating systems, virtual instances, load balancing,
Internet access, and bandwidth provisioning.
Infrastructure-as-a-Service (IaaS)

• The user is able to deploy and run arbitrary software,


which can include operating systems and applications.
• The user does not manage or control the underlying
cloud infrastructure but has control over operating
systems, storage, deployed applications, and possibly
limited control of some networking components, e.g.,
host firewalls.
• Services offered by this delivery model include: server
hosting, Web servers, storage, computing hardware,
operating systems, virtual instances, load balancing,
Internet access, and bandwidth provisioning.
Carrier

Service
Consumer Service Provider Broker

Service Layer Service


Management Intermediation
SaaS

NIST PaaS
Business
S
e
P
IAAS r
Cloud Auditor
IaaS support c i
u v
Aggregation

Model Security
audit Resource r a
abstraction and Provisioning i
control layer c
Privacy t y
impact audit Physical resource
y
layer Arbitrage
Portability/
Hardware Interoperability
Performance
audit
Facility

Carrier
Ethical Considerations
• Paradigm shift with implications on computing
ethics:
– The control is relinquished to third party services.
– The data is stored on multiple sites administered by
several organizations.
– Multiple services interoperate across the network.
• Implications
– Unauthorized access.
– Data corruption.
– Infrastructure failure, and service unavailability.
Borderless
• Systems can span the boundaries of multiple
organizations and cross the security borders.
• The complex structure of cloud services can make it
difficult to determine who is responsible in case
something undesirable happens.
• Identity fraud and theft are made possible by the
unauthorized access to personal data in circulation
and by new forms of dissemination through social
networks and they could also pose a danger to
cloud computing.
Privacy Considerations
• Cloud service providers have already collected
petabytes of sensitive personal information stored in
data centres around the world.
– The acceptance of cloud computing therefore will be
determined by privacy issues addressed by these
companies and the countries where the data centers are
located.
• Privacy is affected by cultural differences; some
cultures favour privacy, others emphasize
community.
– This leads to an ambivalent attitude towards privacy in the
Internet which is a global system.
Vulnerabilities
• Clouds are affected by malicious attacks and failures of the
infrastructure, e.g., power failures.
• Such events can affect the Internet domain name servers and
prevent access to a cloud or can directly affect the clouds:
• In 2004 an attack at Akamai caused a domain name outage
and a major blackout that affected Google, Yahoo, and other
sites.
• In 2009, Google was the target of a denial of service attack
which took down Google News and Gmail for several days
• In 2012 lightning caused a prolonged down time at Amazon.
Typical Cloud Offerings
• Main Cloud Service Providers:
– Amazon AWS, Google Cloud, Microsoft Azure
• Main Products:
– Serverless Computing: AWS Lambda, Azure Functions and
Google Cloud Functions
– A.I. & M.L. : AWS SageMaker, Azure Machine Learning and
Google AI Platform
– Compute Containers: AWS Elastic Compute, Azure VMs, and
Google Compute Engine.
– Storage : AWS S3, Azure Storage, and Google Cloud Storage
AWS Lambda
• Serverless Computing
What Is AWS Lambda?

• A compute service that runs code (Lambda


function) without provisioning servers
• Executes code only when needed and
scales automatically
• Runs code in response to AWS events, or
HTTP requests using Amazon API Gateway
Creating and testing Lambda
function
• Lambda function can be
created using the AWS
Lambda console editor
• Can be manually
invoked using test event
data
• Execution results can
be verified
• Output logs produced.
• CloudWatch metrics
can be examined.
AWS Lambda Concepts
• Function - code that processes events, and a runtime that passes requests and responses
between AWS Lambda and the function code
• Runtime - allows functions in different languages to run. The runtime sits in between the
Lambda service and the function code, relays invocation events, context information, and
responses.
• Event - An event is a JSON formatted document that contains data for a function to process.
The Lambda runtime converts the event to an object and passes it to the function code.
• Concurrency - the number of requests that the function is serving at any given time. When
invoked, Lambda provisions an instance of it to process the event. When the function code
finishes running, it can handle another request. If the function is invoked again while a
request is still being processed, another instance is provisioned, increasing the function's
concurrency
• Trigger - A trigger is a resource or configuration that invokes a Lambda function. This
includes AWS services that can be configured to invoke a function, and event source
mappings. An event source mapping is a resource in Lambda that reads items from a stream
or queue and invokes a function.
Lambda Programming Model
• A handler is defined in the function configuration, and the runtime runs
that method.
• The runtime passes in objects to the handler that contain the
invocation event and the context.
• The function also has access to local storage in the /tmp directory.
Instances of the function that are serving requests remain active for a
few hours before being recycled.
• The runtime captures logging output from the function and sends it to
Amazon CloudWatch Logs.
• The runtime also logs entries when execution starts and ends. This
includes a report log with the request ID, billed duration, initialization
duration, and other details.
• If the function encounters an error, the runtime returns that error to the
invoker/caller.
To be continued…
Questions?

You might also like