osm in practice...microservice architecture to enable extensibility osm stack lxd nbi elk stack...

26
© ETSI 2018 OSM IN PRACTICE Gerardo García (Telefónica), Technical Steering Committee Gianpietro Lavado (Whitestack), MON Module Development Lead

Upload: others

Post on 06-Feb-2021

10 views

Category:

Documents


0 download

TRANSCRIPT

  • © ETSI 2018

    OSM IN PRACTICEGerardo García (Telefónica), Technical Steering Committee

    Gianpietro Lavado (Whitestack), MON Module Development Lead

  • © ETSI 2018

    OSM Release THREE Overall Architecture (OLD)

    2

    Highly functional, but with some opportunities for enhancement:

    ● NBI tightly coupled to SO

    ● Difficult to add new modules to extend functionality

  • © ETSI 2018

    Architectural decisions1) Keep layered communication to VIMs and VNFs

    NFVI

    NS#1VNF 1

    VNF 2

    VNF 3

    VCA ROCharm

    VIM controller

    VIM controller

    VIM controllers

    Charm

    CharmOVIMplugin

    OSTplugin

    VMWplugin

    AWSplugin

  • © ETSI 2018

    Architectural decisions2) Decouple NBI from NS and VNF LCM

    SO

    NBI

    LCM

  • © ETSI 2018

    Architectural decisions3) Message bus, common DB and object storage

    Object Storage

    CommonDatabase(NoSQL)

    Kafka busNBI

    Any other module

  • © ETSI 2018

    OSM Release FOUR Architecture

    6

    Kafka bus

    Object Storage

    Common Services

    ROVCA

    OSM IM

    OSM IM

    CommonDatabase(NoSQL)

    OSM IM

    NBIOSM IM

    osmclient

    New OSM’s NBI

    MON

    LCM

    light-ui

    N2VC

    POL

    Integrated components for policy, fault and performance management

    Lightweight Life Cycle Manager (LCM)

    Unified Northbound Interface (SOL005-based), decoupled from LCM

    Complete control through CLI and stand-alone new UI

    Common DB and object storage

    5

    3

    2

    1

    OSM IM Message bus for asynccommunications

    4

    6

  • © ETSI 2018

    Extending the plugin model to other modules

    ROOVIMplugin

    OSTplugin

    VMWplugin

    AWSplugin

    MONOST

    pluginVMWplugin

    AWSplugin

    Common DBMONGO

    pluginFS

    plugin

    NBI RBACKeystone

    plugin

    Message busKafkaplugin

    FSplugin

    Object StorageCephplugin

    FSplugin

    VNF metricsplugin

    ODLplugin

    ONOSplugin

    Floodl.plugin

    ODL WIMplugin

    TAPIplugin

  • © ETSI 2018

    Microservice architecture to enable extensibility

    OSM stack

    LXD

    NBI

    ELK stack

    Perf. Mon. stack

    VCA(juju controller)

    MONGO

    Kafka

    Zookeeper

    LCM RO RO-DB

    POL

    MON

    Light-UI

    Elasticsearch Logstash Kibana

    Prometheus Grafana

    Add here your stack

    docker X docker ynetOSMdocker network

  • © ETSI 2018

    From design to operation

    9

    Design Onboarding Instantiation NS LCMService

    Operation

  • © ETSI 2018

    DesignDescriptors and packages, result of the design phase

    10

    VNF package

    VNFD

    VNFartifacts

    Additional metadata?

    Resource description aspects

    VNF resource orchestration info(EPA resources and internal

    connectivity)

    Management procedures

    VNF primitives- Day-1- Day-2

    Charms

    Icon, README, etc.

    Additional info

  • © ETSI 2018

    DesignDescriptors and packages, result of the design phase

    11

    NS package

    NSD

    NSartifacts

    Additional metadata?

    Resource description aspects

    NS topology

    Management procedures

    NS primitives- Day-1- Day-2

    Charms

    Icon, README, etc.

    Additional info

  • © ETSI 2018

    DesignWhat is a charm?

    • A charm is a set of actions and hooks• Actions are programs• Hooks are events/signals

    • For commodity and reusability, those actions and hooks are grouped in layers

    • A charm will always have one layer:• That layer has some actions and hooks• In addition, that layer can import other layers

    • The resulting charm has all the actions and hooks from all the layers joined together, plus additional default actions and hooks (e.g. ‘config’ action)

    12

  • © ETSI 2018

    DesignCharm design

    NEW LAYER

    red greenlayers

    ‘config’ action

    actions

    hooks

  • © ETSI 2018

    DesignImplementing actions

    @when('actions.touch')

    def touch():

    err = ''

    try:

    filename = action_get('filename')

    cmd = ['touch {}'.format(filename)]

    result, err = charms.sshproxy._run(cmd)

    except:

    action_fail('command failed:' + err)

    else:

    action_set({'outout': result})

    finally:

    clear_flag('actions.touch')

  • © ETSI 2018

    DesignCharm build

  • © ETSI 2018

    Primitives are mapped to charm actions in the descriptor

    16

    vnfd:

    ...

    vnf-configuration:

    juju:

    charm: aaa

    initial-config-primitive:

    - seq: '1'

    name: getConfigurationFromEMS

    parameter:

    - name: ems-ip-address

    value: '/home/ubuntu/first-touch'

    config-primitive:

    - name: touch

    parameter:

    - name: filename

    data-type: STRING

    - name: addUser

    parameter:

    - name: userName

    data-type: STRING

  • © ETSI 2018

    Onboarding

    17

    Kafka bus

    Object Storage

    Common Services

    ROVCA

    OSM IM

    OSM IM

    CommonDatabase(NoSQL)

    OSM IM

    NBIOSM IM

    osmclient

    New OSM’s NBI

    MON

    LCM

    light-ui

    N2VC

    POL

    OSM IM

    CRUD operations overVNF and NS packages godirectly to the CommonDB and Object storage, without travelling through the Kafka bus

  • © ETSI 2018

    NS instantiationDeployment + Day 0 + Day 1

    18

    Kafka bus

    Object Storage

    Common Services

    ROVCA

    OSM IM

    OSM IM

    CommonDatabase(NoSQL)

    OSM IM

    NBIOSM IM

    osmclient

    New OSM’s NBI

    MON

    LCM

    light-ui

    N2VC

    POL

    OSM IM

    1. NBI creates record in common DB

    2. NBI publishesmessage in Kafka:instantiate NS_id

    3. LCM consumes themessage and deploysthe NS

    4. Deployment andday-0 configuration

    5. Day-1 configuration(parametrized)

  • © ETSI 2018

    Service Operation

    19

    Kafka bus

    Object Storage

    Common Services

    ROVCA

    OSM IM

    OSM IM

    CommonDatabase(NoSQL)

    OSM IM

    NBIOSM IM

    osmclient

    New OSM’s NBI

    MON

    LCM

    light-ui

    N2VC

    POL

    OSM IM

    1. NBI publishesmessage in Kafka

    2. Consumer module depends on thespecific primitive(day-2 operationprimitives are consumed by LCM, on-demand metricexport and alarmconfiguration are consumed by MON.

  • © ETSI 2018

    Release FIVE preview onnew monitoring capabilities

    20

  • © ETSI 2018

    Instantiation process summary

    21

    ROmodule

    LCMmodule

    NBI

    OSM CLI OSM Light UIUnified NBI lets users manage

    the NS lifecycle

    MONmodule

    POLmodule

    starts monitoring VNF according to descriptor!

    creates alarms through MON based on thresholds

    takes care of VIM resources

    takes descriptors and sends instructions to the bus

    OSM KAFKA BUS

  • © ETSI 2018

    Demo 1: Metrics collection and visualization

    22

    MONmodule

    (1) MON collects VIM/VNF metrics and

    stores in TSDB

    (2) Prometheus reads and stores selected VNF metrics

    (3) Grafana presents

    selected VNF metrics

    Optional tools

    OSM TSDB

    VNFmetrics

    through N2VC-VCAmodules

  • © ETSI 2018

    Demo 2: Auto-scaling action!

    23

    MONmodule

    (1) MON notifies POL about an alarm being triggered

    OSM KAFKA BUS

    POLmodule

    (2) POL submits an action to the bus based on descriptor logic (i.e. SCALE)

    LCMmodule

    (3) LCM instructs the system to generate the scaled instances

    OPTIONAL toolsAn optional ELK

    (or similar) logging analytics stack can inform about anything going on through the bus or logs

  • © ETSI 2018

    Auto-scaling description

    24

    VNF Descriptor indicates based on which metric and how to scale VDUs

  • © ETSI 2018

    Conclusions

    25

    • Regarding monitoring, OSM Release FIVE will:

    • Monitor VNF metrics

    • Support auto-scaling actions

    • Include its own TSDB

    • Enhance integration with external logging analysis stacks like ELK

  • © ETSI 2018

    Thank you!Questions?

    [email protected]@whitestack.com

    mailto:[email protected]:[email protected]