Top Banner
EGI-InSPIRE rOCCI – Providing Interoperability through OCCI v1.1 Support for OpenNebula Boris Parák, CESNET OpenNebula Conf 2013, Berlin, DE 1 EGI-InSPIRE RI-261323 www.egi.eu
19

rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

Nov 18, 2014

Download

Technology

NETWAYS

OCCI (Open Cloud Computing Interface ) [1] is an open protocol for management tasks in the cloud environment focused on integration, portability and interoperability with a high degree of extensibility. It is designed to bridge differences between various cloud platforms (or cloud middleware) and provide common ground for users and developers alike.

The rOCCI framework [2], originally developed by GWDG [3], was written to simplify the implementation of the OCCI 1.1 protocol in Ruby and later provided the base for a working client and server implementation targeting OpenNebula as its primary back-end cloud platform. The initial server-side implementation provided basic functionality and served as a proof of concept when it was adopted by the EGI Federated Cloud Task Force [4] and chosen to act as the designated VM management interface. This led to further funding from EGI-InSPIRE [5] and involvement of CESNET [6].

This talk aims to provide basic information about the OCCI protocol, introduce its implementation in rOCCI, describe and/or demonstrate some of the functionality provided by rOCCI client and rOCCI-server in concert with OpenNebula. It also briefly examines its use in the EGI FedCloud environment and explores the possibility of further integration with
OpenNebula as a part of the ON ecosystem or even as an integral part of OpenNebula itself in the future. All this with interoperability in mind.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

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

Page 2: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

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

Page 3: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

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

Page 4: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

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

Page 5: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

What is OCCI? II.

OpenNebula Conf 2013, Berlin, DE 5EGI-InSPIRE RI-261323 www.egi.eu

Page 6: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

What is OCCI? III.

OpenNebula Conf 2013, Berlin, DE 6EGI-InSPIRE RI-261323 www.egi.eu

Page 7: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

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

Page 8: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

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

Page 9: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

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

Page 10: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

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

Page 11: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

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

Page 12: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

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

Page 13: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

rOCCI-server II.

OpenNebula Conf 2013, Berlin, DE 13EGI-InSPIRE RI-261323 www.egi.eu

Page 14: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

rOCCI-server III.

OpenNebula Conf 2013, Berlin, DE 14EGI-InSPIRE RI-261323 www.egi.eu

Page 15: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

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

Page 16: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

Plans for the Future II.

OpenNebula Conf 2013, Berlin, DE 16EGI-InSPIRE RI-261323 www.egi.eu

Page 17: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

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

Page 18: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

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

Page 19: rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

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