BRIEFING ABOUT MOSAIC Dana Petcu Institute e-Austria Timisoara, West University of Timisoara http://web.info.uvt.ro/~petcu MOSAIC: OPEN SOURCE API & PLATFORM FOR MULTIPLE CLOUDS MARKETING MOTTO: “FLYING THROUGH THE CLOUDS” 7/25/2013 API spec API spec 0101 1001 0101 1001 Cloud Summer School, Almere 1. a tool for developing portable Cloud-applications which can consume hardware and software resources offered by multiple Cloud providers; 2. a brokerage system to support the decision of Cloud service provider selection at the deployment stage. 3. an open-source PaaS that can be easily deployable by service providers and which can be customized and enhanced by service providers; Application Portability! 2 MOSAIC AS R&D COLLABORATION EFFORT www.mosaic-cloud.eu Second University of Naples, Italy 2. Institute e-Austria Timisoara, Romania 3. European Space Agency, France 4. Terradue SRL, Italy 5. AITIA International Informatics, Hungary 6. Tecnalia, Spain 7. Xlab, Slovenia 8. University of Ljubljana, Slovenia 9. Brno University of Technology, Czech Republic September 2011: 1st API implementat. (Java) September 2012: 1st stable PaaS, 2nd API impl. (Python) March 2013: Full software package Cloud Summer School, Almere 1. 7/25/2013 Consortium: 3 SCENARIO FOR MULTIPLE CLOUDS 7/25/2013 Select 1 IaaS-Cloud at a time Deploy 01011 Control appl & resources 01011 001 001 4 Cloud Summer School, Almere Component based application Communications via messages Event-driven programming style OVERVIEW PAPER 7/25/2013 Cloud Summer School, Almere Experiences in Building a mOSAIC of Clouds Petcu et al, Journal of Cloud Computing: Advances, Systems and Applications 2013, 2:12 doi:10.1186/2192-113X-2-12, May 24, 2013 http://www.journalofcloudcomputing.com/content/2/ 1/12/abstract Part of the FINAL REPORT! 5 Cloud-enabled applications mOSAIC’s proof-of-the-concept applications Intelligent maintenance syst Information extraction Model exploration service Analysis of structures Earth Observation applications mOSAIC PaaS and IaaS Workbench Semantic engine Python APIs Frontends (cmdl, wui) Erlang APIs Eclipse plug-ins Matchmacker&Mapp er Annotator of Clouds Examples Cloud Agency Client Ontology Templates Portable Testbed Clust Semantic extractor Platform’s core components Controller Infrastructure support Application service components Cloud Agency Mediator SLA framework Component hub Meter Benchmark Resource allocator Naming service Application support components Deployable COTS Credential service Drivers mOS DFS & HDFS support Execution engine Cloud Summer School, Almere https://bitbucket.org/mosaic/ Semantic tools Java APIs Software platform support 7/25/2013 Application support Application tools API implementations Archiver Brokering system Broker mechanisms XCloud SLA lookup Vendor modules Cloud adaptors Hosting services support Deployable services support Amazon CloudSigma CloudStack Eucalyptus Flexiscale GoGrid OpenStack OpenNebula NIIFI OnApp VMware DeltaCloud 6 LAYERS OF MOSAIC’ SET OF APIS (P) Connector API Interoperability API Driver API API Driver API API Component reacting to events Operations with standard type of resources Proxies generator Driver API Classical components of applications Cloud Summer School, Almere (J) Connector API 7/25/2013 (P)(P) Component Component (P) Cloudlet API (J)Component (J)Component (J) Cloudlet API API for same type of resource API 7 D.Petcu et al, Portable Cloud applications—From theory to practice, FGCS 2012 CLOUDLET AND CONNECTOR Cloudlet: Ensure language independence protocol syntax and semantic enforcements. RPC solution that abstracts addressing stubs to Driver API and proxies to Connector Behavior: event-driven, stateless Automated elasticity: no. of Cloudlet instances controlled by Container Programmable elasticity: no. of containers Functionality do not depend on no. instances Connector: Behavior: RPC Interface defining the set of events to which the Cloudlet should react Abstract the access to Cloud resources Driver API wraps the native API all resources of the same type are exposed with the same interface eg. HBase vs. Riak keyvalue store: a matter of configuration. Cloud Summer School, Almere Interoperability API 7/25/2013 8 HOW TO USE IT? Write component-based application Debug application on the desktop or on-premise server(s) Within Eclipse Use Personal Testbed Cluster using VirtualBox for the VMs Deploy application in a Cloud Languages: Java, Python, [Erlang, Node.js] Communications through message passing Respect the event-driven style of programming Cloud Summer School, Almere 7/25/2013 Assisted by Cloud Agency and Broker (with SLAs) OR Use Resource Allocator Control the application Control the life-cycle of the components (start/stop/replace) 9 TUTORIAL & DOCUMENTATION Cloud Summer School, Almere Documentation: http://developers.mosaic-cloud.eu 7/25/2013 Tutorial for the installations and first example: http://wiki.volution.ro/Mosaic/Notes/Platform/Tutorial 10 APPLICATIONS VIDEOS Note: 1. Information extraction on the open-source repository 2. Sensor data in the Intelligence Maintenance use case 3. Extra: Olaii (www.olaii.com ) RightScale + Amazon Cloud Summer School, Almere 7/25/2013 Civil engineering (Matlab @ Cloud): http://youtu.be/EztdyThs39w Earth Observation (ESA&Terradue): https://vimeo.com/64316032 Model exploration: http://youtu.be/fU8VONfg6Z0 11 EXAMPLE VIDEOS Hello example (one Cloudlet): Hello run and debug on PTC: http://youtu.be/pDrktFOMZWA Hello run on AWS: http://youtu.be/GW1WjZhJXH8 Real time feeds example (multiple Components & Cloudlets): Deploy manually component by component in AWS: http://youtu.be/uYD8sxMStz8 Package send to S3 and start of the appl: http://youtu.be/AK1LqAMjvfU Cloud Summer School, Almere 7/25/2013 12 TOOLS VIDEOS Use PTC: Vendor selection: Vendor offers: http://youtu.be/T54qh0cWroY XCloud: http://youtu.be/r3kXeBHSVF8 SLA negotiation: http://youtu.be/3X5Kih-Oi6E SLAgw & security: http://youtu.be/ZKcWhl1WG14 Usage of Cloud Agency & OpenNebula: http://youtu.be/6SBGYc7fCWA Cloud Summer School, Almere How to start the [desktop] platform: http://youtu.be/TPHHXg1ggvU How to start application on AWS: http://youtu.be/oGf2wDce-sk 7/25/2013 13 BENCHMARKS Shell scripts: CPU Network Message queues Data stores Cloud Summer School, Almere 7/25/2013 http://developers.mosaiccloud.eu/confluence/display/MOSAIC/Benchmarks 14