OpenNaaS completex - i2CAT JIRA

hedgebornabaloneΛογισμικό & κατασκευή λογ/κού

2 Δεκ 2013 (πριν από 3 χρόνια και 6 μήνες)

69 εμφανίσεις

www.opennaas.org

http://www.opennaas.org/

Overview

Objective


Create

a
project

neutral software
community

that

allows

several

stakeholders

to

contribute

and
benefit

from

a
common

NaaS

software
stack
.


Enable

research

to

happen

on

top of
it
.


And
leverage

past

research


Base
functionality

that

can be
trusted

on

a
production

environement
.


Users

increase

life

span


Open
Source
,
LGPLv3,
Open
community
.




OpenNaaS


On

demand

(
commonly

user
-
triggered
)
provisioning

of
network

resources
.


Recursive

delegation

of
access

right

over

managed

resources
.


Lightweight

Abstracted

operational

model
.


Decoupled

from

actual
vendor
-
specific

details
.


Flexible
enough

to

accomodate

diferent

designs

and
orientations


Fixed

enough

so
common

tools

can be
build

and
reused

across

plugins
.


Security


Lifecycle


Monitoring


Deployment

and
upgrade
.


NaaS

Lightweight

Abstraction

Capability

Resource

RPC

OpenNaaS Stakeholders


Network Operators
with an interest on
NaaS:


NREN.


Cloud
Datacenter
.


New services for ISP’s.


ISV and integrators


Swiss Army Knife for
middleware
-
network
integration.


Developers and
network researchers.

FUSE
ServiceMix

OpenNaaS

Platform

Default
plugins

Third

Party

plugins


-

Research

+


-

Stability

+

OTS
distribution

OpenNaaS

Platform


For

NOC
users


Coherent

UX
for

NOC
users
.


A single CLI.


Unified

management

of
resources

and
its

capabilities
.


Unified

application
/
resource

lifecycle
.


Unified

security

and ACL
management

(TODO).


Enterprise

level

base
technologies

mean:


Server
monitoring


Clustering


Remote

management


Easy

upgrade

management


Extensibility

and
template

customization
.


Out
-
of
-
band
reporting

of
errors
.


OpenNaaS

Platform


For

developers


Modern
IDEs

available


Maven

based

build

system

and
dependency

management


Plugin

howto

documentation


Several

available

open
source

plugins

as
reference


An

open
OpenNaaS

community


Comercial
support

for

underlying

technologies


Leverage

building

blocks,
both

using

existing

resources

or

for

creating

new
ones
.


Resource

Respository

and Manager


Protocol

Session

Manager


Standard
Capabilities


Protocol

Endpoints

for

remoting

(SOAP, REST,
etc
).


Platform

manager


*.
apache.org

deployment

ready

libraries
.


While

plugins

can
chose

to

use
technologies

like

hibernate
,
spring

or

ESB,
they

don’t

have

to
.

Platform

CLI

Persistence

Queue

Resource


Manager

. . .


Security

Protocol Session Manager

Resource Lifecycle

Resource Layer

Router Resource

Network Resource

BoD

Resource

Optical Switch
Resource


. . .

Remoting

Scripting

GUI

OpenNebula

OpenStack

NS

NSA (NSI)

. . .

3P
Extensions

3P
Middleware

PLATFORM

Platform


Based on a component container:


OSGi

R4 (Apache Felix’s implementation)


Mainly, this allows:


The application is split components, and they are:


S
tarted and stopped at runtime.


Which can be explored and manipulated via the CLI


Which can be handled programmatically (via events, RPC,
etc
).


I
nstalled and updated from a (remote) repository.


Components are isolated from each other.


Classes from a bundle cannot import from other bundles.


Unless explicitly allowed to.


There is a service publication/consumption registry.


On
OSGi
, these components are called bundles.


A bundle is a jar + some special lines on the MANIFEST.


Features.xml

allow to specify a version of the platform +

an initial set bundles.

Bundle

lifecycle


Component

Architecture

Operating

System

Java 6 VM

OSGi

Container

OSGi

FUSE

NaaS

NaaS

Plug
-
in

FUSE

NaaS

NaaS

Plug
-
in

Plug
-
in

FUSE

NaaS

Plug
-
in

Plug
-
in

Plug
-
in

Bundles

OSGi

Distrib
.

Exported

functionality

Deploy
,
Upgrade
, Monitor,
etc

Modern IDE,
Remote

debug
,
etc

Unix, Linux,
MacOS
, Windows,
etc

Fuse
ServiceMix


Standards

based


Open
Source


State

of
the

art
technologies


OSGi
, Java 6, Apache SF,
Scala
,
etc


Roll
your

own


Componetized

compilation

of Apache
library
.


Documented


Comercial
support
.


Portable


Linux, Windows, Mac.


Not

always

the

latest

library

versions



OpenNaaS

Platform


Embeddable


Component

of a
bigger

middleware


i.e. a
cloud

management

infrastructure
.


L
-
GPL.


Defined
,
known

roadmap
.


Reusable
concepts

across

plugins


Resource
,
Capability
,
Action
,
Lifecycle
.


A
command

toolset

is

built

around

this

concepts


Etc


Provides

an

abstracted

view

of NaaS
resources
.


That

the

Resources

layer

will

leverage
.




OpenNaaS
Platform

Base
Components


Platform

Manager


Allows

to

query

some

underling

platform

information
.


Memory

usage


OS


Java
version


Etc…


Was

used

as a
remoting

PoC

in IaaS.


Right

now

is

disabled
.

OpenNaaS
Platform

Base
Components


Protocol

Session

Manager


Implements

the

ProtocolSession

abstraction


Currently

we

have

two

implementations
:


Netconf

(IRTF).


Onesys

(EMS Module).


