Aneka A Cloud Computing Platform Dr. Christian Vecchiola Postdoctoral Research Fellow firstname.lastname@example.org Cloud Computing and Distributed Systems (CLOUDS) Lab Dept. of Computer Science and Software Engineering The University of Melbourne
Outline • Cloud Computing • Aneka • Architecture • Programming • Services • Security • Naming • Storage • Provisioning • Demo • Conclusions
Introduction • What is Cloud Computing? int n = 32; A = 1+wj Cloud Computing
Cloud Computing • Animoto: A Tale of Pictures and Videos What if I could dynamically choose the number of servers and pay for only the time I need them? Uhm.. Good but I can’t keep up with the demand Hey, this idea is cool let’s make a website What to do? Buy more servers? What if the demand shrinks? Animoto.com Animoto.com Me too! Me too! Me too! Hey I want a movie too! I would like to make a video with my pictures Animoto.com Mom, dad, friends 5 *
The “Cloud” is the default symbol of the internet in diagrams. • The broader term of “Computing” encompasses: • Computation • Coordination logic • Storage Cloud Computing is about moving computing from the single desktop pc/data centers to the internet. Cloud Computing • What is Cloud Computing? Cloud Computing
Introduction • Characteristics • What do we make available through the Internet? Office Automation, CRM, Social Networking, Media, Gaming Application and Services Development Platforms, Runtime environments for applications, APIs PaaS IaaS SaaS DevelopmentPlatform Google AppEngine Microsoft Azure Amazon EC2, S3 Joyent, Rightscale SalesForce.com Google Documents Virtual servers, virtual storage, and networking Infrastructure
Cloud Computing • Characteristics… • XaaS: Everything (X) as a Service • Accessible through the Internet (Web 2.0) • Available on demand • Pay-per-use billing model • Advantages: • No capacity planning • No upfront commitment • Elastic infrastructure • Ease of management
Cloud Computing • Characteristics… • Threats… and negative sides? • Security & Confidentiality • Performance • Vendor lock-in Where is my data? Who owns it? Who has access to this information? Is the cloud really fast? Can the cloud be efficient for my applications? Can I afford to move to a proprietary platform? Are there any standards?
Cloud Computing • Open Challenges Privacy & Trust Protection of Data Cloud-based Security Threats Elasticity & Scalability Provisioning on Demans Service Integration Data Center Management Energy Efficient Computing Virtualization Formats Security Application Development Virtualization Billing, pricing, Service Level Agreement, Quality of Service Interoperability Exchange Formats Reference Models Organizational aspects Legislation Social aspects ….. Standardization And more.. Market-Oriented Computing
Cloud Computing • Some pointers… • email@example.com • http://twitter.com/cloudcomp_group • http://sites.google.com/site/cloudcomputingwiki/ • http://wiki.cloudcommunity.org/ • http://en.wikipedia.com/cloud_computing • http://www.cloudbus.org/
Cloudbus Toolkit • Overview • Collection of technologies for…. • These comprise: • Simulation tools for Cloud based environments • Middleware for Cloud Computing applications • Market based resource brokering and allocation algorithms • Algorithms and technologies for efficient VM management • …. Market-oriented Cloud Computing Cloudsim Aneka & Workflow Engine Metabroker …..
Cloudbus Toolkit • Aneka • Aneka is a middleware for developing Cloud Computing flexible and scalable applications Reconfigurable Runtime & Development Environment Aneka Extensible ….. Customizable
Aneka • What Aneka does? • I need to harness a huge computational power for my application…. • I want to develop distributed applications easily… • I have a limited budget to execute my applications…. • I don’t care about operating systems, platforms, and hardware… Aneka provides a runtime environment that manages a collective of physical and virtual machines, which are coordinated transparently to applications for large computations Aneka provides an easy interface for developing distributed applications by using common and intuitive abstractions in distributed computing Aneka provides algorithms and strategies allowing users to complete their application in time and within their possible expenditure Aneka provides a portable runtime environment that can be deployed on different operating systems and hardware (desktop PCs, clusters, datacenters, Clouds…)
Aneka • Uh?.. Did u say applications? • Scientific Computing • Distributed evolutionary computation • Protein structure prediction • Medical imaging • Commercial applications • Gaming • Train design rendering • Education • Image filtering & rendering • Distributed system teaching
Aneka • In practice… • Aneka (sanskrit): Many, in many ways, many in one…. • This means: • Multiple programming models • Multiple application scenarios • Multiple deployment models • Multiple platforms and environments
Aneka • Architecture Cloud Middleware SLA & QoS User Management Application Management Dynamic Provisioning Aneka Application Development Applications • & Services Scheduling & Execution Monitoring Billing Dist. Threads MapReduce … Bag of Tasks Platform Infrastructure Clusters Datacenters Desktop PCs Public Clouds
Scheduling Execution Storage Persistence Monitoring Directory Characterization Service Negotiation Resource Allocation Core Security Communication Layer Aneka • Container • cloud building block Aneka Cloud
Aneka • Services – cloud logic • Scheduling Services: • Basic scheduling services ( failed task rescheduling, different algorithms) • Execution coordination • Execution Services: • Basic sandboxing • Support for legacy code execution (PSM) • Storage Services: • Multi-protocol based storage service (FTP) • Security Services: • Authentication, admission control, user profiling • Management Services • Logging, • Resource membership and monitoring • Administration: user and application management • High availability
Aneka • Programming Models • Express distributed/cloud applications • Aneka Application Model • Application & Units of work • Runtime services • API for development • Bag of Tasks • Distributed Threads • MapReduce
scheduling execution coordination client component abstractions units of execution Aneka • Programming Models Execution services Execution services Execution services infrastructure Scheduling services end users Aneka Master Node Aneka Slave Nodes Application Manager
scheduling TaskSchedulerService TaskExecutionService execution Task Manager coordination client component abstractions units of execution Aneka • Programming Models The Task Model defines model Bag of Tasks applications: Independent units of work No sequencing or order Submit, execute, collect infrastructure infrastructure end users end users Task Task Programming Model
Aneka • Services • Security Service • Aneka has is own security model • Users: execute applications and access resources • Groups: categorize users and groups • Resources: represent execution nodes • Permissions: associated to groups • Integrity, Confidentiality, and Availability • Symmetric Cryptography • Security manager • Communication among nodes is secured • Security key chosen during node deployment
Aneka • Services • Naming Service • Each service in Aneka… • … is registered in a global and distributed catalog • … is made available and directly reachable from users • Membership Catalogue • One for each node • Master – slave model: • Local membership keeps track of local services • Query for remote services are forwarded • Several lookup modes: • Name, nodes, etc..
Aneka • Services • Storage Support • The primary purpose for storage is providing support to the execution of applications. • As a result, the Storage Service is mostly concerned with file transfer. • Aneka provides a flexible infrastructure for storage: • Multi-protocol support (FTP, S3. …) • Completely transparent to users.. • Experimental • Integration of a Google-like DFS for data intensive apps.
Aneka • Services • Storage Support Storage Service IFileTransferFactory IFileChannelController IFileHandler Execution Service Application Aneka Scheduling Node Aneka Execution Node Aneka Storage Node FileTransferManager FileTransferManager IFileHandler IFileHandler
Aneka • Services • Dynamic Provisioning • Aneka can leverage IaaS solutions to scale on demand and support increased load on the system • Dynamic Provisioning is the module that makes Aneka elastic, and it involves: • Scheduling Service • Resource Provisioning Service • Provisioning Policies • Resource Pools • The system is highly customizable in … • … the way it reacts to the load (scheduling service) • … the way it handle provisioning (provisioning service) • … the way it selects the resource pool (provisioning policies) • … the number and types of IaaS providers supported (resource pools)
Aneka • Services • Dynamic Provisioning Scheduling Algorithm (Resource Provisioning Aware) ResoucePool ResoucePool Manager ResoucePool Scheduling Context ResoucePool ResouceProvisioning Service GoGrid Amazon EC2 Xen Server Scheduling Service
Aneka • Extensibility • Develop your own services • Load balancing • Advanced (cooperative, federated) scheduling • Develop your own programming model • Distributed objects (actors) • MPI support • Develop your own Aneka-based system • Grid / Cloud • …
Conclusions • Characteristics of DSs in Aneka • Heterogeneity • Support for different Hardware and Oss • Clusters, Desktop Machines • Windows, Linux, Mac OS X • Transparency • Infrastructure layout is transparent to app developers • Openness & Interoperability • Pluggable architecture based on services • Web-service interfaces for some services • Fault Tolerance • High-Available infrastructure • Failure masking: message retransmission, job rescheduling • Scalability • Dynamic provisioning