connecting to the clouds

38
Raffaele Di Fazio Connecting to the Clouds Cloud Brokers and OCCI.

Upload: dash

Post on 23-Feb-2016

29 views

Category:

Documents


0 download

DESCRIPTION

Connecting to the Clouds. Cloud Brokers and OCCI. Overview. The Broker, components and architecture jOCCI : an OCCI Java implementation The “Connector Project” A full overview. Disclaimer. My visibility on the projects was limited. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Connecting to the Clouds

Raffaele Di Fazio

Connecting to the CloudsCloud Brokers and OCCI.

Page 2: Connecting to the Clouds

Raffaele Di Fazio

Overview

• The Broker, components and architecture

• jOCCI: an OCCI Java implementation

• The “Connector Project”

• A full overview

November 2012 - 2

Page 3: Connecting to the Clouds

Raffaele Di Fazio

Disclaimer

• My visibility on the projects was limited.

• I was just asked to design and develop with a general overview

of the goals.

• I do NOT have any details about European projects involved

with the cloud broker nor any of the other parts I will show to

you.

November 2012 - 3

Page 4: Connecting to the Clouds

Raffaele Di Fazio

The Broker

November 2012 - 4

Page 5: Connecting to the Clouds

Raffaele Di Fazio

The Broker: a cloud perspective

• A cloud broker is an intermediary between the customer and a

cloud provider.

• The goal of a Cloud Broker is:

• To be able to provide a unified interface to manage multiple

cloud providers.

• To simplify the choice for the customer.

• To try to understand the need of the customer and to find the

provider that best suits its needs.

November 2012 - 5

Page 6: Connecting to the Clouds

Raffaele Di Fazio

The Broker: a cloud perspective

• Can have different goals based on the user request:

• Try to minimize the costs.

• Try to give the fastest service (i.e. deploying in EU instead of

US)

• The Broker, essentially: propose the user a service.

November 2012 - 6

Page 7: Connecting to the Clouds

Raffaele Di Fazio

Cloud Platforms

• At the beginning: one player (Amazon)

• Now: multiple players, variegated offer.

• Several cloud providers:

• Amazon

• VCloud

• HP Cloud

• Eucalyptus

• …

November 2012 - 7

Page 8: Connecting to the Clouds

Raffaele Di Fazio

Amazon Web Services

November 2012 - 8

Page 9: Connecting to the Clouds

Raffaele Di Fazio

HP Cloud

November 2012 - 9

Page 10: Connecting to the Clouds

Raffaele Di Fazio

OpenStack

• A scalable “operating system” for cloud computing.

• It is used to control “compute, network, storage” resources.

• A “compute” is any information processing resource (i.e. a VM).

• It can be used to control cloud infrastructures. It is a software

suite.

