Introduction to Cloud Computing
1
Lecture Motivation…
■ General overview on cloud computing
What is cloud computing
Services
Types
Advantages and disadvantages
Enabling technologies
An example infrastructure
2
Introduction to Cloud Computing
Lecture Outline
■ What is Cloud?
■ What is Cloud Computing?
■ Cloud Computing Services
■ History of Cloud Computing
■ Why Cloud Computing
■ Drawbacks of Cloud Computing
■ Types of Clouds
3
Introduction to Cloud Computing 3
A Cloud is …
■ Datacenter hardware and software
that the vendors use to offer the
computing resources and services
4
Introduction to Cloud Computing
Cloud Computing
■ Represents both the cloud & the provided services
■ Why call it “cloud computing”?
Some say because the computing happens out there "in the
clouds"
Wikipedia: "the term derives from the fact that most
technology diagrams depict the Internet or IP availability
by using a drawing of a cloud."
5
Introduction to Cloud Computing
Cloud Computing
■ Who is Who…
Cloud providers Cloud Users & Service Service Users
Providers
IBM Sun Cloud
SmugMug
Microsoft
Amazon VMware Aptana
AWS Amazon S3
Sun Cloud Animoto
3tera
Dell Sun Microsystems
Hewlett-Packard lland Qloud
Cloud Testing
Citrix Systems NaviSite
Outsourcery SynfiniWay IBM Amazon AWS
Red Hat
Intelliquib
“With Amazon [AWS], on Day One of launch we
could scale to the world.”
-Brad Jefferson, Co-Founder & CEO, Animoto
“Animoto has partnered with Amazon to leverage multiple Users use it to
offerings in their Web Services (AWS) platform which, in produce video
conjunction with Animoto's own render farm, constitutes pieces from their
the Animoto web infrastructure.” photos, video clips
and music.
6
Introduction to Cloud Computing
Cloud Computing Services
Three basic services:
■ Software as a Service (SAAS) model
Apps through browser
■ Platform as a Service (PAAS) model
Delivery of a computing platform for custom software
development as a service
■ Infrastructure as a Service (IAAS) model
Deliver of computer infrastructure as a service
■ XAAS, the list continues to grow…
7
Introduction to Cloud Computing
Cloud Services ( XaaS )
8
Introduction to Cloud Computing
SaaS (1/3) SaaS
■ Started around 1999
■ Application is licensed to a customer as a
service on demand
■ Software Delivery Model:
Hosted on the vendor’s web servers
Downloaded at the consumer’s device and disabled
when on‐demand contract is over
9
Introduction to Cloud Computing
SaaS (2/3) SaaS
■ SaaS architecture/ Maturity levels:
Distinguishing attributes: configurability, multi‐tenant efficiency, scalability
1 2 3 4
Tenant 1 Tenant 2 Tenant 1 Tenant 2 Tenant 1 Tenant 2 Tenant 1 Tenant 2
Tenant Load Balancer
instance 1 instance 2 instance instance instance
instance instance
Configurable + Multi-tenant-efficient + Scalable
•Each has its own •Same application but • (+):Efficient use of server
customized version of distinct instance/customer resources without
the application and apparent
run differences to end users
its own instance • (-): scalability limits
10
Introduction to Cloud Computing
SaaS (3/3) SaaS
■ Examples
11
Introduction to Cloud Computing
PaaS (1/2) SaaS
PaaS
■ Delivery of an integrated computing platform (to
build/test/deploy custom apps) & solution stack as a
service.
■ Deploy your applications & don’t worry about buying &
managing the underlying hardware and software layers
12
Introduction to Cloud Computing
PaaS (2/2) SaaS
PaaS
■ Examples
13
Introduction to Cloud Computing
SaaS
IaaS (1/5)
PaaS
■ Delivery of computer infrastructure (typically IaaS
platform virtualization environment) as a service
■ Buy resources
Servers
Software
Data center space
Network equipment as fully outsourced services
■ Example:
14
Introduction to Cloud Computing
IaaS (2/5) SaaS
PaaS
■ Virtualization Technology is a major enabler of IaaS
IaaS
It’s a path to share IT resource pools: Web servers, storage,
data, network, software and databases.
Higher utilization rates
App1 App2 App3
Virtualized Stack
OS1 OS2 OS3
App1 App2
Traditional
Middleware
Stack
App3 OS
Hypervisor
Hardware
Hardware
15
Introduction to Cloud Computing
IaaS (3/5)
SaaS
■ Virtualization Technology is a major enabler of IaaS PaaS
IaaS
HARDWAR
E 16
Introduction to Cloud Computing
IaaS (4/5) SaaS
■ Granularity of VMs PaaS
Multi‐core processors IaaS
VM VM
Quad Core:
VM VM
VM
17
Introduction to Cloud Computing
IaaS (5/5)
Capacity
Service Request Operations Dynamic
Monitoring Planning
Catalog UI UI Scheduling
SLA
Request Driven Provisioning & Service Management
Web 2.0 Data
Software Virtual High Volume
Collaborative Intensive
Development Classroom Transactions
Innovation Processing
Workloads
Virtual Virtual Virtual Virtual Virtual
Servers Storage Networks Applications & Clients
Virtualization Middleware
Serve Power Racks, Stora Networki
rs Systems BladeCen ge ng
Physical Layer ter
18
Introduction to Cloud Computing
Resource sharing and consolidation
■ Offering computing resources as a service or
utility through:
Virtualization
Dynamic provisioning
Customizable
User User Shared Resource:
1: 2:
19
Introduction to Cloud Computing
Heterogeneous Physical Resources
Customizable Shared
Heterogeneous
Resource:
User User User
1: 2: 3:
20
Introduction to Cloud Computing
More (XaaS): Everything as a Service EaaS
■ Desktop: DaaS
Use your desktop virtually from anywhere
■ Communication: CaaS
■ Virtualization: VaaS
■ Hardware: HaaS
■ …etc
21
Introduction to Cloud Computing
Evolution
■ Discussed in lecture1
22
Introduction to Cloud Computing
Enabling Technologies
■ Virtualization
■ Web 2.0
■ Distributed Storage
■ Distributed Computing
■ Utility Computing
■ Network Bandwidth & Latency
■ Fault‐Tolerant Systems
23
Introduction to Cloud Computing
Why Cloud Computing?
■ Large‐Scale Data‐Intensive Applications
■ Flexibility
■ Scalability
■ Customized to your current needs:
Hardware
Software
■ Effect:
Reduce Cost
Reduce Maintenance
High Utilization
High Availability
Reduced Carbon Footprint
24
Introduction to Cloud Computing
Why Cloud Computing?
■ Flexibility
Software: Any software platform
Access: access resources from any machine
connected to the Internet
Deploy infrastructure from anywhere at
anytime
Software controls infrastructure
25
Introduction to Cloud Computing
Why Cloud Computing?
■ Scalability
Instant
Control via software
Add/cancel/rebuild resources instantly
Start small, then scale your resources up/down as
you need
illusion of infinite resources available on
demand
26
Introduction to Cloud Computing
Why Cloud Computing?
■ Customization
Everything in your wish list
Software platforms
Storage
Network bandwidth
Speed
27
Introduction to Cloud Computing
Why Cloud Computing?
■ Cost
Pay‐as‐you‐go model
Small/medium size companies can tap the
infrastructure of corporate giants.
Time to service/market
No upfront cost
28
Introduction to Cloud Computing
Why Cloud Computing?
■ Maintenance
Reduce the size of a client’s IT department
Is the responsibility of the cloud vendor
This Includes:
Software updates
Security patches
Monitoring system’s health
System backup
…etc
29
Introduction to Cloud Computing
Why Cloud Computing?
■ Utilization
Consolidation of a large number of resources
CPU cycles
Storage
Network Bandwidth
30
Introduction to Cloud Computing
Why Cloud Computing?
■ Availability
Having access to software, platform, infrastructure
from anywhere at any time
All you need is a device connected to the internet
■ Reliability
The system’s fault tolerance is managed by the cloud
providers and users no longer need to worry about it.
31
Introduction to Cloud Computing
Why Cloud Computing?
■ CO2 Footprint
Consolidation of servers
Higher utilization
Reduced power usage
32
Introduction to Cloud Computing
Drawbacks
■ Security
■ Privacy
■ Vendor lock‐in
■ Network‐dependent
■ Migration
33
Introduction to Cloud Computing
Types of Clouds (1/4)
■ Public
■ Private
■ Hybrid
34
Introduction to Cloud Computing
Types of Clouds (2/4)
■ Public (external) cloud
Open Market for on demand computing and IT resources
Concerns: Limited SLA, Reliability, Availability, Security, Trust and
Confidence
Examples: IBM, Google, Amazon, …
35
Introduction to Cloud Computing
Types of Clouds (3/4)
■ Private (Internal) cloud
For Enterprises/Corporations with large scale IT
36
Introduction to Cloud Computing
Types of Clouds (4/4)
■ Hybrid cloud
Extend the Private Cloud(s) by connecting it to other external cloud
vendors to make use of available cloud services from external
vendors
■ Cloud Burst
Use the local cloud, when you
need more resources, burst
into the public cloud
37
Introduction to Cloud Computing
Types of Applications
■ Open discussion
38
Introduction to Cloud Computing
System Infrastructure
■ Large‐scale Data‐centric applications
■ Exploit parallelism
■ Easy to manage
■ Elastic (dynamic?)
■ Fault‐tolerant
39
Introduction to Cloud Computing
MapReduce and Apache Hadoop
■ MapReduce: Abstraction that simplifies writing
applications that access massively distributed data
■ Hadoop: Open source MapReduce software platform
■ Distributes data and processing across many nodes
■ Processes the data locally at each node
■ Transparent fault tolerance through
Automatic data duplication
Automatic detection and restarting of failing nodes
40
Introduction to Cloud Computing
MapReduce Programming Model
■ Functional programming that is easily
parallelizable
■ Split into two phases:
Map – Perform custom function on all
items in an array
Reduce – Collate map results using custom
function
■ Scales well – computation separated
from processing dataflow
■ Illustrative example:
Map that squares the value of numbers in
an array
{1, 2, 3, 4} ‐> {1, 4, 9, 16}
Reduce that sums the squares : 30
41
Introduction to Cloud Computing
Hadoop Map/Reduce
■ The Map‐Reduce programming model
Framework for distributed processing of large data sets
Pluggable user code runs in generic framework
■ Example:
cat * | grep | sort | unique ‐c | cat > file
input | map | shuffle | reduce | output
■ Natural for unstructured data:
Log processing
Web search indexing
Ad‐hoc queries
42
Introduction to Cloud Computing
Apache Hadoop
■ Open source MapReduce software platform
■ Automatically provides framework for developing
MapReduce applications
Handles mapping and reducing logistics
Programmer just provides custom functionality
■ Currently takes custom functionality in Java and
Python
■ Uses an open source Eclipse plug‐in to interface
with Hadoop
43
Introduction to Cloud Computing
HDFS
■ Very Large Distributed File System
10K nodes, 100 million files, 10 PB
■ Assumes Commodity Hardware
Files are replication in order to
handle hardware failure
System detects failures and
recovers from them
■ Optimized for Batch Processing
Data locations exposed so that
computations can move to where
data resides
Provides very high aggregate
bandwidth
44
Introduction to Cloud Computing
Distributed File System NameNode
Single Namespace for entire cluster
Data Coherency
Write‐once‐read‐many access model Client
Client can only append to existing files
■ Files are broken up into blocks
Typically 128 MB block size
Each block replicated on multiple DataNodes
■ Intelligent Client DataNodes
Client can find location of blocks
Client accesses data directly from DataNode
45
Introduction to Cloud Computing