eclipsecon 2016 - occiware : one cloud api to rule them all

78
OCCIware One Cloud API To Rule Them All Marc Dutoo, Open Wide Etienne Juliot, Obeo EclipseCon France, Toulouse June, 09th 2016

Upload: marc-dutoo

Post on 23-Feb-2017

572 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

OCCIwareOne Cloud API To Rule Them All

Marc Dutoo, Open Wide

Etienne Juliot, Obeo

EclipseCon France, ToulouseJune, 09th 2016

Page 2: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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

Page 3: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Once upon a time...

Page 4: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Once upon a time...

• In a hole in the ground there lived a hobbit.

Page 5: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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.

Page 6: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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.

Page 7: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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.

Page 8: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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.

Page 9: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data, as a Service

Page 10: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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)

Page 11: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Cloud Computing - The solution

• Luckily for our hobbit, there are well-known standards, solutions and tools.

Page 12: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

The solution The problem

• Oops… too many actually.

Page 13: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Cloud Computing – the problem

Page 14: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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.

Page 15: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

From a single Cloud provider...

Page 16: EclipseCon 2016 - OCCIware : one Cloud API to rule them all
Page 17: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

… to a noodle plate

Page 18: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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 ?

Page 19: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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 ?)

Page 20: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

A light of hope

• One ring one Cloud API to rule them all.

Page 21: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Cloud Studio, with Docker

Page 22: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Custom Studio for LdaaS (Linked Data as a Service)

Page 23: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Docker Studio

IaaS - Virtual Box machine

Page 24: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Docker Studio

IaaS - Open Stack machine

Page 25: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Docker Studio

… started !

Page 26: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Studio

SaaS - Linked Data with dedicated analytics entry point

Page 27: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Studio

… using a specific mongodb replica within its cluster !

Page 28: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

How did we get there ?- 1. OCCI(ware) introduction

Page 29: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

OCCIware Product

OCCIware Studio

Design, Verify, Simulate & DevelopEverything as a Service

OCCIware Runtime

Deploy, Execute & ManageEverything as a Service

OCCI specifications

Page 30: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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)

Page 31: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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)

Page 32: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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)

Page 33: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

How did we get there ?- 2. Eclipse Modeling approach

Page 34: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Cloud Designer – modeleur de configuration générique

Page 35: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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

Page 36: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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

Page 37: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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

Page 38: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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

Page 39: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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

Page 40: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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

Page 41: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Making this process generic

Page 42: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Making this process generic

Page 43: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

How did we get there ?- 3. Step-by-step demo

Page 44: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

- File > New > Other…

- Cloud Designer > OCCI Extension Project

Page 45: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

New Linked Data OCCI Extension - wizard

Page 46: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

OCCI Extension designer

Page 47: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Extension – adding kind

Page 48: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Extension – adding attribute

Page 49: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Extension – adding parent

Page 50: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data – 3 target scenarii

3.2.1.

Page 51: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Extension – modeling configuration of all 3 target scenarii

1. 2.3.

Page 52: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Extension – alternate DSL editor

Page 53: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Extension – generate...

Page 54: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Extension – generated files

Page 55: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Extension – generated doc

Page 56: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Extension – generated runtime configuration

Page 57: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Extension – register

Page 58: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

.ecore > generate Linked Data Designer

Page 59: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Designer – Sirius editor

Page 60: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Designer – adding Drag'n'Drop from another Cloud layer configuration - 1

Page 61: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Designer – adding Drag'n'Drop from another Cloud layer configuration - 2

Page 62: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Running Linked Data Designer

Page 63: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Designer – original LDProjects

Page 64: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Designer – adding analytics-optimized LDProject

Page 65: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Demo – Docker Studio

Page 66: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Demo – configuring 1 java node & a 3-node mongodb cluster in Docker Studio

Page 67: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Demo – Docker OCCI configuration

Page 68: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Designer – drag'n'dropping Infrastructure configuration from other file

Page 69: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Designer – drag'n'dropped Virtual Machine from Infrastructure config.

Page 70: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Designer – selecting secondary mongo to use for analytics instead of primary

Page 71: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

- File > New > Other…

- Cloud Designer > Java Connector Project

Page 72: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Connector – code setup of Datacore API's Java client

Page 73: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Connector – code action by calling Datacore API using its client

OCCI attributes and links are auto injected :

Page 74: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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 :

Page 75: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Linked Data Demo – doing « update » action

Page 76: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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 :

Page 77: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

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 !

Page 78: EclipseCon 2016 - OCCIware : one Cloud API to rule them all

Any questions ?Thanks for your attention !

Contact : http://www.occiware.org - marc.dutoo at openwide.fr

Source : https://github.com/occiware

Partners :

Sponsors :DGE (PIA) & System@tic, SCS, Images & Réseaux, PICOM, Minalogic clusters