22
appscale: open-source platform- level cloud computing Chandra Krintz Computer Science Dept. Univ. of California, Santa Barbara OpenFabrics Alliance, Sonoma Workshop March 15, 2010

Appscale: Open-Source Platform-Level Cloud Computing

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Appscale: Open-Source Platform-Level Cloud Computing

appscale: open-source platform-level cloud computing

Chandra KrintzComputer Science Dept.

Univ. of California, Santa Barbara

OpenFabrics Alliance, Sonoma WorkshopMarch 15, 2010

Page 2: Appscale: Open-Source Platform-Level Cloud Computing

appscale

cloud computing• Software systems for accessing easily and transparently

scalable CPU/storage/network resources via a network connection or web interface – “as-a-service” Culmination of grid/cluster/utility/elastic computing Advances in processor, virtualization, systems technology

• Remote access to distributed and shared cluster resources Has experienced a rapid uptake in the commercial sector

Public clouds –your software/apps on others’ systemsUsers rent a small fraction of vast resource pools

Advertised service-level-agreements (SLAs) Resources are opaque and isolated

Offer high availability, fault tolerance, and extreme scale

Page 3: Appscale: Open-Source Platform-Level Cloud Computing

appscale

cloud computing• 3 types: as-a-Service (aaS)

Infrastructure: Amazon Web Services (EC2, S3, EBS)Virtualized, isolated (CPU, Network, Storage) systems on which

users execute entire runtime stacks Fully customer self-service

Open APIs (IaaS standard), scalable services

Platform: Google App Engine, Microsoft AzureScalable program-level abstractions via well-defined interfacesEnable construction of network-accessible applicationsProcess-level (sandbox) isolation, complete software stack

Software: Salesforce.comApplications provided to thin clients over a networkCustomizable

Page 4: Appscale: Open-Source Platform-Level Cloud Computing

appscale

many public cloud features useful on-premise• Ease of use – of local cluster resources

Development, configuration, deployment Broaden participation

• Scale, performance and resource isolation

• Concerns Vendor “lock-in”, pay-per-use, and availability reliance Privacy of code and data Resource constraints: storage, CPU/memory,

communication

• Potential for hybrid and customized approaches One size may not fit all

Page 5: Appscale: Open-Source Platform-Level Cloud Computing

appscale

many public cloud features useful on-premise• Ease of use – of local cluster resources

Development, configuration, deployment Broaden participation

• Difficult to test / try things out in public-only setting Developers visualize the system / have an intellectual

model

• How to support other application domains: scale/availability HPC, data-intensive

• Clouds are opaque Open APIs, closed implementations What is your application/workload doing?

Page 6: Appscale: Open-Source Platform-Level Cloud Computing

appscale

many public cloud features useful on-premise• Ease of use – of local cluster resources

Development, configuration, deployment Broaden participation

• Difficult to test / try things out in public-only setting Developers visualize the system / have an intellectual

model

• How to support other application domains: scale/availability HPC, data-intensive

• Clouds are opaque Open APIs, closed implementations What is your application/workload doing?If everyone does their own…

many non-standard APIs!

Page 7: Appscale: Open-Source Platform-Level Cloud Computing

appscale

cloud computing fabrics from UCSB

• Goal: Bring popular cloud fabrics to “on-premise” clusters that are easy to use and are transparent

By emulating key cloud layers from the commercial sectorEngender user community, access to real

applications/users

☺ “Standard” APIs (Amazon AWS, Google App Engine, MapReduce)

Leverage extant software technologies

Page 8: Appscale: Open-Source Platform-Level Cloud Computing

appscale

cloud computing fabrics from UCSB• Goal: Bring popular cloud fabrics to “on-premise” clusters

that are easy to use and are transparent

By emulating key cloud layers from the commercial sectorEngender user community, access to real applications/users

☺ “Standard” APIs (Amazon AWS, Google App Engine, MapReduce) Leverage extant software technologies

To facilitate investigation ofNext-generation distributed / cloud computing software

