130 likes | 372 Views
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.
E N D
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
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
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
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
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
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
platform design apps & app components • 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 … APIs API imple- mentation cloud platform IaaS, virtualized clusters Python Ruby Java . . .
platform design apps & app components • 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 … APIs API imple- mentation cloud platform Monitoring Elasticity Opt/adaptation Service config Hybrid support VM/IAAS control Fault tolerance Backup/recovery IaaS, virtualized clusters Python Ruby Java . . .
appscale: enabling cloud platform research C++/MPI apps & app components Python *Ruby Java X10 R … APIs API imple- mentation appscale Monitoring Elasticity Opt/adaptation Service config Hybrid support VM/IAAS control Fault tolerance 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: enabling cloud platform research C++/MPI apps & app components Python • 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 *Ruby Java X10 R … APIs API imple- mentation appscale Monitoring Elasticity Opt/adaptation Service config Hybrid support VM/IAAS control Fault tolerance 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
appscale: enabling cloud platform research C++/MPI apps & app components Python • 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 *Ruby Java X10 R … APIs API imple- mentation appscale Monitoring Elasticity Opt/adaptation Service config Hybrid support VM/IAAS control Fault tolerance Backup/recovery Eucalyptus Amazon AWS Xen, KVM, …
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