Date post: | 30-Mar-2015 |
Category: |
Documents |
Upload: | ximena-wakeford |
View: | 223 times |
Download: | 1 times |
Cloud Service Modelsand PerformanceAng Li09/13/2010
RoadmapRe-cap on cloud computing
Classes of cloud providers
Common services offered by cloud providers
Cloud performance comparison
Re-cap on cloud computingWhat is cloud computing?
◦Cloud application: software-as-a-service
◦Cloud provider: hardware and software infrastructure that supports the cloud applications
Benefits of cloud computing◦Pay-as-you-go◦On-demand scaling
Classes of cloud providers
Platform as a Service(PaaS)
Infrastructure as a Service (IaaS)
Infrastructure-as-a-Service providersOffer near bare-metal virtual
machines◦You can ssh, get root privilege, install
new software, do whatever you want◦Can use the APIs provided by the OS◦Highly flexible and customizable
Charge by machine-hour◦ (How many machines you use) X
(how long you use them)◦You can afford it!
Demo time!Amazon AWS
Platform-as-a-Service providersOffer a sandbox
environment◦Upload a program, they run it
for you◦Can only use the APIs provided
by the environment
Charged by CPU utilization◦Pay only how much resource
you use◦A few free hours per day!
Demo time!AppEngine
Windows Azure: a combination of bothOffer a sand-box environment of
C# (PaaS)Charge by machine-hour (IaaS)
Demo time!
DiscussionWhat are the pros and cons of
IaaS and PaaS?
Which one do you prefer?◦Your homepage◦E-business application◦Video processing
Services offered by a cloudElastic compute cluster
Persistent storage
Intra-cloud and wide-area network
and others…◦MapReduce service◦CDN service
Elastic compute clusterWhere your application is running
◦VM or sandbox environmentWhy cluster?
◦Multiple “instances” can be running your application simultaneously
Why elastic?◦You can add new instances or
remove existing ones with very short latency
Scaling the compute clusterOpaque scaling
◦User can manually increase/decrease the number of instances
◦Alternatively, she can set up a scaling policy
◦IaaS providers (including Azure)
Transparent scaling◦Scaling happens automatically
(magically)◦PaaS providers
Persistent storageWhere to store your application’s
dataWhy persistent?
◦Local storage (VM disk) is not reliableDifferent types of storage service
◦Table, blob, queue, etc.◦Highly scalable and available
Access the storage services
Storage APIs◦HTTP-based
GET https://sdb.amazonaws.com/?Action=PutAttributes&Attribute.1.Name=data&Attribute.1.Value=haha&AWSAccessKeyId=[valid access key id]&DomainName=table&ItemName=k…
◦Library callDatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Key k = KeyFactory.createKey(table, key);Entity e = new Entity(k);e.setProperty("data", “haha");datastore.put(e);
Networking serviceIntra-cloud network: between two
instances or between an instance and the storage service
Wide-area network: between a cloud instance and the end user
Intra-cloud networkWithin a data center
◦High bandwidth, low latency
Wide-area networkEvery provider has multiple locations to host
cloud applications
Application content can be served from the closest location◦ Why is this a good thing?
Re-cap: cloud services
Intra-cloud network
Storage service
Computation service
Wide-area network
Web application
CloudCmp: comparing cloud providersMotivation
◦Provide shopping advice Analogy: should I buy an IBM or a Dell or
a Mac?
◦Identify performance problems
Challenges◦What to compare?
Each provider is unique in some way…
◦How do we measure?
MethodologyIdentify the common services
◦We just did thisPick a few metrics for each
service relevant to application performance
Develop benchmarking task for each metric
Run the tasks on different providers and compare
Choose the providers to compareAWS, Rackspace, Azure, and
AppEngine
Metrics: elastic compute clusterBenchmark finishing time
◦Java-based benchmark tasksCost per benchmark
◦From per-hour price and billing APIScaling latency
◦Periodically allocate new instances
Metrics: persistent storageOperation latency
◦Client mattersCost per operationTime to consistency
◦Read-after-write test
Metrics: networking serviceIntra-cloud network
◦Bandwidth (iperf)◦Latency (ping)
Wide-area network◦Use PlanetLab nodes to simulate a
diverse user base◦Let each node ping each data center
of a cloud provider◦Optimal wide-area latency
Result: computation performance
What can we learn from the figure?◦ How do the performance differ across different clouds?◦ Within a provider, how do performance differ across different
instance types? Is this enough information to choose provider/instance?
◦ How about cost?
Result: computation cost
What can we learn from this figure?◦Is some provider particularly cost-
effective?◦Which instance type should I choose
within a provider?
Result: scaling efficiency
How is the scaling latency (high/low)?
Linux vs Windows?
Result: storage (table)
The storage services show high variation◦Median – 30ms, 90 percentile – 60ms
Is it good or bad? Why?
Result: intra-cloud network
Intra-cloud bandwidth varies across different providers◦From 200Mbps to 800Mbps
What might be the cause?
Result: wide-area network
Wide-area network latency also varies a lot◦C3 is much better than the others◦What might be the reason?
Result summaryNo provider stands out
◦C1 has the highest network bandwidth, while its instance is not the most cost-effective
◦C2 has the most powerful instances, while its network bandwidth is low
◦C3 has the lowest wide-area network latency, while its storage is slower than others
It is not trivial to shop for a cloud provider!◦Many research challenges in developing a
sound mechanism to select the best provider for an application
SummaryTwo main classes of cloud providers
◦IaaS: bare-metal virtual machines◦PaaS: sand-box environment
Four common services◦Elastic compute cluster◦Persistent storage◦Intra-cloud network◦Wide-area network
No provider has the best performance over all services