Services, underlying device technology, support technologies Customization (availability, performance, application behavior)

Hybrid cloud solutions (public and on-premise)

Not a replacement technology for any Public Cloud service

Page 9: Appscale: Open-Source Platform-Level Cloud Computing

appscale

cloud computing fabrics from UCSB

• Goal: Bring popular cloud fabrics to “on-premise” clusters that are easy to use and are transparent

By emulating key cloud layers from the commercial sectorEngender user community, access to real applications/users

☺ “Standard” APIs (Amazon AWS, Google App Engine, MapReduce)

Leverage extant software technologies

• Platform-as-a-service (PaaS) Open-source implementation of Google App Engine APIs Pluggable (services), scalable, fault tolerant Runs over virtualization or IaaS layer: AWS, Eucalyptus appscale.cs.ucsb.edu

Page 10: Appscale: Open-Source Platform-Level Cloud Computing

appscale

google app engine

GAE Application (your code here)

private, enterprisedata, Google apps

Images

IM

Memcache Mail

UsersURL Fetch

Adm

inis

trato

rC

onso

le

Data Store

ProtobufData APIs

SDC

Google App Engine (GAE)

ServicesCron

Tasks

MyApp.appspot.com

Blobstore

Page 11: Appscale: Open-Source Platform-Level Cloud Computing

appscale

sandbox restrictions

GAE Application (your code here)

Google App Engine (GAE)MyApp.appspot.com

• Pure Python or Java only, white list of library calls to framework• No thread/subprocess spawning, system calls• No writes to file system, reads only to static files uploaded w/app• Storage using key-value, schema-free datastore (Bigtable-based)• HTTP/S communication only, CGI to handle page requests• Limit on number of datastore elements accessed per request • Limit on response duration, task frequency, request rate

• Enforced quotas (BW, CPU, requests/s, files, app size, …)

Page 12: Appscale: Open-Source Platform-Level Cloud Computing

appscale

google app engine: upload to google

GAE Application (Python, Java)

Google App Engine (GAE)

SDC

AdministratorConsole

Free w/ quotasPay for additional scale: CPU, BW, emails, dataBigTable:Automatic scalingHigh availability

GAE appusers

via theInternet

Images IMMem

CacheMailUsersURLFetch

CronTasksDatastore

BlobStore

MyApp.appspot.com

private, enterprisedata, Google apps

Page 13: Appscale: Open-Source Platform-Level Cloud Computing

appscale

from gae to appscale

GAE Application (your code here)

Open-source Google App Engine Software Development Kit (SDK)

Images IMMem

CacheMailUsersURLFetch

CronTasksDatastore

BlobStore

AppScale

Page 14: Appscale: Open-Source Platform-Level Cloud Computing

appscale

from gae to appscale

• GAE SDK extensions Pluggable using open-source distributed database

technologiesHBase, Hypertable, Cassandra, Voldemort, MongoDB, MemcacheDB,

MySQL

MemcacheD library

From console or as background thread (automatically) Interface to Hadoop (MapReduce)

Multi-language support: Python, Java, Ruby, Perl, soon: X10

Translator to Linux Cron job, similar to Tasks

Pluggable: built-in cloud-wide authentication via Rails, support for Eucalyptus and EC2 credentials

MemCache

Users

Cron

Tasks

Datastore

Page 15: Appscale: Open-Source Platform-Level Cloud Computing

appscale

appscale’s offerings

• Use of the Google APIs as a unifying interface Datastore/database backends, services

Can grow this to include other standard APIs

• Single framework that executes extant GAE applications Disparate API implementations automatically

deploy/compare

• No restrictions on resource usage, library support Multiple high-level language front-ends and components Optimized library support in the back-end

Page 16: Appscale: Open-Source Platform-Level Cloud Computing

appscale

appscale’s offerings• Use of the Google APIs as a unifying interface

Datastore/database backends, servicesCan grow this to include other standard APIs

• Single framework that executes extant GAE applications Disparate API implementations automatically

deploy/compare

