POMBA Definition 

What is POMBA - Post Orchestration Model Based Audit

Architecture Intent

High level view of POMBA components


POMBA Architecture    


Design

Design Principles

  • Reusable Components

POMBA is developed based on microservices-based architecture to ensure pluggable capability into other Data Integrity sub-system

POMBA uses other microservices initially designed for A&AI component promoting them as a platform modules.

  •  Event-Driven

POMBA is event-driven application to ensure auditing without affecting existing systems.

  • Extensibility

POMBA is implemented based on Context Builders Framework to ensure that core audit process is decoupled from the target system integration specifics.

            

Sequence Diagrams


POMBA Seq Diagram


Process Flow

  1. Service Instantiation completion event is published
  2. Context Aggregator receives the event
  3. Context Aggregator initiates calls to various Context Builders to get normalized data from platform components.
  4. Context Aggregated payload is published into event bus
  5. Rule Processing engine receives that event and activates audit rules processing
  6. The result of audit rules processing is published into Event Bus
  7. Audit Result payload is consumed by synapse service
  8. The result is inserted into data storage / ES via search service
  9. Reporting tool such as Kibana displays  the data

Sub-Components

POMBA leverages context builders approach to provide pluggable framework of accessing various ONAP components to retrieve the data. 

It allows to encapsulate the complexity of reaching a component as well as implement the mapping and transformation component’s related data to common model consumed by audit process. 

SDC Context Builder 

The purpose of SDC Context Builder is to encapsulate the complexity of interaction with SDC component .


High level view of SDC Context Builder mS:

SDC Context Builder


A&AI Context Builder

The purpose of A&AI Context Builder is to encapsulate the complexity of interaction with A&AI component .

High level view of A&AI Context Builder mS:


AAI Context Builder


See also AAI Context Builder

SDN-C Context Builder

SDN-C Context Builder is aimed to encapsulate the functionality of accessing SDN-C via RESTful APIs and transform the data into common model structure used by audit process.


SDN-C Context Builder

Network Discovery Context Builder

The Network Discovery Context Builder is aimed to encapsulate the functionality of accessing the Openstack API via RESTful APIs and transform the data into common model structure used by audit process.



Network Discoery Context Builder


Context Aggregator

Context Aggregator is a microservice that orchestrates the calls to various context builders which are pluggable into POMBA upon receiving the Orchestration Completion Event from Message Router.

Context Aggregator is configured to subscribe to the Message Router topic.

Once new event is published – Context Aggregator executes series of RESTFull GET requests to various context builders to obtain a data (service model / service instance  / VNF instance)  stored in component data stores in a common model format, aggregates these payloads into one payload structures and publishes that payload into Message Router.


Context Aggregator

Validation Service + Rule Processing

Validation service is a core A&AI microservice which implements a rule processing engine.

POMBA configures and deploys its own instance of validation service that consumes and publishes to POMBA topics in DMaaP.

Audit rules are stored in groovy format file. The files are injected into a service and rules are processed by the engine.

Currently audit rules are hand crafted, but eventually will be sourced from well formed ASDC models and from Data Dictionary.  Existing rules are listed here.

POMBA will eventually support the mechanism of separating rules from validation service code, thereby allowing rule updates without a rebuild or restart of the validation service.

The text of the message displayed for each violation will be kept separately to allow text change without touching the code


Validation Service


Search Data Service

The Search Service microservice was created to be an abstraction layer above indexable storage engine (i.e Elasticsearch).

Using search data service allows to leverage any search & storage engine (currently it supports Elasticsearch).

All requests which result in Elasticsearch CRUD (Create, Read, Update, Delete) operations should be made to SDS using its API, at which point SDS will convert the requests to align with Elasticsearch's API and forward them on.


Search Data Service

DMaaP

See POMBA DMaaP

Deployment Model

Containers

IDNameport NodePortpod dependenciesAttributes

ONAP referencing dependencies

Incoming API

ONAP ref dependencies

Outgoing API

Notes
1pomba-data-router9502 30249dmaap, pomba-search-data
/data-router/v1/orchestration-event-service/orchestration-eventdmaap APIs, /services/search-data-service/v1/search/indexes 
 2pomba-search-data9509 n/aelastic-search 
 /services/search-data-service/v1/search/indexeselasticSearch APIs
 3pomba-es 9200n/an/a 
 n/a n/a
pomba-aaictxbuilder9530 n/aaai:8443
/aaicontextbuilder/service/context  A&AI APIs
 5 pomba-sdncctxbuilder9530 n/a

aai:8443

sdnc:8282


/sdnccontextbuilder/service/context  SDN-GC APIs
 6 pomba-sdcctxbuilder9530 n/asdc-be:8443
/sdccontextbuilder/service/context  SDC BE APIs
 7 pomba-contextaggregatorn/an/a

pomba-aaictxbuilder:9530

pomba-sdcctxbuilder:9530

pomba-sdncctxbuilder:9530

dmaap


 dmaap APIsdmaap APIs 
 8 pomba-validation-service9529n/a dmaap
dmaap APIs dmaap APIs 
 9dcae-context-builder 9540 
DCAE, Vertica DB ? 
 /<serviceContext>/service/context  

10  pomba-networkdiscoveryctxbuilder9530 n/a

pomba-networkdiscovery:9530

pomba-servicedecomposition:9532


 /ndcontextbuilder/service/context  

11pomba-networkdiscovery953130299n/a
/network-discovery/v1/network/resourceOpenstack APIs
12pomba-servicedecomposition9532n/aaai:8443
/service-decomposition/service/context

13pomba-kibana560130234q




Key APIs

See Also



  • No labels

3 Comments

  1. I wonder if it is simpler/better that Context Builders publish data directly to event bus for Validation to consume? Further, if Context Builders get instructions from event bus, we can even eliminate Context Aggregator.  

    1. Hi Guobiao

      The idea was to avoid interaction between context builders and event bus, so context builders should implement only the logic related to communication with the particular component and handle a data transformation

      Context Aggregator is the abstract orchestration layer to control the flow to context builders

      Hope it makes sense

      1. Also, the intent for POMBA's use of Validation rules is to compare attributes between different components of ONAP (ex: SDC vs AAI).  It would make things overly complicated if Validation had to correlate individual contexts from DMaaP before executing rules.