Www.opennaas.org Overview.

35
www.opennaas.org http:// www.opennaas.org/ Overview

Transcript of Www.opennaas.org Overview.

Page 1: Www.opennaas.org  Overview.

www.opennaas.orghttp://www.opennaas.org/

Overview

Page 2: 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.

Page 3: Www.opennaas.org  Overview.

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.

Page 4: Www.opennaas.org  Overview.

NaaS Lightweight Abstraction

Capability

Resource

RPC

OpenN

aaS

Page 5: Www.opennaas.org  Overview.

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

- Re

sear

ch +

- Stability +

OTS

dist

ributi

on

Page 6: Www.opennaas.org  Overview.

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.

Page 7: Www.opennaas.org  Overview.

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.

Page 8: Www.opennaas.org  Overview.

Platform

CLI

Pers

iste

nce

Que

ue

Reso

urce

Man

ager

. . .

Security

Protocol Session Manager

Resource Lifecycle

Resource Layer

Rout

er R

esou

rce

Net

wor

k Re

sour

ce

BoD

Res

ourc

e

Opti

cal S

witc

h Re

sour

ce

. .

.

Remoting

Scrip

ting

GU

I

Ope

nNeb

ula O

penS

tack

N

S

NSA

(NSI

)

. . .

3P Extensions

3P Middleware

Page 9: Www.opennaas.org  Overview.

PLATFORM

Page 10: Www.opennaas.org  Overview.

Platform

• Based on a component container:– OSGi R4 (Apache Felix’s implementation)

• Mainly, this allows:– The application is split components, and they are:

• Started and stopped at runtime.– Which can be explored and manipulated via the CLI– Which can be handled programmatically (via events, RPC, etc).

• Installed 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.

Page 11: Www.opennaas.org  Overview.

Bundle lifecycle

Page 12: Www.opennaas.org  Overview.

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

Bund

les

OSG

i Dist

rib.

Exported functionality

Deploy, Upgrade, Monitor, etc

Modern IDE, Remote debug, etc

Unix, Linux, MacOS, Windows, etc

Page 13: Www.opennaas.org  Overview.

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…

Page 14: Www.opennaas.org  Overview.

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.

Page 15: Www.opennaas.org  Overview.

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.

Page 16: Www.opennaas.org  Overview.

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.• transport://user:password@ip:port/subsystem

Page 17: Www.opennaas.org  Overview.

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.

Page 18: Www.opennaas.org  Overview.

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

Page 19: Www.opennaas.org  Overview.

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.

• Resources share a common lifecycle:– Initialized, loaded in memory.– Active, accepts calls.

CapabilityResource

RPC

Page 20: Www.opennaas.org  Overview.

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

ResourceRPC

Page 21: Www.opennaas.org  Overview.

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.

CapabilityResource

RPC

Page 22: Www.opennaas.org  Overview.

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

ResourceRPC

Page 23: Www.opennaas.org  Overview.

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

ResourceRPC

Page 24: Www.opennaas.org  Overview.

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

ResourceRPC

Page 25: Www.opennaas.org  Overview.

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.

CapabilityResource

RPC

Page 26: Www.opennaas.org  Overview.

RESOURCES

Page 27: Www.opennaas.org  Overview.

NaaS Lightweight Abstraction

Capability

Resource

RPC

OpenN

aaS

Page 28: Www.opennaas.org  Overview.

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.

Page 29: Www.opennaas.org  Overview.

29

Capabilities Map

Page 30: Www.opennaas.org  Overview.

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.

Page 31: Www.opennaas.org  Overview.

NETWORK INTELIGENCE

Page 32: Www.opennaas.org  Overview.

See Mantychore FP7 use cases

Page 33: Www.opennaas.org  Overview.

ROADMAP

Page 34: Www.opennaas.org  Overview.

Roadmap

• TNC 2012 Demo• Remoting• Security• Queue Refactor + MetaQueue• RMC integration (GUI)• Fully capability coverage for Router Resource.

Page 35: Www.opennaas.org  Overview.

BACKUP

35