• No restrictions on resource usage, library support Multiple high-level language front-ends and components Optimized library support in the back-end

• Open-source international user community

• Potential for integration with infrastructure level (IaaS) Adaptive SLA re-negotation Growth/Shrinkage of the cloud Application or workload specific customization of the

platform

Page 17: Appscale: Open-Source Platform-Level Cloud Computing

appscale

appscale

GAE AppDeveloper(AppScale

Admin)

GAE AppDeveloper(AppScale

Admin)

GAE AppUsers

GAE AppUsers

AppScaletools

HTTPS

AppController

ALB

DB S/P

ASGAE AppUsers

GAE AppUsersGAE App

UsersGAE App

Users

AppScale Cloud

• Distributed system with four key componentsAppLoadBalancer (ALB) Database Master/Peer (DB M/P)

AppServer (AS) Database Slave/Peer (DB S/P)

• Automatic deployment over Eucalyptus and EC2 Released as a single Xen or KVM image Adaptive role configuration

Computetasks(e.g. Map Reduce)

DB M/P

Page 18: Appscale: Open-Source Platform-Level Cloud Computing

appscale

appscale team foci

GAE AppDeveloper(AppScale

Admin)

GAE AppDeveloper(AppScale

Admin)

GAE AppUsers

GAE AppUsers

AppScaletools

HTTPS

AppController

ALB

DB S/P

ASGAE AppUsers

GAE AppUsersGAE App

UsersGAE App

Users

AppScale Cloud

• Full system monitoring (low-overhead HPM/OS & profiling) Feedback driven adaptation, grow/shrink the cloud

Online workload characterization, behavior pattern recognition Identify critical tasks, applications, components

• Shared-memory support for co-located components

• PaaS customization, PaaS-IaaS coordination, adaptation

Computetasks(e.g. Map Reduce)

DB M/P

Page 19: Appscale: Open-Source Platform-Level Cloud Computing

appscale

google app engine

GAE Application (your code here)

private, enterprisedata, Google apps

Images

IM

Memcache Mail

UsersURL Fetch

Adm

inis

trato

rC

onso

le

Data Store

ProtobufData APIs

SDC

Google App Engine (GAE)

ServicesCron

Tasks

MyApp.appspot.com

Blobstore

Page 20: Appscale: Open-Source Platform-Level Cloud Computing

appscale

customized platform-as-a-service

GAE, HPC, Data Intensive Application

private, enterprisedata, other appspublic cloud fabrics

GPU

MapReduce

CollaborationVectorsupport

AuthMPI

Adm

inis

trato

rC

onso

le

Data Store

ProtobufData APIs

SDC

• Specialized platform access to standard APIs• Platforms for other app domains

ServicesStreamsupport

Tasks

MyApp.your.url.gov

CustomLibs

Messaging

Page 21: Appscale: Open-Source Platform-Level Cloud Computing

appscale

appscale and RDMA

GAE AppDeveloper(AppScale

Admin)

GAE AppDeveloper(AppScale

Admin)

GAE AppUsers

GAE AppUsers

AppScaletools

HTTPS

AppController

ALB

DB S/P

ASGAE AppUsers

GAE AppUsersGAE App

UsersGAE App

Users

AppScale Cloud

• Shared-memory support for co-located components

• PaaS-IaaS coordination, adaptation, scheduling

• Compute/data intensive workloads (HPC, messages, streams)

• Database system support for different workloads

• Programmatic interface and tools for applications developers Improve ease of use access

Computetasks(e.g. Map Reduce)

DB M/P

Page 22: Appscale: Open-Source Platform-Level Cloud Computing

appscale

appscale http://appscale.cs.ucsb.edu• Thanks!

Leads: Chris Bunch, Navraj Chohan Development and research team: Jovan Chohan, Nupur

Garg, Matt Hubert, Jonathan Kupferman, Puneet Lakhina, Yiming Li, Nagy Mostafa, Yoshihide Nomura (Fujitsu), Michal Weigel

SupportGoogle, IBM Research, National Science Foundation

OpenFabrics Alliance