19
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

rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula

  • Upload
    netways

  • View
    2.005

  • Download
    0

Embed Size (px)

DESCRIPTION

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.

Citation preview

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