the cloud platform: a vision for the science of cloud computing for the next decade chandra krintz...
TRANSCRIPT
The Cloud Platform: A Vision for the Science of Cloud Computing for the Next Decade
Chandra KrintzComputer Science Dept.
Univ. of California, Santa Barbarahttp://www.cs.ucsb.edu/~ckrintz
http://appscale.cs.ucsb.edu
NSF Cloud WorkshopMarch 17, 2011
appscale
public 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-serviceOpen APIs (IaaS standard), scalable services
Platform: Google App Engine, Microsoft Azure
Software: Salesforce.com
appscale
private / open-source cloud computing
• 3 types: as-a-Service (aaS) Infrastructure: Amazon Web Services (EC2, S3, EBS)
Open IaaS offerings exist for private/hybrid useEucalyptus – Amazon AWS API emulation on private
cluster, transparent hybrid solutionOther APIs: Rackspace/OpenStack, CloudStack,
OpenNebula
Platform: Google App Engine, Microsoft Azure
Software: Salesforce.com
appscale
public 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
appscale
why focus on the platform (PaaS) ?
• The platform is the cloud runtime Just as IaaS (infrastructure) is the cloud operating
system (OS)Platform abstracts complex, low-level details of IaaS Impacts development as well as system/application
behavior
appscale
why focus on the platform (PaaS) ?
• The platform is the cloud runtime; IaaS is the cloud “OS” Platform abstracts complex, low-level details of IaaS Impacts development and system/application behavior
• Programmer productivity (target: developer vs sys admin) Development, debugging, testing, configuration,
deployment “Write-once/Run-anywhere” for the cloud
Portability (across an growing sea of IaaS APIs / consoles)Lockin avoidance and ability to “test-drive” public cloud
offeringsPublic/private/hybrid choice, thus competition
Broaden developer base: scientists, financial experts, data analysts, educators, …Via a variety of high-level programming languages,
frameworks, and IDE support
appscale
why focus on the platform (PaaS) ?
• The platform is the cloud runtime; IaaS is the cloud “OS” Platform abstracts complex, low-level details of IaaS Impacts development and system/application behavior
• Availability of application-level knowledge/behavior/events Profiling/monitoring/sampling
Individual services, applications, application workloads Bug isolation and debugging support Security and performance anomolies Multi-tenent interference and compatibility
System wide resource availability, capability, performance Control: dynamic performance and cost adaptation
SW updates, scheduling, placement, cost, optimize/specializeCross-cloud (hybrid) execution and service useCan coordinate with & provide feedback to IaaS layer
appscale
platform design• Cloud platform provides
Multi-language API implementation Local/private implementations Via available public cloud services
App/Resource monitoring Optimization/adapation Elasticity (growing/shrinking of
application components on demand)
Interoperation with IaaS SLA (re-)negotiation VM starting/stoping VM reuse
Configuration/deployment of and access to services
Cross/multi-cloud (hybrid) support Backup/recover of data Access to different services User locality
Fault tolerance, high availability
• Pluggable, extensible, scalable, performant
cloud platform
apps & appcomponents
APIsAPI imple-mentation
IaaS,virtualized
clusters
…Java
Python
Ruby. .
.
appscale
platform design• APIs
Emulate popular/standard public cloud interfaces
Engender user community Evaluate using real applications Initial app domain: web services
Data management Database, key-value store,
files/blobs, transactional semantics, caching
Users Messaging, email, authentication
Tasking Response-driven Background / periodic
Web access Fetch, export, user interaction
Data analytics Map-reduce
cloud platform
apps & appcomponents
APIsAPI imple-mentation
IaaS,virtualized
clusters
…Java
Python
Ruby. .
.
Monitoring ElasticityOpt/adaptation Service config Hybrid support VM/IAAS controlFault tolerance Backup/recovery
appscale
appscale: enabling cloud platform research
appscale
apps & appcomponents
APIsAPI imple-mentation
Monitoring ElasticityOpt/adaptation Service config Hybrid support VM/IAAS controlFault tolerance Backup/recovery
EucalyptusAmazon AWSXen, KVM, …
…
• Scalable, extensible distributed system
• Open source, extant community
• Emulates Google App Engine
• Leverages existing tools/services
• Automates distributed configuration and deployment using private clusters
• Hybrid (public/private) cloud support
JavaPyt
hon
*Ruby
R X10C++/M
PI
appscale
appscale: enabling cloud platform research
• APIs Data management
MySql, Cassandra, HBase, Hypertable AWS SimpleDB, Azure SQL, Bigtable Distributed transaction support Memcache, blobstore
Users Messaging, email, authentication
Tasking Cron, task queues
Web access Fetch, export, user interaction
Computationally intensive Parallel/concurrency support
MPI, X10 Distributed simulation (biochemistry)
Data analytics Map-reduce (hadoop, pig, hive) R, Matlab Yahoo! S4 (streaming)
Steering: Elasticity control
appscale
apps & appcomponents
APIsAPI imple-mentation
Monitoring ElasticityOpt/adaptation Service config Hybrid support VM/IAAS controlFault tolerance Backup/recovery
EucalyptusAmazon AWSXen, KVM, …
…
• Scalable, extensible distributed system
• Open source, extant community
• Emulates Google App Engine
• Leverages existing tools/services
• Automates distributed configuration and deployment using private clusters
• Hybrid cloud support
JavaPyt
hon
*Ruby
R X10C++/M
PI
appscale
appscale: enabling cloud platform research
• Potential key research directions Data management
Multi-tenency Specialized for domain
Optimization, specialization Components, services, system, cloud
Programming language support Interpreter and JIT optimizations Cloud-aware language extensions Debugging and testing Software evolution and live updates
Support for other application domains
Computationally and data intensive Fault tolerance Elasticity, placement, scheduling
Energy awareness Hybrid cloud support PaaS / IaaS interoperation Mobile device integration Software stewardship/VM
management
appscale
apps & appcomponents
APIsAPI imple-mentation
Monitoring ElasticityOpt/adaptation Service config Hybrid support VM/IAAS controlFault tolerance Backup/recovery
EucalyptusAmazon AWSXen, KVM, …
…Java
Python
*Ruby
R X10C++/M
PI
appscale
appscale http://appscale.cs.ucsb.edu• Thanks!
Leads: Chris Bunch, Navraj Chohan Development and research team: Maciej Baranski, Jovan
Chohan, Nupur Garg, Jonathan Kupferman, Yiming Li, Nagy Mostafa, Yoshihide Nomura (Fujitsu), Kowshik Prakasam, Bing Wei, Michal Weigel
• UCSB Cloud Computing Divy Agrawal, Amr El Abbadi, Chandra Krintz, Rich Wolski,
Ben Zhao, and others http://www.cs.ucsb.edu
• Support Google, IBM Research, National Science Foundation