open cloud computing interface

15
Open Cloud Computing Interface Jean Parpaillon Inria Research Engineer OGF-44, EGI Spring Conference, May 2015, Lisbon

Upload: jean-parpaillon

Post on 13-Apr-2017

210 views

Category:

Software


5 download

TRANSCRIPT

Page 1: Open Cloud Computing Interface

Open Cloud Computing

Interface

Jean Parpaillon

Inria Research Engineer

OGF-44, EGI Spring Conference, May 2015, Lisbon

Page 2: Open Cloud Computing Interface

21 May 2015 OGF-44 / EGI Spring Conference

REST API : a user point of view

Page 3: Open Cloud Computing Interface

21 May 2015 OGF-44 / EGI Spring Conference

REST API : a user point of view

● Data format

– JSON format– XML format– Scalar data types (string, integer, float, etc)

● Data access protocol

– Filtering– Sorting– Pagination– Authnz (tokens, etc), return codes, etc.

● Finally...

– Application level : data types (structures, relations, etc)

Page 4: Open Cloud Computing Interface

21 May 2015 OGF-44 / EGI Spring Conference

REST API : a user point of view

● Data format

– JSON format– XML format– Scalar data types (string, integer, float, etc)

● Data access protocol

– Filtering– Sorting– Pagination– Authnz (tokens, etc), return codes, etc.

● Finally...

– Application level : data types (structures, relations, etc)

Schemas ?

One to rule them all ?

A single meta-model ?

Page 5: Open Cloud Computing Interface

Let's speak about a standard ?

Page 6: Open Cloud Computing Interface

21 May 2015 OGF-44 / EGI Spring Conference

Let's speak about a standard for REST

● A standard

– Is not a catalog of schemas– Is not a constraint for developers– Must be implemented (implementable)

● A good standard

– Should allow to concentrate on the design, not the implementation details

– Allow to build an ecosystem– Allow to accelerate the development, not the contrary

Page 7: Open Cloud Computing Interface

21 May 2015 OGF-44 / EGI Spring Conference

The Open Cloud Computing Interface

● OCCI is typed

– A ressource is an instance of a kind– A kind is a named list of typed attributes and actions

● e.g. : compute : # cores (integer), RAM (float), etc– Attribute : name, type, default value, mutability, etc.– Action : an invocable operation on a ressource– Kinds are inheritable

Page 8: Open Cloud Computing Interface

21 May 2015 OGF-44 / EGI Spring Conference

The Open Cloud Computing Interface

● OCCI is extensible

– Resource can be associated with mixins– Mixin: a named set of additional attributes and actions

● e.g. : IPNetworkInterface adds IP, netmask, etc to a network interface

– User Mixin : aka « tags »● e.g. : http://example.com/occi/mixins#my_project1

Page 9: Open Cloud Computing Interface

21 May 2015 OGF-44 / EGI Spring Conference

The Open Cloud Computing Interface

● OCCI is relational

– Links are ressources with additional attributes● occi.core.source : resource URI● occi.core.target : URI

– A bounded collection is a list of ressources of the same kind/mixin :

● e.g. : GET /collections/compute/– An unbounded collection is a list of ressources with same prefix :

● e.g. : GET /myresources/

Page 10: Open Cloud Computing Interface

21 May 2015 OGF-44 / EGI Spring Conference

The Open Cloud Computing Interface

● OCCI is self-described

– GET /-/ (capabilities)● List of supported kinds● List of supported mixins

– Capabilities returns collection's URL● http://schemas.ogf.org/occi/infrastructure#compute

→ /collections/compute/

Page 11: Open Cloud Computing Interface

21 May 2015 OGF-44 / EGI Spring Conference

The Open Cloud Computing Interface

● OCCI is meta-model based

– Model consistency checking– Automatic model implementation– Rendering independant

● text/plain, application/json, …– Transport independant

● HTTP, ...

Page 12: Open Cloud Computing Interface

21 May 2015 OGF-44 / EGI Spring Conference

OCCI Ecosystem

● Framework

– rOCCI (ruby)

– occi4java (not maintained)

– erocci (erlang/OTP)

● Specific implementations

– CompatibleOne

– PyOCNI

– OpenStack, OpenNebula, etc

● Limits

– Models are language/extensions/lib dependant

– See http://occi-wg/community/implementations/

● Tools

– DoYouSpeakOcci : tests

– Monitoring (Intel)

Page 13: Open Cloud Computing Interface

21 May 2015 OGF-44 / EGI Spring Conference

OCCI Infrastructure (model)

Page 14: Open Cloud Computing Interface

21 May 2015 OGF-44 / EGI Spring Conference

Infrastructure OCCI Model Instance

occi.storage.size = 100 000

storage1 : Storage

occi.compute.architecture = 'x64'occi.compute.cores = 4occi.compute.hostname = 'vm1'occi.compute.memory = 4

vm1: Computeocci.compute.architecture = 'x64'occi.compute.cores = 2occi.compute.hostname = 'vm2'occi.compute.memory = 16

vm2: Compute

occi.network.vlan = 12occi.network.label = 'private'occi.network.address = '10.1.0.0/16'occi.network.gateway = '10.1.255.254'

network1 : Network

IPNetworking

mixin

occi.storagelink.deviceid = 'nfs :...'occi.storagelink.mountpoint = '/mnt/scratch'

StorageLink

occi.storagelink.deviceid = 'nfs :...'occi.storagelink.mountpoint = '/mnt/scratch'

StorageLink

occi.networkinterface.mac = 'aa:bb:cc:dd:ee:11'occi.networkinterface.address = '10.1.0.100/16'occi.networkinterface.gateway = '10.1.255.254'occi.networkinterface.allocation = 'static'

NetworkInterface

occi.networkinterface.mac = 'aa:bb:cc:dd:ee:11'occi.networkinterface.address = '10.1.0.100/16'occi.networkinterface.gateway = '10.1.255.254'occi.networkinterface.allocation = 'static'

NetworkInterface

IPNetworkInterface IPNetworkInterface

mixin mixin

Page 15: Open Cloud Computing Interface

21 May 2015 OGF-44 / EGI Spring Conference

Questions / Feedback

[email protected]