31
MetaCDN: Creating a ‘Cloud Storage’ Mashup for High Performance, Low Cost Content Delivery Dr. James Broberg ([email protected] ) http://www.csse.unimelb.edu.au/~brobergj http://www.metacdn.org

MetaCDN

Embed Size (px)

DESCRIPTION

by James Broberg - Presentation given at the 2nd International Workshop on Web APIs and Mashups (at ICSOC2008) on December 1st, 2008 in Sydney, Australia. http://www.icsoc-mashups.org/

Citation preview

Page 1: MetaCDN

MetaCDN: Creating a ‘Cloud Storage’ Mashup for HighPerformance, Low Cost

Content Delivery

Dr. James Broberg ([email protected])http://www.csse.unimelb.edu.au/~brobergj

http://www.metacdn.org

Page 2: MetaCDN

Content Delivery Networks (CDNs)

• What is a CDN?

• Content Delivery Networks (CDNs) such as Akamai, Mirror Image and Limelight place web server clusters in numerous geographical locations to improve the responsiveness and locality of the content it hosts for end-users.

Page 3: MetaCDN

Existing CDN providers

• Akamai is the clear leader in coverage and market share (approx. 80%)

• Price is prohibitive for SME, NGO, Gov...

• Anecdotally 2−15 times more expensive than Cloud Storage, and require 1−2 year commitments and min. data use (10TB+)

• Academic CDNs include Coral, Codeen, Globule....

• No SLA / QoS provided, only ‘best effort’

Page 4: MetaCDN

Storage Clouds‘Storage as a Service’

Now!

Late ‘08

??????

Page 5: MetaCDN

SaaS Comparison

Page 6: MetaCDN

Introducing MetaCDN

• What if we could create a low-cost, high performance overlay CDN using these storage clouds?

• Exploit the strengths and coverage footprints of multiple providers

• Cherry pick providers based on customers QoS needs / cost budget

• MetaCDN provides this while hiding the complexity from users

Page 7: MetaCDN

How MetaCDN works

createFolder(foldername, location)deleteFolder(foldername)createFile(file, foldername, location, date)createFile(fileURL, foldername, location, date)renameFile(filename, newname, location)createTorrent(file)createTorrent(fileURL)deleteFile(file, location)listFilesAndFolders()deleteFilesAndFolders()

DEPLOY_USADEPLOY_EUDEPLOY_ASIADEPLOY_AUS

DefaultConnector

FeatureNotSupportedException(msg)

<<exception>>FeatureNotSupportedException

createFolder(foldername, location)deleteFolder(foldername)createFile(file, foldername, location, date)createFile(fileURL, foldername, location, date)renameFile(filename, newname, location) throws FeatureNotSupportedExceptioncreateTorrent(file)createTorrent(fileURL)deleteFile(file, location)listFilesAndFolders()deleteFilesAndFolders()

AmazonS3ConnectorcreateFolder(foldername, location)deleteFolder(foldername)createFile(file, foldername, location, date)createFile(fileURL, foldername, location, date)renameFile(filename, newname, location)createTorrent(file) throws FeatureNotSupportedExceptioncreateTorrent(fileURL) throws FeatureNotSupportedExceptiondeleteFile(file, location)listFilesAndFolders()deleteFilesAndFolders()

NirvanixConnector

Page 8: MetaCDN

How MetaCDN works

Java stubMetaCDN.org

WebDAVConnector

Amazon S3 & CloudFront

Coral CDNNirvanix SDNMosso Cloud

Files CDN

Java SDKOpen Source

JetS3t toolkitJava SDKNirvanix, Inc

Nirvanix SDK

Java stubMetaCDN.org

AmazonS3ConnectorJava stubMetaCDN.org

NirvanixConnectorJava stubMetaCDN.org

CoralConnector

MetaCDN

MetaCDN Manager

MetaCDN QoS Monitor

MetaCDN Allocator

Java (JSF/EJB) based portalSupport HTTP POSTNew/view/modify deployment

Web Portal

SOAP Web ServiceRESTful Web ServiceProgrammatic access

Web Service

Shared/PrivateHost

Random redirectionGeographical redirectionLeast cost redirection

Load Redirector

MetaCDN Database

Java stubMetaCDN.org

CloudFilesConnector

Java SDKMosso, Inc

Cloud Files SDK

Java stubMetaCDN.org

SCPConnector

Java stubMetaCDN.org

FTPConnector

Page 9: MetaCDN

MetaCDN Manager

• The MetaCDN Manager ensures that:

• All current deployments are meeting QoS targets (where applicable)

• Replicas are removed when no longer required (minimising cost)

• A users’ budget has not been exceeded, by tracking usage (i.e. storage/download)

Page 10: MetaCDN

MetaCDN QoS Monitor

• The MetaCDN QoS Monitor:

• Tracks the performance of participating providers at all times

• Monitors and records throughput and response time from a variety of locations

• Ensures that upstream providers are meeting their Service Level Agreements

Page 11: MetaCDN

MetaCDN Allocator

• The MetaCDN Allocator allows users to deploy files either directly or from a public origin URL, with the following options:

• Maximise coverage and performance

• Deploy content in specific locations

• Cost optimised deployment

• Quality of Service (QoS) optimised

Page 12: MetaCDN

MetaCDN Database

MetaCDN User

hasCDN

Credentialsfor

CDN Provider

has

deployed

as

hosted

by

1 0 : M

has

ContentMetaCDNReplica

Coveragelocations

1 0 : M

1 1

M

1 1

M

1

1

Page 13: MetaCDN

MetaCDN Web Portal

• Developed using Java Enterprise and Java Server Faces (JSF) technologies

