Exploiting Phase Behavior for Efficient Program Sampling
Download
Report
Transcript Exploiting Phase Behavior for Efficient Program Sampling
The Cloud Platform:
A Vision for the Science of Cloud Computing
for the Next Decade
Chandra Krintz
Computer Science Dept.
Univ. of California, Santa Barbara
http://www.cs.ucsb.edu/~ckrintz
http://appscale.cs.ucsb.edu
NSF Cloud Workshop
March 17, 2011
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 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 use
Eucalyptus – Amazon AWS API emulation on private cluster,
transparent hybrid solution
Other 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 Azure
Scalable program-level abstractions via well-defined interfaces
Enable construction of network-accessible applications
Process-level (sandbox) isolation, complete software stack
Software: Salesforce.com
Applications provided to thin clients over a network
Customizable
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 offerings
Public/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/specialize
Cross-cloud (hybrid) execution and service use
Can coordinate with & provide feedback to IaaS layer
appscale
platform design
apps & app
components
APIs
API implementation
•
…
Cloud platform provides
Multi-language API implementation
Local/private implementations
Via available public cloud services
cloud platform
App/Resource monitoring
Optimization/adapation
Elasticity (growing/shrinking of
application components on demand)
Interoperation with IaaS
SLA (re-)negotiation
VM starting/stoping
VM reuse
IaaS,
virtualized
clusters
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,
appscale
performant
•
platform design
apps & app
components
APIs
API implementation
•
…
Elasticity
Service config
VM/IAAS control
Backup/recovery
Emulate popular/standard public cloud
interfaces
Engender user community
Evaluate using real applications
Initial app domain: web services
cloud platform
Monitoring
Opt/adaptation
Hybrid support
Fault tolerance
IaaS,
virtualized
clusters
APIs
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
appscale
appscale: enabling cloud platform research
apps & app
components
APIs
API implementation
…
appscale
Monitoring
Opt/adaptation
Hybrid support
Fault tolerance
Elasticity
Service config
VM/IAAS control
Backup/recovery
Eucalyptus
Amazon AWS
Xen, 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
appscale
appscale: enabling cloud platform research
apps & app
components
APIs
API implementation
•
…
Elasticity
Service config
VM/IAAS control
Backup/recovery
Eucalyptus
Amazon AWS
Xen, 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
Data management
MySql, Cassandra, HBase, Hypertable
AWS SimpleDB, Azure SQL, Bigtable
Distributed transaction support
Memcache, blobstore
appscale
Monitoring
Opt/adaptation
Hybrid support
Fault tolerance
•
•
APIs
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
appscale: enabling cloud platform research
apps & app
components
APIs
API implementation
•
…
Potential key research directions
Multi-tenency
Specialized for domain
appscale
Monitoring
Opt/adaptation
Hybrid support
Fault tolerance
Elasticity
Service config
VM/IAAS control
Backup/recovery
Data management
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
Eucalyptus
Amazon AWS
Xen, KVM, …
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
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
appscale