Manages

ProtocolSession

lifecycle
.


Performs

pooling
,
if

possible
.


Reuses

sessions

(
keeps

them

alive

for

some

minutes).


ProtocolSession

events
.


Isolates

ProtocolSession

usage

from

credentials
.


Loads

and
pairs

ProtocolSessionContexts

with

appropiate

device
.


t
ransport
://
user:password@ip:port
/
subsystem

OpenNaaS
Platform

Base
Components


Leverage

building

blocks:


Resource

Respository

and Manager


Handles

lifecycle

and
persistence
.


Protocol

Session

Manager


Mantains

protocol

session

lifecycle
,
with

an

eye

on

session

reusability
.


Additional

protocols

can be
added


Standard
Capabilities


Queue

(
for

configuration

deployment
).


Protocol

Endpoints

for

remoting

(SOAP, REST,
etc
).


Platform

manager


*.apache.org
deployment

ready

libraries
.


While

plugins

can
chose

to

use
technologies

like

hibernate
,
spring

or

ESB,
they

don’t

have

to
.

OpenNaaS Platform Base Components


ResourceManager
.


Manages the persistence and lifecycle of
Resources
.


There is a
ResourceManager

repository implementation for
each
ResourceType
.


Which acts as a Factory for that type.


Implements also
Profiles
, we’ll see that later.


Which brings us to the NaaS abstraction reusable concepts;


Resource


Resource Type


Capability


Action


ActionSet


Profile

OpenNaaS Platform Base Components


Reusable concepts:


A
Resource

represents a manageable unit inside the NaaS
concept.


A
Resource

can be a switch, a router, a link, a logical router, a
network, etc…


Instantiations of a
Resource Type
.


Resource
s share a common lifecycle:


Initialized,
loaded in memory.


Active,

accepts calls.


Capability

Resource

RPC

OpenNaaS Platform Base Components


Reusable concepts:


A
Resource

represents a
manageable unit inside the NaaS
concept.


A
Resource

is decomposed in:


A model


An array of
Capabilities.


The
ResourceType

defines:


Which model.


Which
Capabilities

are allowed.


Which
Capabilities

are actually
callable will depend on that actual
Resource

instance.

»
The
Resource
can be
interrogated.


Capability

Resource

RPC

OpenNaaS Platform Base Components


Reusable concepts:


A
Capability

is an interface to a given
Resource

functionality.


I.e. for a router:


OSPF, IPv6, Create/manage logical routers,
etc.


Callable by the user.


This interface is, as the Model,
abstracted and vendor neutral.


Internally the
Capability
, is
implemented for each kind of device.


Hence, some capabilities might not be
available for some vendors.


The
Capability

is the
HAL

limit for
OpenNaaS.

Capability

Resource

RPC

OpenNaaS Platform Base Components


Internally,
Capabilities

need a way to
abstract implementation details of the
devices.


They use
Actions.


An
Action

is a vendor (and protocol)
specific implementation of a
configuration modification.


It can be
Queue’d
.


It can be undone (rollback).


Actions are grouped into an
ActionSet
.


On
Action.execute
(), the action usually
asks to the
ProtocolSessionManager

for an appropriate
ProtocolSession

to
communicate with the device.

Capability

Resource

RPC

OpenNaaS Platform Base Components


An
Action

can be implemented
from scratch:


Just fill the execute() method with
some code.


Or reused from some adaptors
we have.


Most importantly,
netconf

actions
are very XML
-
intensive.


They use a digester rule set for
XML processing


And Velocity for XML creation.

Capability

Resource

RPC

OpenNaaS Platform Base Components


A
Profile

is an alternative set of
ActionSets
.


They can be deployed at runtime to
the container.


On creation time, a
Profile

can be
specified for a given
Resource
.


When looking for an
Action

to execute
(or queue),
Capabilities

will first check
the
Profile
for an alternative
Action
.


If found, it will be executed instead of
the default one.


This is a mechanism for OpenNaaS
administrators to modify behaviour of
default capabilities.

Capability

Resource

RPC

OpenNaaS Platform Base Components


The
QueueManager

is used to
stack all
Actions

to be executed.


All modifications can be done over
the network at once.


Allows rollback of
Actions
.


Objective: the network
-
wide
rollback of actions.


It is both a Capability and a OSGI
Service.


The user can check and manipulate
the Queue as a
Capability
.


The rest of
Capabilities

can work
with it via the
OSGi

registry.


Saves a lot of serialization.

Capability

Resource

RPC

RESOURCES

NaaS

Lightweight

Abstraction

Capability

Resource

RPC

Default
plugins


Under

development
:


L1
plugin


Manage

ROADMs


L2 / L3
plugin


Manage

Routers
,
Switches
.


Eth
,
switching
,
vlans
,
mpls
.


IP (4/6),
Routing
,
Firewall.


Network
Resource
.


Heavy WIP.


Mid

term
:


OpenStack

NetworkService

API


Drop
-
in
replacement

for

default
functionality


Leverage

L1/L2/L3
plugin

functionality


OpenNebula

3.0
integration
.


NSI
Implementation
.


Porting

Harmony
.


OpenFlow

controller
.


Capabilities Map

29

Third

Party

Plugins


Can be
closed

source
.


Possibility

to

be
hosted

on

private

repositories
.


And
both

be
installed

with

a
plaltform

well
-
known

command


feature:install

http://net.biz/3rd.party.feature


Can
leverage

both

platform

functionality

and
default
plugins
.


NETWORK INTELIGENCE

See

Mantychore FP7 use cases

ROADMAP

Roadmap


TNC 2012 Demo


Remoting


Security


Queue Refactor +
MetaQueue


RMC integration (GUI)


Fully capability coverage for Router Resource.


BACKUP

35