ONAP Architecture
ONAP Architecture
1)
For TSC Approval
Chris Donley
Casablanca Deployability Focus
Huawei Confidential
ONAP Beijing Architecture for Reference
(High-Level View with Projects)
Version 2.0.3
3/15/2018
VNF Requirements
Integration
3
ONAP Casablanca Architecture
(High-Level View with Projects)
Version 3.0.1
7/10/2018
VNF Requirements
Integration
4
Casablanca ARC Recommendations RTSA/µS
• Real-time streaming analytics
- DCAE enhancements to support real-time streaming analysis:
- Enhance DCAE collector to support high volume streaming data collection (Using Socket and/or DDS)
- Add Bulk data collector to DCAE
- Add real-time streaming analytic framework (Flink)
- Support AAF for VNF to DCAE secure communication
- DMaaP Enhancements:
- Add file routing capabilities for bulk data movement
• Microservices:
- Identify and harmonize common components
• For example, reduce number of databases in ONAP using OOM. Projects should use common DB where appropriate or clearly
state why they need an alternate approach. A lot of this work occurred in Beijing release.
- Initial support for K8S VNF in Multi VIM/Cloud
- Include OPNFV Clover project (Spinnaker) in CD pipeline (part of Integration)
- Interest (but no consensus) regarding service mesh/Istio – no recommendation for Casablanca
• Projects are free to experiment with Istio on their own.
• Constrained PoC in MSB with zero impact to other projects
Casablanca ARC Recommendations APIs & Cloud Region
• External APIs: External actors view ONAP as a black box. This should simplify the ONAP architecture/interfaces,
leveraging the APIs developed by the Ext API project (eg, MEF LSO, TM Forum etc).
- MEF: Legato, Interlude (new functionality for orchestration federation)
- TMF: the API as NBI to BSS and West-East API with another ONAP instances, include (service
catalogue-633, service inventory-638, and service order -641)
• API Improvements: Currently, ONAP internal interactions are mostly handled via REST-like APIs.
- All APIs between internal components & external APIs should be generated by Swagger,
- APIs align with ONAP-published DM,
- Messages exchanged in JSON format.
• API Versioning Support
- https://wiki.onap.org/display/DW/ONAP+API+Common+Versioning+Strategy+%28CVS%29+Proposal
• Cloud Region
- Enhancements in the interactions between OOF and Multi-Cloud for optimal selection of registered cloud
regions for ONAP workload (VNF etc.) deployment
- Multi-Cloud assists OOF by summarizing cloud-specific capability, capacity & cost metrics
- Enhancements in Multi-Cloud while maintaining the separation of concerns between the ONAP service provider
and cloud region provider.
- Multi-Cloud does dynamic modification of the cloud specific VNF deployment template based on specified intent.
Casablanca ARC Recommendations PNF, Controller, CPU
• PNF Support:
- PNF Registration
- PNF Packaging guideline and verification
- PNF orchestration and lifecycle management (including monitoring, closed loop automation, change management)
• Physical network discovery
- Register 3rd party controller in ESR
- Sync up the abstract topology in A&AI
- Onboard yaml file for the resource in the physical network in SDC.
• CCSDK Enhancements:
- Support configuration and lifecycle management
- Use single controller persona to support (L0-L7) for 5G RAN
• Multi-CPU architecture
- Develop common Docker templates which include multi-CPU arch support
Casablanca ARC Recommendations SO/SDC/ETSI
• Integrated design environment (SDC) – take incremental steps towards target:
- Run-Time Catalog
- DCAE-DS enhancements to support CLAMP flow design
- Policy Designer integration to support Control Loop MS configuration policies (Xacml) and
Operations Policies (drools).
- Flow Designer - GUI and BPMN artifact generations for SO Change Management support.
• SO Enhancements
- Extend the SO “decomposition” Building Block to support decomposition of Services that
include VNFs and PNFs.
- Model the “Service Instantiation” sequencing relationships [in SDC] that SO must enforce
among the Resources within a Service.
• ONAP to leverage ETSI SOL specifications in applicable projects
- VNF Onboarding (external to ONAP): SOL-001, SOL-004
- Plugged-in VNFM (external to ONAP): SOL-003
- SO-VFC (internal to ONAP): SOL-005
Functional Description of Project Components
Note – The detailed description of features/capabilities/interfaces for each component planned for the
Beijing release will be provided by respective projects.
SO: Service Orchestrator (1/2)
•
•
Service Management Interface
Network Service LCM Interface
Consumed interface Interfaces:
•
•
Actuation Request Interface
Service Definition Reception Interface
- VNF LCM Interface, from: Application controller
- Optimization Request Interface, from: Optimization Framework
- NF Config Interface, from: Application controller
- Inventory Service Interface, from: Available and Active Inventory
Service
Orchestrator
- Transport Service Interface, from: SDN Controller.
- Network Service LCM interface, from: Virtual Function Controller
- Service Distribution interface, from: Service Design and Creation
Service Management Interface
VNF LCM Interface
NF Config Interface
Optimization request Interface
Inventory Service Interface
Transport Service Interface
Consumed Models:
Network Service LCM interface
- Network Service Descriptor (from SDC)
SDC: Service Design and Creation (1/2)
Definition:
- SDC is the Integrated development platform for modeling.
- SDC provides set of functionalities starting from the VNF onboarding and up to the service distribution.
- SDC provides a set of modeling capabilities including VNF modeling, Service modeling.
VNF-SDK
Dmaap - As part of the work for Beijing SDC is adding the Monitoring template modeling capabilities and work flow
modeling capabilities.
Provided Interfaces:
Service Design and - External API’S
Creation - Retrieve artifacts.
- Query catalog.
- Upload artifacts.
AA&I
APPC - Distribution client
VFC - Java based client for subscribing and receiving notifications from Dmaap regarding Services.
SO
SDN-c - The client provides a way to define what artifacts need to be retrieved from the service.
CLAMP
VID
- The client downloads the artifacts from SDC and publishes a notification regarding its success or failure.
UUI - SDC parser
DCAE
- A java based parser for Tosca.
- The parser allows components to parse the CSAR artifact provided by SDC.
- Generic Designer Frame work
- Infrastructure to support easy integration of new designers into SDC.
- SDC-UI a set of ui components and styles to allow designers the same look and feel as SDC.
SDC: Service Design and Creation (2/2)
AA&I
APPC
VFC
SO
SDN-c
Consumed Models:
CLAMP - VNF packages Heat based and Tosca based
VID
UUI
DCAE
Data Collection, Analytics, and Events
Definition:
• Data collection interface
• Deployment interface DCAE is the ONAP subsystem that supports closed loop control and higher-level correlation for business and operations activities. DCAE
• Config binding interface collects performance, usage, and configuration data; provides computation of analytics; aids in trouble-shooting and management; and
publishes event, data, and analytics to the rest of the ONAP system for FCAPS functionality.
Provided Interfaces:
Data Collection, - Interface 1: Data collection interface (provided by DCAE collectors, consumed by VNFs and others)
- Interface for various FCAPS data entering DCAE/ONAP.
Analytics, and
- Interface 2: Deployment interface (provided by DCAE Deployment Handler, used by CLAMP and other northbound
Events applications/services)
- Interface for triggering the deployment and changes of a control loop
- Interface 3: Configuration Binding Service
- Interface for querying the information of the services that are registered to DCAE Consul
Consumed Interfaces:
• Data movement platform interface (DMaaP) - Interface 1: Data movement platform interface (provided by DMaaP)
•
•
Data enrichment interface (A&AI)
Service model change interface (SDC)
- Interface for data transportation between DCAE subcomponents and between DCAE and other ONAP components
• Policy interface (Policy) - This interface can also be used for publishing events to other ONAP components.
- Interface 2: Data enrichment interface (provided by A&AI)
- Interface used by DCAE collectors and analytics for querying A&AI for VNF information for the purpose of enriching collected
raw data by adding information not contained in original data.
- Interface 2: Service model change interface (Provided by SDC)
- Interface for DCAE Service Change Hander fetching control loop models and model updates.
- Interface 4: Policy interface (Provided by Policy)
- Interface for DCAE Policy Hander fetching configuration and operation policies on control loop and control loop components
from Policy.
Consumed Models: TOSCA models descripting control loop construction (e.g. collection and analytics apparatus)
Holmes
Definition:
Interface 1 - Maintains a series of rules inside to support different kinds of correlation analysis scenarios and control loops.
- It publishes the analysis result to the data bus to feed any components that need the data.
Holmes
Provided Interfaces:
- Rule Management Interface
- Provides the ability to create, updae, delete or query rules.
Interface N
Consumed interface Interfaces:
- Data pub/sub interfaces, from: DMaaP
- Service info query interfaces, from: DCAE
- Service registration and locating interfaces, from: MSB
- Inventory info query interfaces, from: A&AI
Consumed Models
VES Model
Inventory Model
Active & Available Inventory, External Registry
Definition:
• Inventory Service Interface - AAI maintains a live view of services and resources in the network, providing the state and relationships of the service components
• External Register Interface
- Maintains the view of the managed systems services and resources, as well as information of the external systems that ONAP will connect to.
- It provides real-time views of a managed systems resources, services and relationships with each other.
- AAI provides a GUI to provide users the ability to find and inspect inventory data. This includes a free-text search, inspection of specific entities
and their relationships, and aggregated views of data.
Active & Available - AAI also provides a GUI to manage the external system information, including the register/update/delete and query external system.
Inventory, External
Registry Provided Interfaces:
- Inventory Service Interfaces:
- AAI Resources REST API - Provides the ability to store, read, update inventory information
- Gizmo: a low-level REST CRUD API that provides targeted and simple access to entities, relationships, and their properties. Gizmo also
provides lightweight collections, and transactional bulk write support
- Complex Query Interface: AAI Traversal REST API – Provides the ability to perform complex traversals of the AAI Graph
Interface N - External Register interface
- Provides the ability to register/update/delete and read external system information
APPC
Consumed Models:
• TOSCA Dependency Model
• APP-C also support a variety of models, most of which are created by the APPC Configuration Design Tool (CDT). Examples are:
• Reference Data Model (json)
• VNF Capabilities Model (json)
• Template Model (json or xml)
• Parameter Definition Model (yaml)
CLAMP (1/2)
Definition:
CLAMP is a platform for designing and managing control loops.
It is used to design a control loop, configure it with specific parameters for a particular network service,
then It interacts with other systems to deploy/undeploy and execute the control loop.
Information about the CLAMP architecture and provided APIs can be found in the CLAMP User Guide and LCM & OAM API Guides on readthedocs
Provided Interfaces: (CLAMP doesn’t expose functional relates API’s except the one below, refer to CLAMP documentation for more details)
CLAMP
Interfaces Service Purpose/Comments
HealthCheck REST Health Check of CLAMP instance
CLAMP (2/2)
Consumed Interfaces:
CLAMP
Consumed Models: (No specific models were used in the above interface except for Policy(json))
Use-case UI
Definition:
• None
- Provides portal for service life cycle management
- Provides portal for VNF alarm and performance
- Provides portal for VM alarm and performance
Usecase UI
Provided Interfaces:
- None
• Catalog Synchronization Interface
• Service Orchestrator Interface
• Inventory Service Interface
• NS/VNF Onboard Interface
• Service Registration Interface
• Data Subscription Interface
Consumed Interfaces:
• None - Catalog Synchronization Interface, from: SDC
- Service Orchestrator Interface, from: SO
- Inventory Service Interface, from: Available and Active Inventory
Usecase UI - NS/VNF Onboard Interface, from: VF-C
- Service Registration Interface, from: MSB
- Data Subscription Interface, from: DMaaP
Consumed Models:
- Open Command Specification (OCS) 1.0
Microservices Bus (1/2)
Service Registration REST Interface
Service Discovery RES Interface
JAVA SDK for Service Registration/Access
Swagger SDK
Definition:
- Provides a reliable, resilient and scalable communication and governance infrastructure to
support ONAP Microservice Architecture(OMSA).
- Provides RESTFul API for service registration/discovery
Micro Services Bus - Provides JAVA SDK for service registration and access
/ Data Movement
- Provides a transparent service registration proxy with OOM-Kube2MSB
- Provides a transparent service communication proxy which handles service discovery, load
balancing, routing, failure handling, and visibility-Internal API Gateway(Implemented) and Mesh
Sidecar(WIP)
Interface N - Provides an External API Gateway to expose ONAP services to the outside world
- Swagger SDK for auto-generate the client SDK in different languages for every micro-services in
ONAP. Also it deploys the generated SDK into the nexus.
Microservices Bus (2/2)
Consumed Models:
- Swagger for RESTFul APIs definition
- Service definition in kubernetes config files for automatically service registration by kube2MSB
Optimization Framework - R2 (1/4)
Definition:
- ONAP Optimization Framework (OOF) provides functionality for creating and running optimization applications by leveraging
a policy-driven, declarative approach.
• Service Orchestrator (SO) - Supports different specializations (applications) with specific domain and optimization needs.
• Change Management Portal - Initial specialization scopes include, but are not limited to, VNF placement support via Homing and Allocation Service (HAS)
with different use cases, and change management scheduling service.
- For R2, the OOF will support vCPE use case (as a MVP).
- For R2, the OOF will demonstrate an example of Change Management Scheduling Optimization using the OOF design
framework with simple, representative constraints.
Optimization
Framework (OOF) Provided Interfaces:
- Placement Optimization Interface
- Provides functionality for the Service Orchestrator to specify placement services [vCPE use case]
- Change Management Portal Interface
- Provides functionality for calculating schedules that satisfy time constraints and conflicts [R2 focus on a
• Policy Interface demonstration of the design framework; alignment with Change Management scheduling use case]
• Inventory Service Interface
• Service/Policy Models Interface Consumed Interfaces:
• Infrastructure Metrics Interface - Policy Interface, from: Policy
- Inventory Service Interface, from: Available and Active Inventory
- Service/Policy Models Interface, from: SDC
- Infrastructure Metrics Interface, from: Multi Cloud
Consumed Models:
- Policy Models (constraints) and License Models from: SDC
- Infrastructure Metrics Models, from: Multi Cloud
Optimization Framework - R3+ (2/4)
Note on Functionality for R3 and beyond:
While the items listed below are not part of MVP for R2, the OOF team is initiating discussions and collaborations on these during
the R2 time frame, so that the OOF is aligned with the use cases that will mature in R3 and beyond.
• Service Orchestrator (SO)
• Change Management Portal Additional Definitions for R3 and beyond:
- For R3 and beyond, the OOF will focus on supporting multiple R3 and beyond use case (along with R2 use cases)
[supporting VoLTE, VNF/Service scale-in/out (higher order control loop), and RAN-5G].
- Synchronization with Change Management Scheduling use case.
- Providing additional sample/example optimization applications as documentation.
Optimization - Proving initial Knowledge Base on OOF (building blocks and recipes for creating complex applications).
Framework (OOF)
- Further alignment with S3P objectives.
Supplementary The OOF will provide a list of possible candidates for placement, which the service orchestrator can
Information use to instantiate the service
Interface Provider(s) Optimization Framework
Supplementary The OOF will provide a possible schedule of VNF actions (e.g. upgrades) that satisfy the constraints
Information on availability periods and constraints related to conflicts
Interface Provider(s) Optimization Framework
Definition:
- Provides functionality to upload, verify, and download VNFs
- VNF Vendors upload VNFs through the Marketplace portal
- Marketplace runs package validation tests
- VNFs are made available for Onboarding
Marketplace API
Marketplace API:
- Upload/Re-upload VNF
- Upload VNFs to the Marketplace
VNF SDK
Marketplace - Download VNF
- Download VNFs
- Query VNF
- Query VNFs by CSAR ID or conditions (name, version, type, provider)
- Delete VNF
- Delete VNF from the Marketplace
Marketplace API
37
VF-C – NFVO (1/2)
NFVO
Provided Interfaces:
- Network Service LCM interface
- Provides Network Service LCM interface
VNF LCM Interface
Inventory Service Interface
(NS instantiate/scale/heal/terminate/query/…)
Catalog Synchronization interface
Generic VIM Interface
- VNF Operation Granting interface
Date report interface
Tosca parser interface
- Provides VNF Operation Granting interface and make granting decision
Optimization Request Interface - NS package management interface
- Provides runtime NS package management interface
- VNF package management interface
- Provides runtime VNF package management interface
Note: Can be more than one page
VF-C – NFVO (2/2)
Provided Interfaces:
GVNFM - VNF LCM interface
- Provides the VNF LCM interface (VNF instantiate/terminate/query/…)
Provided Interfaces:
- Portal Admin Interfaces
- Onboarding and User management
- SDK Module
AAF - SDK will be used as a base for any ONAP application being built.
- Components using SDK jars: Policy, VID, AAI, and SDC
- SDK bundles together a host of different tools, technologies, and standards that will assist the teams during the
development phase.
- SDK includes reusable UI components, authentication & authorization components, visualization & reporting engine,
collaborative services, workflow manager, GIS / Map, web component, and widget development framework.
41
Logging-analytics (1/2)
Definition:
Kibana
- Provides ELK stack where logs are streamed from filebeat sidecar containers per component
Logging-analytics
Provided Interfaces:
- Kibana UI:
- dashboard for indexed logs
- Logstash:
filebeat
- Consumes logs pushed by filebeat containers into elasticsearch indexer
Logging-analytics Interface
Provided Service Kibana dashboard, search service on top of elaticsearch index of ONAP logs – via filebeat
Supplementary
Information
Interface Provider(s) AA&I, APPC, SO, Policy, Portal, SDC, SDNC, VID
Provided Interfaces:
- Resource LCM interface
- Support VNF instantiation/termination
ONAP Interface (Resource create/delete/update/query)
Inventory Service Interface
DMAAP interface - VIM registry/un-registry Interface
Logging interface
The third party Cloud interface - Support registry/un-registry of multiple clouds
OpenStack Interface
VMware VIO interface (VIM create/delete/update)
Wind River Titanium Interface
- VIM FCAPS management Interface
- Support FCAPS required data collection, event/alert/metrics federation functions
(message pub/sub)
- VIM capacity/capability query
- Support placement and scheduling purpose
(capacity/capability query/report)
Multi-Cloud Adaptation (2/2)
Definition: OOM is the life cycle manager of the ONAP platform (i.e. SDC, SO, SDNC, etc.). OOM uses
the Kubernetes container management system and Consul to provide the following functionality:
Deployment - with built-in component dependency management (including multiple clusters,
federated deployments across sites, and anti-affinity rules)
Configuration - unified configuration across all ONAP components
Monitoring - real-time health monitoring feeding to a Consul GUI and Kubernetes
Restart - failed ONAP components are restarted automatically
Clustering and Scaling - cluster ONAP services to enable seamless scaling
Interface 1
Upgrade - change-out containers or configuration with little or no service impact
Deletion - cleanup individual containers or entire deployments
OOM supports a wide variety of cloud infrastructures to suit your individual requirements.
ONAP Operations
Manager
Provided Interfaces: Consul GUI for health monitoring, Kubernetes CLI for platform management
Interface N
Consumed Models: ONAP Deployment Specifications, ONAP Component Configuration Artifacts
Policy Framework (1/2)
‒ Standards based models & protocols for multi-vendor implementation SDN-C API Handler
‒ Extensible SB adapter set supporting various network config protocols, CI-1 CI-2 CI-3
including 3rd party controllers
Repository Operational Tree/
‒ Operational control, coordinated state changes across devices, source of Service Control Config Tree
telemetry/events, etc. Processing CI-5 (Service Model)
NB Service/Network Yang Models CI-4
• Manages the health of network services & VNFs/PNFs in its scope Service Logic
IP/VRF Assign
MSB/Data Movement
Service L2 Service Create
Configuration Templates
‒ Policy-based optimization to meet SLAs Logic L3 VPN Service Create
Service/Network Design & Service SD-WAN Create
‒ Event-based control loop automation to solve local issues near real-time Engineering Rules Logic TE Tunneling
CI-x
Controller External API
Controller Internal API
SDN API Handler CE-3 Closed Loop action requests from Data Collection, Analytics & Events Not in scope
Controller CI-1 CI-2 CI-3 (DCAE)/Policy
Repository Operational Tree/
Service Control Config Tree CE-4 Inventory retrieval from Active & Available Inventory (A&AI) by Service Logic Yes – push/pull (no
Processing CI-5 (Service Model) Inventory updates to Active & Available Inventory by Assigned Resources Inv DMaaP topic subscription)
NB Service/Network Yang Models CI-4
Service Logic
CE-5 Configuration requests for cloud infrastructure networking Not in scope
MSB/Data Movement
CI-6 CI-1 API Handler looks up or retrieves the corresponding Service Logic instance that Yes
*Not E2E service view. The “Service” view in the
SDN Controller is limited its scope of control maps to NB service request (service/network yang)
Adapters CI-2 API Handler calls Service Control Processing to perform the Service Logic on the Yes
target service or network
Multi-Cloud
Network
Adapter
NetConf/
YANG
OpenFlow BGP LS/
PCEP … Others
External
System
Adapter (s)
CI-3 Prior to CI-2, API Handler might query the (in-memory) Operational/Config Trees Yes
CE-5 CE-6 for the network or service details (if already existing)
MSB/Data Movement
External CI-4 Service Control Processing retrieves the Service Logic, Config Templates, Yes
Multi-VIM/Cloud VNFs 3rd Party Controllers Engineering rules, and Policies as part of processing the requested action
PNFs Element Mgt. Systems
CI-5 Service Control Processing queries and/or updates Operational/Config Trees as Yes
part of making changes to the network (VNFs/PNFs)
CI-6 Service Control Processing requests adapter layer to update/configure VNF/PNF Yes
update using the appropriate adapter for the VNF/PNF
CI-7 Service Control Processing updates the local Assigned Resources Store/Inventory Yes
once network updates are made successfully
External API Definition & Interfaces (1/2)
Definition:
• Service Catalog
- ONAP External APIs expose the capabilities of ONAP. They allow ONAP to be viewed as a “black box” by
• Service Ordering providing an abstracted view of the ONAP capabilities.
• Service Inventory
- External APIs support that an external consumer of ONAP capabilities can be authenticated and authorized.
These APIs can also be used for connecting to systems where ONAP uses the capabilities of other systems.
- Provides a clear and unambiguous ONAP service abstraction so that the BSS/OSS can exchange service
External APIs requirements and service capabilities in a common and consistent fashion.
SDC: Catalog
Provided Interfaces:
SO: Service Instantiation - Service Catalog Interface
A&AI: Inventory Service Interface
- Provides an external view of requestable ONAP Services and the retrieval of the associated Service
template (model)
- Service Ordering Interface
- Provides a mechanism for placing a service order with all of the necessary order parameters
represented on the Service template. It allows users to create, update & retrieve Service Orders and
manages related notifications.
- Service Inventory Interface
- Provides a consistent mechanism to query the Service inventory from an external perspective.
External API – Consumed Interfaces/Models (2/2)
Consumed Interfaces:
•
•
Service Catalog
Service Ordering
- SDC: Catalog
• Service Inventory - SO: Service Instantiation
- A&AI: Inventory Service Interface
External APIs
SDC: Catalog
SO: Service Instantiation
A&AI: Inventory Service Interface
Consumed Models:
- Service Descriptor (TOSCA YAML Service Descriptor)
External API – Service Catalog (1/3)
Service Catalog
Provided Service Provides an external view of requestable ONAP Services and the retrieval of the associated Service
template (model)
Supplementary Service Models are TOSCA representations of the Services that may be requested.
Information
Interface Provider(s) External API
Service Ordering
Provided Service Provides a mechanism for placing a service order with all of the necessary order parameters
represented on the Service template. It allows users to create, update & retrieve Service Orders
and manages related notifications.
Supplementary Service Models are TOSCA representations of the Services that may be requested.
Information
Interface Provider(s) External API
Service Inventory
Provided Service Provides a consistent mechanism to query the Service inventory from an external perspective.
Supplementary
Information
Interface Provider(s) External API
Definition: MUSIC is a multi-site state coordination/management service for a single operator with a rich suite of recipes that
MUSIC API
ONAP components/micro-services can simply configure and use for their state-management needs both within and across sites. At
its core, MUSIC provides a scalable sharded eventually-consistent data-store (Cassandra) wherein the access to the keys can be
protected using a locking service (built on Zookeeper) that is tightly coupled with the data-store.
MUSIC (Multi-site State MUSIC also supports Consul based distributed KV Store and its features include ability to store default configuration settings,
Coordination Service )
dynamic changes to the configuration and propagating the changes to running service instances
Provided Interfaces:
None.
- The MUSIC API is a REST API used to read and write state and manage access to it through a
locking service.
- API to manage (Add/Modify/Delete) configuration/settings.