• MySQL back-end to store persistent data

• Web portal acts as the entry point to the system and application-level load balancer

• Most suited for small or ad-hoc deployments, and especially useful for less technically inclined content creators.

Page 14: MetaCDN
Page 15: MetaCDN
Page 16: MetaCDN
Page 17: MetaCDN
Page 18: MetaCDN

MetaCDN Web Service• Makes all functionality available via Web

Services (SOAP & REST/HTTP)

• Web interface is useful for novices and for ad-hoc deployments, but doesn’t scale

• Larger customers have 1,000’s - 10,000 - 100,000s of files that need deployment

• Let them automate their deployment and management via Web Services!

• Perfect for Mashup developers!!!

Page 19: MetaCDN

MetaCDN Load Redirector

• We have created a unified namespace to simply deployment, routing, management

• Currently, file deployment results in multiple URLs, each mapping to a replica

• http://metacdn-eu-user.s3.amazonaws.com/myfile.mp4

• http://metacdn-us-user.s3.amazonaws.com/myfile.mp4

• http://node3.nirvanix.com/MetaCDN/user/myfile.mp4

• Single namespace is created for fine control

• http://www.metacdn.org/FileMapper?itemid=2

Page 20: MetaCDN

processRequest ()

MetaCDN gateway

Return IP of closest MetaCDN gateway, www-na.metacdn.org

Resolve www.metacdn.org

MetaCDN end-user

geoRedirect ()

HTTP 302 Redirect to http://metacdn-us-username.s3.amazonaws.com/filename.pdf

DNS Server

GET http://metacdn.org/MetaCDN/FileMapper?itemid=1

Return IP of metacdn-us-username.s3.amazonaws.com

Resolve metacdn-us-username.s3.amazonaws.com Amazon S3 USA

GET http://metacdn-us-username.s3.amazonaws.com/filename.pdf

Return replica

MetaCDN Load Redirector (cont.)

Page 21: MetaCDN

Redirector Overhead from USA

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

0 5 10 15 20 25

Seco

nds

Hour

S3 USAMetaCDN

Page 22: MetaCDN

Redirector Overhead from Australia

0.55

0.6

0.65

0.7

0.75

0.8

0.85

0.9

0 5 10 15 20 25

Seco

nds

Hour

Nirvanix SDN #3MetaCDN

Page 23: MetaCDN

Evaluating MetaCDN performance

• Ran tests over 24 hour period (mid-week)

• Downloading test replicas (1KB, 10MB) 30 times per hour, take average and conf. inter.

• 10MB - Throughput, 1KB - Response Time

• Ran test from 6 locations: Melbourne (AUS), Paris (FRA), Vienna (AUT), San Diego & New Jersey (USA), Seoul (KOR)

• Replicas located across US, EU, ASIA, AUS

Page 24: MetaCDN

Summary of Results - Throughput (KB/s)

S3US

S3EU

SDN#1

SDN #2

SDN #3

SDN #4

Coral

MelbourneAustralia

Paris France

Vienna AustriaSeoul

South Korea San Diego

USANew Jersey

USA

264.3 389.1 30 366.8 408.5 405.6 173.7

703.1 2116 483.8 2948 416.8 1043 530.2

490.7 1347 288.4 2271 211 538.7 453.4

312.8 376.1 466.5 411.9 2456 588.2 152

1234 323.5 5946 380.1 506.1 820.4 338.5

2381 1949 860.8 967.1 572.8 4230 636.4

Page 25: MetaCDN

Summary of results - Response Time (Sec)

S3US

S3EU

SDN#1

SDN #2

SDN #3

SDN #4

Coral

MelbourneAustralia

Paris France

Vienna AustriaSeoul

South Korea San Diego

USANew Jersey

USA

1.378 1.458 0.663 0.703 1.195 0.816 5.452

0.533 0.2 0.538 0.099 1.078 0.316 3.11

0.723 0.442 0.585 0.099 1.088 0.406 3.171

1.135 1.21 0.856 0.896 1 0.848 3.318

0.232 0.455 0.23 0.361 0.775 0.319 4.655

0.532 0.491 0.621 0.475 1.263 0.516 1.916

Page 26: MetaCDN

Summary of results (cont)

• Clients benefited greatly from local replicas

• Results are consistent in terms of response time and throughput with previous studies of dedicated CDNs

• Back-end providers have sufficient performance and reliability to be used to host replicas in the MetaCDN system

Page 27: MetaCDN

MetaCDN features in planning / development• Support as many providers as possible

• Ensures redundancy, reliability, coverage and choice (reduces single vendor lock-in)

• Windows Azure Storage Service support will be added ASAP.

• Other storage & delivery services can be rapidly added as they are released....

Page 28: MetaCDN

• Create Apache module (mod_metacdn) to utilise at content origin sites

• Module would utilise MetaCDN web services to maintain optimal deployment

• Maximise performance during peak load via intelligent replica deployment

• Minimise storage cost during periods of low demand

MetaCDN features in planning / development

Page 29: MetaCDN

Collaborations• Always looking for people to collaborate

on the project

• Work to be done on:

• Load balancing / redirection algorithms

• Intelligent Caching / replication algorithms

• Security / Access Control of content

• Improving MetaCDN Web Services

• Please contact me if you are interested...

Page 30: MetaCDN

Acknowledgements

• Thanks to reviewers for useful feedback.

• Australian Research Council (ARC) for funding the project.

• Cory & Barry (Nirvanix) and Eric (Rackspace/Mosso) for development support.

Page 31: MetaCDN

Thanks

Latest information will be available at: www.metacdn.org

International Workshop on Cloud Computing (Cloud 2009):

http://www.gridbus.org/cloud2009