occiware project at eclipsecon france 2016, by marc dutoo, open wide
TRANSCRIPT
OCCIwareOne Cloud API To Rule Them All
Marc Dutoo, Open Wide
Etienne Juliot, Obeo
EclipseCon France, ToulouseJune, 09th 2016
OverviewSpeaker
– Marc Dutoo, Head of R&D Dept. at Open Wide, a Smile group company● OCCIware coordinator, Data / Cloud expert
– Etienne Juliot, Obeo Founder● Eclipse Sirius expert
Schedule
– 7' the need for a Cloud consumer platform– How did we get there ?
● 7' OCCI(ware) introduction● 7' Eclipse Modeling approach● Demo : 7' tooling, 7' runtime
Once upon a time...
• In a hole in the ground there lived a hobbit.• On his shoulders the fate of the world came to rest.• In order to save creation, he had to cross the world and drop a ring in a volcano to rid it of evil.
Wait a minute.
Err... sorry, this would have been easy peasy, but that's folktales. Let me try again :
• In order to save creation, he had to monitor energy consumption everywhere on Earth to overturn climate change.
Now we're in the real world here.
Monitor energy consumption
• Not only per user, or per utility provider company,• but per city, region, country,
- and per activity, usage, number of children, amount of hair on feet would most probably help also.
Multi-point of view data... that calls for an open world approach of data – that's Linked Data.
Linked Data & Datacore
• Linked Open Data ? That's Open Data sets that can be cross-queried because they have been semantically reconciled together• Enter Ozwillo Datacore :
- it holds data that is shared between applications of the Ozwillo app store : geographical elements, organizations, reusable app business data…- it stores it in a shardable replicated MongoDB and is built in Apache CXF / Spring & Java- it provides it through a REST API that is both web-friendly and semantic web-compatible thanks to JSON-LD, and helps developers with a Playground.
Linked Data as a Service (LDaaS)
But not your dad's Linked Data. If you want it to save the world, it has to scale up the whole way :
• at Infrastructure level - that's IaaS : provision enough CPU & storage, for each city• at Platform level - that's PaaS : deploy java code and mongo replicated cluster shards on each of them• at Software level - that's SaaS : configure Linked Data governance i.e. models and kinds of use :
- high write, non-robust data collection (home energy consumption sensor notifications)- read/query-heavy data analysis (aggregation per energy consumer, provider, city, region, country)
Cloud Computing - The solution
• Luckily for our hobbit, there are well-known standards, solutions and tools.
Cloud Computing – more problems
And that's not like choosing one single provider for all layers would solve the problem :• even if there are a few PaaS+SaaS providers (G..., C... F...),• nowadays hybrid cloud is not a question anymore but the rule (save for too critical or not at all critical stuff),• (which brings the interesting question of multi Cloud monitoring)• and our hobbit still has to do the SaaS layer and the whole LDaaS assembly himself.
Cloud Computing – down the hobbit hole
But our hobbit just wants to be a Cloud consumer !• he doesn't want to become a Cloud provider ! there are already plentiful expert ones out there, he doesn't want to deploy Cloud provider solutions, nor use the specific expert tool required for each of them.
- He just wants to smoke a good pipe !
• He'd need his own tools, but he doesn't want to write them.
=> Isn't there a Cloud consumer platform out there ? Hello ?
A light of hope
• But in this fragmented landscape of layers, APIs and implementations, each coming with its own tools and paradigm,•there is hope to be able to control them.•to bind them and rule them all.•(did I mix up the script here ?)
OCCIware Product
OCCIware Studio
Design, Verify, Simulate & DevelopEverything as a Service
OCCIware Runtime
Deploy, Execute & ManageEverything as a Service
OCCI specifications
OCCI 101OCCI Core (metamodel)
Network
Container
Environment
Compute- memory- started- start()
Database
Application
Storage
Router
Deployable
NetworkLink
DatabaseLink
EnvironmentLink
Everything is Resource or Link, be it at …
Platformlevel
Infrastructurelevel
Applicationlevel
OCCI Extensions (models)
OCCIware Factsheet
• 72 man year, 5,6m€ budget, sponsored by French ministry of Industry over 2015-2018• 3 academics, 5 companies, 2 associations• To lower Cloud Computing adoption costs and break up barriers between its various implementations, layers, domains
- Especially Data Center, deployment, Big Data, Linked Data
• By bringing to OGF's Open Cloud Computing Interface (OCCI) the power of formal languages and model driven engineering (MDE)
OCCIware Objective
Managing Everything as a Service in the clouds
Software as a Service (SaaS)
Big Data as a Service (BDaaS)
Linked Data as a Service (LDaaS)
Platform as a Service (PaaS)
Container as a Service (CaaS)
Infrastructure as a Service (IaaS)
DataCenter as a Service (DCaaS)
Network as a Service (NaaS)
Occi tools creation with EMF
Ecore
Your Domain Model
Your Model
EClass, EReference
Occi standard
Occi Extension
Occi Configuration
Entity, Kind, Link
Docker, Infrastructure
Server 1, VM Foo
Occi tools creation with EMF
Occi standard
Occi Extension
Occi Configuration
Entity, Kind, Link
Docker, Infrastructure
Server 1, VM Foo
Ecore
Your Domain Model
Your Model
?
EClass, EReferenceEcore
EClass, EReference
Domain Model « Promotion »
Occi.ecore
MyExtension.occi
Entity, Kind, Link
Docker, Infrastructure
EcoreEClass, EReference
Ecore
MyExtension.ecore
MyConfiguration.docker
EClass, EReference
Server 1, VM Foo
Docker
OCCI vs Ecore
● OCCI is a meta-meta model but we don't want to reinvent the wheel :
1) Creation of your OCCI Extension conformed to OCCI.ecore
2) Automatic generation of yourextension.ecore domain model !!
3) Creation of your OCCI Configuration conformed to yourextension.ecore
OCCIware Studio Factory
<<E>>DesignerSkeleton
e.ecore
<<E>>Extension
e.genmodel
e.odesign
Occie2Ecore
Ecore2Sirius EMF genmodel
EMF Java code
EMF Java code
EMF Java code
<<E>>Configuration
<<E>>Configuration
<<E>>Configuration
Making this process generic
● Generate a metamodel (ecore, genmodel, code) from an OCCI Extension
● Generate the skeletton of a Sirius designer, ready to be customized
Linked Data Connector – code action by calling Datacore API using its client
OCCI attributes and links are auto injected :
Linked Data Demo – Datacore before update
Data project geo_analytics_1 doesn't exist :
Debugging a query shows that data is accessed through the mongo cluster's primary :
Linked Data Demo – Datacore after update
Data project geo_analytics_1 has been created :
Debugging a query shows that data is accessed through the configured mongo secondary :
Upcoming in OCCIware
- Studio : more generators & connectors, improve existing ones, integrate simulator, decision-making tool… - Complete erocci-dbus-java bridge & HTTP bridge, so that Studio-generated connectors can be deployed within the Studio, on erocci or standalone indiscriminately - Runtime : complete OCCIfication of ActiveEon ProActive Multi-IaaS connector and Roboconf PaaS manager - Develop specified OCCI monitoring solution and OCCI administration console's live Playground - Develop use cases : Datacenter, Big Data, Deployment, Linked Data - … and contribute back to OCCI 2.0 standard !