• This leads to multiple custom clouds ( see

http://www.openstack.org/user-stories/)

November 2012 - 10

Page 11: Connecting to the Clouds

Raffaele Di Fazio

Differences btw cloud providers

• Interfaces

• APIs

• Costs

• Way of managing the VMs (i.e. different functionalities)

• Even the terminology used can be different.

• GOAL: simplify this mess!

November 2012 - 11

Page 12: Connecting to the Clouds

Raffaele Di Fazio

Broker + OCCI + Proactive

November 2012 - 12

OCCI Server ProActive

Cloud Provider

Broker

Page 13: Connecting to the Clouds

Raffaele Di Fazio

Broker + OCCI + Proactive: 2nd architecture

November 2012 - 13

OCCI Server Broker

Cloud Provider

ProActive

Page 14: Connecting to the Clouds

Raffaele Di Fazio

Broker + OCCI + Proactive: expanded

November 2012 - 14

OCCI Server ProActive Broker

jOCCI PROCCICloud

connectors

Page 15: Connecting to the Clouds

Raffaele Di Fazio

JOCCI: AN OCCI JAVA LIBRARY

November 2012 - 15

Page 16: Connecting to the Clouds

Raffaele Di Fazio

Dictionary… pay attention!

• OCCI has a particular naming convention we must follow.

• There are very common words that are keywords when

speaking about OCCI.

• Kind, Link, Resource, Attributes, Category are some of them.

• Other classes are: Parser, Server, Model.

• Please be careful!

November 2012 - 16

Page 17: Connecting to the Clouds

Raffaele Di Fazio

OCCI

• OCCI: Open Cloud Computing Interface

• It is a standard for interoperability between cloud platforms.

• GOALS:

• Interoperability: between cloud providers

• Portability: avoid vendor lock-in

• Integration: possibility to support multiple platforms

• Extensibility

November 2012 - 17

Page 18: Connecting to the Clouds

Raffaele Di Fazio

OCCI continued

• Currently focus on IaaS.

• An extension to support PaaS, SaaS is possible.

• It is a set of specifications:

• Core: Model specification

• Rendering: How to structure the OCCI requests

• …

• IN PRACTICE: RESTful protocol for cloud management tasks

November 2012 - 18

Page 19: Connecting to the Clouds

Raffaele Di Fazio

OCCI Core Model

November 2012 - 19

Page 20: Connecting to the Clouds

Raffaele Di Fazio

OCCI implementation – core

• Main classes reflect the OCCI core model:

• Category: basic classes to identify OCCI types

• Kind: type identification system for all the Entities.

• Mixin: extension mechanism for a Kind.

• Action: …

• Entity: abstract type of resource and link types

• Resource: represent a concrete resource and represents

real world instances of VMs, etc.

• Link: association between two resources.November 2012 - 20

Page 21: Connecting to the Clouds

Raffaele Di Fazio

jOCCI

• It is a OCCI server written in Java.

• Born because of the necessity to replace occi4java

• Unsupported, unmaintainable, ugly code.

• Inspired by the design of rOCCI, a ruby based OCCI

implementation.

November 2012 - 21

Page 22: Connecting to the Clouds

Raffaele Di Fazio

jOCCI design goals

• Be extensible

• Model expressed by means of JSONs, defined at runtime.

• Extendible, following OCCI principles.

• No assumption on the backend (more about this later)

• Only supporting OCCI core model by default

November 2012 - 22

Page 23: Connecting to the Clouds

Raffaele Di Fazio

jOCCI implementation

• Made up of two components:

• OCCI Core: contains the definitions of all the classes

representing the OCCI core specifications

• OCCI Server: contains the server, the parser and all the

other classes with functionalities to handle OCCI

requests/responses.

• This makes the development of the specification (CORE) and

the server, decoupled.

November 2012 - 23

Page 24: Connecting to the Clouds

Raffaele Di Fazio

jOCCI core – features

• jOCCI implements only the core classes of the OCCI Model.

• Rough example:

• It defines what are the fields of the Kind class

• It does NOT define which types of Kind we can use (i.e.

Compute)

• This approach makes jOCCI independent from a specific

definition of the instances.

November 2012 - 24

Page 25: Connecting to the Clouds

Raffaele Di Fazio

jOCCI – Server

• Developed using the following technologies:

• Apache Tomcat

• RESTEasy

• Jackson (JSON parsing)

• Completely independent of the backend implementation. This is

loaded at runtime (more about this later).

November 2012 - 25

Page 26: Connecting to the Clouds

Raffaele Di Fazio

jOCCI - Server

• REST interfaces supporting HEAD, GET, POST, PUT, DELETE

HTTP methods.

• OCCI requests are HTTP requests that can be expressed in

different formats.

• Request formats: text/occi, text/plain, application/json, etc.

• The server should be flexible enough to support these different

types.

November 2012 - 26

Page 27: Connecting to the Clouds

Raffaele Di Fazio

Example of OCCI request

• curl -X POST --header 'Content-type:text/occi' --header 'X-

OCCI-Attribute: method=start'

http://localhost:8080/jocci/compute/8432c343-15ec-40ff-bb19-1a

7062a1aa5b?action=start --header 'Category: start; scheme="

http://schemas.ogf.org/occi/infrastructure/compute/action#";

class="action"' -u demo:demo

November 2012 - 27

Page 28: Connecting to the Clouds

Raffaele Di Fazio

Broker + OCCI + Proactive: an Expanded view

November 2012 - 28

OCCI Server ProActive Broker

jOCCI PROCCICloud

connectors

Page 29: Connecting to the Clouds

Raffaele Di Fazio

PROCCIConnecting to ProActive:

November 2012 - 29

Page 30: Connecting to the Clouds

Raffaele Di Fazio

PROCCI

• Procci was created to be integrated with occi4java to allow

ProActive to process OCCI requests.

• These requests are mainly intended to be used to manage

virtual machines.

• The final goal of this interconnection is to be able to speak with

the broker.

November 2012 - 30

Page 31: Connecting to the Clouds

Raffaele Di Fazio

PROCCI

• jOCCI parses OCCI requests.

• Methods exposed by PROCCI are called directly by jOCCI.

• Under the hood, a job is created and it is submitted to the

scheduler.

• After the job is executed, a response is shown to the user

through jOCCI by means of HTTP response.

November 2012 - 31

Page 32: Connecting to the Clouds

Raffaele Di Fazio

PROCCI Connection

• When jOCCI is started, it executes the setup phase.

• In each Action class attach the method implemented by the

backend.

• This allow us to plug the actions to be executed.

• Does not force jOCCI to know the backend.

November 2012 - 32

Page 33: Connecting to the Clouds

Raffaele Di Fazio

PROCCI connection

November 2012 - 33

Page 34: Connecting to the Clouds

Raffaele Di Fazio

THE CONNECTOR PROJECT

November 2012 - 34

Page 35: Connecting to the Clouds

Raffaele Di Fazio

Broker + OCCI + Proactive: an Expanded view

November 2012 - 35

OCCI Server ProActive Broker

jOCCI PROCCICloud

connectors

Page 36: Connecting to the Clouds

Raffaele Di Fazio

The connector project

• We wanted to write several connectors to be able to connect to

multiple cloud providers.

• Connectors are fundamental for the broker.

• It must talk with the cloud service providers.

• Technically they are built on top of APIs to connect to the cloud

providers.

• Not much more to say here!

November 2012 - 36

Page 37: Connecting to the Clouds

Raffaele Di Fazio

A complete example

• A user submit a OCCI request to start an already created virtual

machine.

• jOCCI receives the request. Once processed, it calls PROCCI.

• PROCCI creates a job. The job is submitted to ProActive

scheduler.

• The job is executed. A remote cloud provider is called using a

connector.

November 2012 - 37

Page 38: Connecting to the Clouds

Raffaele Di Fazio November 2012 - 38

That’s it! Thank you!