EGI-InSPIRE
rOCCI – Providing Interoperabilitythrough OCCI v1.1 Support for
OpenNebula
Boris Parák, CESNET
OpenNebula Conf 2013, Berlin, DE 1EGI-InSPIRE RI-261323 www.egi.eu
Overview
∙ Introduction∙ What is OCCI?∙ rOCCI Framework∙ rOCCI-{core, api, cli}∙ rOCCI-server∙ Plans for the Future
OpenNebula Conf 2013, Berlin, DE 2EGI-InSPIRE RI-261323 www.egi.eu
Introduction
What is CESNET?∙ association of universities and the Academy of Sciences of
the Czech Republic∙ responsible for the National Research and Education
Network (NREN)∙ operates the National Grid Infrastructure (NGI_CZ)
What is EGI Federated Cloud?∙ federation of private academic clouds and virtualised
resources∙ built around open standards (OCCI, CDMI, X.509, ...)∙ focusing on the requirements of the scientific community
OpenNebula Conf 2013, Berlin, DE 3EGI-InSPIRE RI-261323 www.egi.eu
What is OCCI? I.
∙ OCCI → Open Cloud Computing Interface∙ OGF standard (GFD.183 - 185)∙ text-based protocol and API focusing on interoperability in
the cloud∙ originally designed for IaaS clouds, but is extensible∙ works with resources, links, mixins and actions
OpenNebula Conf 2013, Berlin, DE 4EGI-InSPIRE RI-261323 www.egi.eu
What is OCCI? II.
OpenNebula Conf 2013, Berlin, DE 5EGI-InSPIRE RI-261323 www.egi.eu
What is OCCI? III.
OpenNebula Conf 2013, Berlin, DE 6EGI-InSPIRE RI-261323 www.egi.eu
What is OCCI? IV.
POST /compute/ HTTP/1.1
Category: compute;scheme="http://.../occi/infrastructure#";class="kind"
Category: debian7;scheme="http://.../infrastructure/os_tpl#";class="mixin"
Category: small;scheme="http://.../infrastructure/resource_tpl#";class="mixin"
X-OCCI-Attribute: occi.compute.hostname="TestROCCI1"X-OCCI-Attribute: occi.core.title="TestROCCI1"
OpenNebula Conf 2013, Berlin, DE 7EGI-InSPIRE RI-261323 www.egi.eu
rOCCI Framework
What is rOCCI?∙ a framework implementing OCCI in Ruby∙ a client providing shell-based user interface∙ a project distributed as three components:
– rOCCI-core– rOCCI-api– rOCCI-cli
∙ a tool providing interoperability (ON, OS, Synnefo, . . . )
What is rOCCI-server?∙ a server-side implementation leveraging rOCCI∙ a bridge between OpenNebula and the world of OCCI
OpenNebula Conf 2013, Berlin, DE 8EGI-InSPIRE RI-261323 www.egi.eu
rOCCI-core
∙ a collection of classes and helpers∙ includes a parser for:
– text/plain– text/occi– application/occi+json– OVF/OVA (only basic features)
∙ focuses on Occi::Core and Occi::Infrastructure
OpenNebula Conf 2013, Berlin, DE 9EGI-InSPIRE RI-261323 www.egi.eu
rOCCI-api
∙ implements transport-level functionality– HTTP(S)– Advanced Message Queuing Protocol (AMQP)
∙ implements modular authentication– Basic/Digest– X.509/VOMS– Keystone
∙ provides high-level API for developers (in Ruby)
OpenNebula Conf 2013, Berlin, DE 10EGI-InSPIRE RI-261323 www.egi.eu
rOCCI-cli
Provided you have Ruby 1.9+ and Rubygems:
# ruby rubygems ruby-dev libxslt1-dev# libxml2-dev libexpat1-dev$ gem install occi-cli$ occi --help
$ occi --action create --resource compute \--mixin os#debian7 --mixin resource#small \--attributes title=’rOCCI_VM’ \--context public_key=’file:///tmp/id_rsa.pub’
OpenNebula Conf 2013, Berlin, DE 11EGI-InSPIRE RI-261323 www.egi.eu
rOCCI-server I.
∙ a server-side implementation leveraging rOCCI∙ a bridge between OpenNebula and the world of OCCI∙ stateless proxy delegating authentication, authorization
and functionality to OpenNebula∙ supports HTTP-compatible authentication methods such
as Basic, Digest or X.509 (VOMS)
OpenNebula Conf 2013, Berlin, DE 12EGI-InSPIRE RI-261323 www.egi.eu
rOCCI-server II.
OpenNebula Conf 2013, Berlin, DE 13EGI-InSPIRE RI-261323 www.egi.eu
rOCCI-server III.
OpenNebula Conf 2013, Berlin, DE 14EGI-InSPIRE RI-261323 www.egi.eu
Plans for the Future I.
∙ extend rOCCI-core with the latest developments in OCCI∙ extend rOCCI-cli with dynamic linking capabilities for
attaching block storage or network interfaces to runninginstances
∙ extend rOCCI-cli with action support on various resources
∙ finish re-implementing the new rOCCI-server∙ provide detailed installation & user documentation
OpenNebula Conf 2013, Berlin, DE 15EGI-InSPIRE RI-261323 www.egi.eu
Plans for the Future II.
OpenNebula Conf 2013, Berlin, DE 16EGI-InSPIRE RI-261323 www.egi.eu
Plans for the Future III.
Key design elements:∙ support for multiple CMFs (cloud stacks)∙ modular (pre)authentication∙ real authentication left to the backend CMF∙ backend interface implemented with Axiom
– relational algebra on structured data– possibility to “merge” multiple data sources
∙ core functionality provided by rOCCI-core
OpenNebula Conf 2013, Berlin, DE 17EGI-InSPIRE RI-261323 www.egi.eu
Summary
1. OCCI is a generic boundary-level interoperability protocol2. rOCCI is an OCCI framework written in/for Ruby3. rOCCI includes a shell-based user interface4. rOCCI-server provides OCCI support for OpenNebula
OpenNebula Conf 2013, Berlin, DE 18EGI-InSPIRE RI-261323 www.egi.eu
References
What to read if you want to know more?∙ http://occi-wg.org
∙ https://www.egi.eu/infrastructure/cloud
∙ https://github.com/gwdg/rOCCI
∙ https://github.com/gwdg/rOCCI-server
Do you have any questions?∙ ask us directly at [email protected] or [email protected]
∙ ask in our mailing lists [email protected] [email protected]
OpenNebula Conf 2013, Berlin, DE 19EGI-InSPIRE RI-261323 www.egi.eu