Cloud computing: the state
of the art and challenges
Jānis Kampars
Riga Technical University
Presentation structure
• Enabling technologies
• Cloud computing defined
• Dealing with load in cloud
computing
• Service & deployment models
• Architecting applications for the
cloud
• Challenges
Enabling technologies
• Utility computing
• Distributed computing
• Service oriented architecture
• Virtualization
• Autonomic computing
Utility computing
• A business model more than a technology
– No need to build data centers, purchase
licenses, servers
– No up-front expenses
– Rent the service provided by 3rd party
• ~1961, John McCarthy, American scientist
said:
«If computers of the kind I have advocated
become the computers of the future, then
computing may someday be organized as a
public utility, just as the telephone system...»
Electricity supply
• In 1900s most factories had private generators
• Technological evolution made central supply a reality
• Private generators were abandoned in favor of central supply
• Computing shows a similar trend today
© Nicholas Carr, 2006.
Distributed computing
• Uses multiple independent components that are perceived as a single entity and are trying to achieve one global goal
• Allow to share and utilize resources efficiently
• Clusters
– ~1980
– Power of commodity machines combined to solve complex problems
– Underutilized
• Grids
– ~1990
– Evolution of cluster computing
– Dynamic aggregation of geographically dispersed heterogeneous computing nodes
• SETI (Search for Extraterrestrial Intelligence) has more than 5 million users
– QoS is an issue
Service oriented architecture
• Build applications (mashups) from services
• Characteristics of a web service
– Platform-agnostic – use them from anywhere – Implementation abstraction
– Self-describing
– Loosely coupled and reusable
– QoS – response time, availability, scalability
• Most popular WS architectural styles
– Representation state transfer (REST)
• Easier to implement
• Less limiting for developers
– Simple Object Access protocol (SOAP)
• Well standardized - Web Service Description Language (WSDL), WS-Security, WS*
• More complex to implement
Virtualization
Hardware Hypervisor Virtual machine
OS Application
Virtual machine
OS Application
Virtual machine
OS Application
Advantages of virtualization
• Run multiple OS on a single server
• High level server utilization
– Most traditional servers are only 15% loaded – Improve energy efficiency, reduced carbon
emissions
• Efficient network-attached storage usage
– Thin provisioning
• VMs are provisioned in much less time
• Isolation & mobility
– Applications can be isolated in VMs
– Failure of one virtual machine doesn’t affect others
– Easily move VMs from one server to another
Autonomic computing
• Systems should manage themselves (with
high-level guidance from humans)
– Monitoring probes
– Adaption engine
• Features of autonomic system
– Self-configuration
– Self-optimization
– Self-healing
– Self-protection
• Very important for large data center
automation
Cloud computing defined (I)
• Often confused with previously mentioned
technologies, although it’s a broader term
• Definition by NIST:
– 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
Cloud computing defined (II)
• Definition by Buyya et al.:
– 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.
Characteristics of CC
• Cloud provider & cloud consumer
• Service-level agreements (SLA)
• On demand self-service – acquire the resources through management interface
• Ubiquitous access – as far as you are connected to Internet, you can use your cloud resources, data centers located in many countries
• Resource pooling – millions of concurrent users can be supported (Skype - 60 millions)
• Rapid elasticity – scale up or down when required in a matter of minutes
• Metered service – pay-per-use (Salesforce, AWS)
Virtual machine Virtual machine
CC general architecture
Hardware Hypervisor Virtual machine
OS Application
Virtual machine Virtual machine Virtual machine
OS Application
Virtual machine Virtual machine Virtual machine
OS Application
Hardware Hypervisor
Hardware Hypervisor
Cloud Computing platform
Dealing with varying load -
traditional approach
Time Computing
power
Initial power
Power shortage Power surplus
Losses due to dropped requests
Underutilized resources
Available power
Actual number of requests
Dealing with varying load –
CC approach
Time Computing
power
Initial power
Scale-up in small steps
Computing power Number of requests
Scale-down when needed
Start small (>=2 nodes)
Most suitable load scenarios
Time
Load
Time
Load
Time
Load
Time
Load
Periodic with possible downtime Modeling software, sending out the newsletter
Periodic
Submission of annual income declaration
Continiously changing
Continiously growing web site Unpredictable
11. September and CNN news page
CC service models
• Cloud services can categorized as
– Infrastructure as a Service (IaaS)
– Platform as a Service (PaaS)
– Software as a Service (SaaS)
IaaS
• Virtualized resources
• Most common of all service models
• On-demand provisioning (based on load)
• Almost any system can be deployed in
IaaS (at least using a single node)
Pay-per-use (based resource size and
uptime)
• Hardware managed by provider
• OS and programs managed by consumer
• Examples – disk space, virtual machines
• Examples – Dropbox, AWS
• Target audience – administrators,
developers
PaaS
• A platform used to deploy applications
– Virtual machine might be still used
• Not all systems can be deployed using PaaS
• Already available components like persistent
file storage, database, load balancers and
queues are provided
• Limited options to choose programing
language and development environment
• Vendor lock-in
• HW, OS, runtime managed by provider
• Software managed by consumer
• Examples – Google App Engine
• Target audience - developers
SaaS
• A software deployed in the cloud
• Typically accessible through browser
or thin client
• Charged based on number of users
• Provider manages HW, OS, runtime
and application
• Examples – Office 365, Salesforce,
Adobe Creative Cloud
• Target audience - users
CC Deployment models (I)
• Private cloud
– CC infrastructure built for a single
enterprise
– Next step of evolution of corporate
data center
• Community cloud
– Infrastructure shared by similar
organizations (government,
universities)
CC Deployment models (II)
• Public cloud
– CC infrastructure publicly available
– Easy to develop and deploy apps
• Hybrid cloud
– A mix of above mentioned models
– Non-crucial parts are deployed to public
cloud, while most critical ones are in
private cloud
– Cloud bursting – when reaching certain
load threshold, requests are served by
public cloud
Architectural differences
• Self-hosted traditional application
• Cloud native application deployed in
AWS
Self-hosted application
© AWS
Cloud-hosted application
© AWS