Optimization Framework: Optimization Service Design Framework (OSDF)

Architecture

Technology Choices

Minizinc provides an open source constraint modeling language/platform for specifying optimization applications. It contains direct interfaces to COIN-OR CBC, Gurobi and IBM ILOG CPLEX. Additionally, many optimization projects support minizinc via FlatZinc interfaces. The Minizinc standard library provides a subset of constraints form the global constraint catalogue as a high-level abstraction that have efficient algorithms implemented by several solvers.

Components of the Core Framework

_images/OSDF-components.png

An overview of the components of the core optimization framework. The OOF utilizes the open source project Minizinc, which has a solver-independent modeling language and has interfaces to various open source and commercial solvers. One of the additional benefits of this approach is that by developing a focused set of ONAP-related components, we can utilize ongoing advances in optimization technologies, as well as adapt other currently available extensions to Minizinc and related projects. The OOF project aims to build these components with a focus on minimal viable product for Beijing Release in order to support initial applications and use cases, with subsequent focus on expanding the platform.

Data Adapter Library

The OOF will provide a library of adapters for common ONAP systems. These can be directly used in data specification templates of the applications. In the initial release, these will include adapters to Policy, A&AI, Multi-Cloud, and SDC (additional “stretch goals” for this release include SDN-C, Microservice Bus). As new use cases are implemented, this library will be augmented by new adapters to other services.

Translation Modules

The OOF will provide modules for translating policies into constraints for the optimization environment. When an underlying minizinc model is used for optimization, it is translated into a minizinc constraint (either via a data specification template or directly from policy). For custom optimizers, these constraints will be translated to the input format expected by the optimizer via the data specification template. The Homing and Allocation Service (HAS; described in the next section) uses a custom optimization module and hence uses the data specification template approach.

Modeling Support

The OOF provides simple templating system through which users can specify links to different ONAP components, including policy, A&AI, SDC, etc.

Execution Environment

The OOF execution environment contains the minizinc system, along with data/template rendering system that leverages the adapters to various systems. The flow of execution can be configured via the configuration file for the application and supports a choice of specific solver or invocations to custom/external solvers.

Offered APIs

This document describes the OSDF HAS (Homing and Allocation Service) API

To view API documentation in the interactive swagger UI download the following and paste into the swagger tool here: https://editor.swagger.io

API name

Swagger JSON

OOF OSDF HAS API

link

OOF OPTENG API

link

Consumed APIs

The following are the dependencies for the project based on the scope for the Beijing Release. The required dependencies have been identified based on the current homing requirements for the vCPE use case, and the potential dependencies are tentative dependencies that may exist based on how the information required for homing (e.g., Hardware Platform Enablement, VIM attributes) is available.

Service Orchestrator

See documentation for Service Orchestrator

Policy

See documentation for Policy

SDC

See documentation for SDC

Delivery

Delivery description TBD

Logging

OSDF uses a single logger, oslo, across all the components. The logging format is compliant with the EELF recommendations, including having the following logs: error, audit, metric, application.

The log statements follow the following format (values default to preset values when missing):

Timestamp|RequestId|ServiceInstanceId|ThreadId|Virtual Server Name|ServiceName|InstanceUUID|Log Level|Alarm Severity Level|Server IP Address|HOST NAME|Remote IP Address|Class name|Timer|Detailed Message

The logger util module can be found at:

<>/has/conductor/conductor/common/utils/conductor_logging_util.py

Installation

Installing from the Source Code

Get code from the Linux Foundation Projects page

$ git clone https://gerrit.onap.org/r/optf/osdf

Configuration

TBD

Administration

Administration - TBD

Human Interfaces

OOF OSDF does not expose a human interface

Release Notes

Abstract

This document provides the release notes for the KOHN release.

Summary

Release Data

OOF Project

Docker images

optf-osdf 3.0.7

Release designation

11.0.0 kohn

Release date

10/11/2022 (TBD)

New features

Bug Fixes

  • OPTFRA-1080 - Fix timeout issue in OSDF on sending plan request to HAS-API

Known Limitations, Issues and Workarounds

System Limitations

Known Vulnerabilities

Workarounds

Security Notes

References

For more information on the ONAP Jakarta release, please see:

  1. ONAP Home Page

  2. ONAP Documentation

  3. ONAP Release Downloads

  4. ONAP Wiki Page

Quick Links:

Abstract

This document provides the release notes for the JAKARTA release.

Summary

Release Data

OOF Project

Docker images

optf-osdf 3.0.6

Release designation

10.0.0 jakarta

Release date

02/06/2022 (TBD)

New features

Bug Fixes

  • OPTFRA-1059 - Update configuration for TN-FH in NxI termination app

Known Limitations, Issues and Workarounds

System Limitations

Known Vulnerabilities

Workarounds

Security Notes

References

For more information on the ONAP Jakarta release, please see:

  1. ONAP Home Page

  2. ONAP Documentation

  3. ONAP Release Downloads

  4. ONAP Wiki Page

Quick Links:

Abstract

This document provides the release notes for the Istanbul release.

Summary

Release Data

OOF Project

Docker images

optf-osdf 3.0.6

Release designation

9.0.0 istanbul

Release date

28/10/2021 (TBD)

New features

  • Enhancements in NxI termination to support second level NSSIs

  • Update NxI termination app to use AAI DSL query

  • Add CPS client for PCI app

  • OSDF image optimization

Bug Fixes

  • OPTFRA-511 Return error when policies are not present

  • OPTFRA-943 Fix issues in NSI selection response

  • OPTFRA-853 Remove unwanted gplv3 components from docker image

Known Limitations, Issues and Workarounds

System Limitations

Known Vulnerabilities

Workarounds

Security Notes

References

For more information on the ONAP Honolulu release, please see:

  1. ONAP Home Page

  2. ONAP Documentation

  3. ONAP Release Downloads

  4. ONAP Wiki Page

Quick Links:

Abstract

This document provides the release notes for the Honolulu release.

Summary

Release Data

OOF Project

Docker images

optf-osdf 3.0.4

Release designation

8.0.0 honolulu

Release date

04/08/2021 (TBD)

New features

  • Add NST selection feature with AAI & SDC

  • Configuration management with consul KV store

Bug Fixes

  • OPTFRA-906 Update slice/service profile attributes

  • OPTFRA-871 Bug Fix in ML SON - convert cell_id before sending it to Minizinc

Known Limitations, Issues and Workarounds

System Limitations

Known Vulnerabilities

Workarounds

Security Notes

References

For more information on the ONAP Honolulu release, please see:

  1. ONAP Home Page

  2. ONAP Documentation

  3. ONAP Release Downloads

  4. ONAP Wiki Page

Quick Links:

Abstract

This document provides the release notes for the Guilin release.

Summary

Release Data

OOF Project

Docker images

optf-osdf 3.0.2

Release designation

7.0.0 guilin

Release date

2020-11-19 (TBD)

New features

  • NSI selection enhancements

  • Support for NSSI selection

  • Support for NSI/NSSI Termination

  • Support for Inter domain route optimization

  • Support for ML based SON optimization

  • Upgrade python version to 3.8

Bug Fixes

  • OPTFRA-839 Remove python 2.7 from OSDF docker image

  • OPTFRA-855 Fix slice selection API

  • OPTFRA-852 Callback implementation for NST selection

Known Limitations, Issues and Workarounds

System Limitations

Known Vulnerabilities

Workarounds

Security Notes

References

For more information on the ONAP Guilin release, please see:

  1. ONAP Home Page

  2. ONAP Documentation

  3. ONAP Release Downloads

  4. ONAP Wiki Page

Quick Links:

Abstract

This document provides the release notes for the Frankfurt release.

Summary

Release Data

OOF Project

Docker images

optf-osdf 2.0.4

Release designation

6.0.0 frankfurt

Release date

2020-05-07 (TBD)

New features

  • Project is restructured into apps and libs.

  • A Generic optimizing engine is implemented.

  • New optimizer model for route optimization is added.

  • Policy apis are migrated from legacy apis to new decision api.

  • The Conductor adapter is moved from placement to adapters.

  • NST and NSI selection function has been implemented for Network Slicing use case.

  • PCI optimization is enhanced to support fixed cells field.

Bug Fixes

  • OPTFRA-482 The field “unique” should be defined in vnf policy.

  • OPTFRA-729 OSDF fails to start in the k8s environment.

  • OPTFRA-731 OSDF Policy interface is not working

  • OPTFRA-754 Return slice profile when service profile indicates the resource sharing level as not shared

  • OPTFRA-755 OOF Policy filtering does not work.

Known Limitations, Issues and Workarounds

System Limitations

Known Vulnerabilities

Workarounds

Security Notes

References

For more information on the ONAP Frankfurt release, please see:

  1. ONAP Home Page

  2. ONAP Documentation

  3. ONAP Release Downloads

  4. ONAP Wiki Page

Quick Links:

Version: 5.0.1

Release Date

2019-09-30 (El Alto Release)

The El Alto release is the fourth release for ONAP Optimization Framework (OOF).

Artifacts released:

optf-has:1.3.3 optf-osdf:1.3.4 optf-cmso:2.1.1

New Features

While no new features were added in the release, the following Stories were delivered as enhancements.

  • [OPTFRA-415] Automation on policy model uploading

  • [OPTFRA-427] CMSO - Schedule a workflow in SO and track status to completion

  • Platform Maturity Level 1
    • ~65.1+ unit test coverage

Bug Fixes

The El Alto release for OOF fixed the following Bugs.

  • [OPTFRA-579] Json error in homing solution

  • [OPTFRA-521] oof-has-api exposes plain text HTTP endpoint using port 30275

  • [OPTFRA-522] oof-osdf exposes plain text HTTP endpoint using port 30248

  • [OPTFRA-577] Need for “ReadWriteMany” access on storage when deploying on Kubernetes?

  • [OPTFRA-517] Clean up optf/cmso in integration/csit for Dublin

  • [OPTFRA-486] Support “identifiers” field as a list of values

  • [OPTFRA-403] OOF CMSO Service kubernetes resources allocation is not done

  • [OPTFRA-526] OOF pods not running

  • [OPTFRA-409] Template example : purpose to be explained

  • [OPTFRA-593] OOF-CSMO healthcheck is failing in Master

Known Issues

  • [OPTFRA-576] optf-has-master-csit-has is testing Dublin image

  • [OPTFRA-596] CMSO - Sonar and CSIT jobs failing

  • [OPTFRA-608] Error in Homing with multiple policies

Security Notes

Fixed Security Issues

  • [OJSI-122] In default deployment OPTFRA (oof-osdf) exposes HTTP port 30248 outside of cluster.

  • [OPTFRA-521] oof-has-api exposes plain text HTTP endpoint using port 30275

  • [OPTFRA-522] oof-osdf exposes plain text HTTP endpoint using port 30248

  • [OPTFRA-455] CMSO - Mitigate License Threat tomcat-embed-core

Known Security Issues

  • [OPTFRA-481] Fix Vulnerability with spring-data-jpa package

  • [OPTFRA-431] Fix Vulnerability with spring-security-web package

Known Vulnerabilities in Used Modules

Upgrade Notes

Deprecation Notes

Other

Version: 4.0.0

Release Date

2019-06-06 (Dublin Release)

New Features

The Dublin release is the third release for ONAP Optimization Framework (OOF).

A summary of features includes

  • Support SON (PCI/ANR) optimization using OSDF

  • Implement encryption for OSDF internal and external communication

  • Platform Maturity Level 1
    • ~65.1+ unit test coverage

The Dublin release for OOF delivered the following Epics.

  • [OPTFRA-426] Track the changes to CMSO to support change management schedule optimization

  • [OPTFRA-424] Extend OOF to support traffic distribution optimization

  • [OPTFRA-422] Move OOF projects’ CSIT to run on OOM

  • [OPTFRA-276] Implementing a POC for 5G SON Optimization

  • [OPTFRA-270] This epic captures stories related to maintaining current S3P levels of the project as new functional requirements are supported

Bug Fixes

  • The full list of implemented user stories and epics is available on DUBLIN RELEASE

Known Issues

Security Notes

Fixed Security Issues

Known Security Issues

  • [OJSI-122] In default deployment OPTFRA (oof-osdf) exposes HTTP port 30248 outside of cluster.

Known Vulnerabilities in Used Modules

OPTFRA osdf code has been formally scanned during build time using NexusIQ and no Critical vulnerability was found. The OPTF open Critical security vulnerabilities and their risk assessment have been documented as part of the project.

Quick Links:

Upgrade Notes

None.

Deprecation Notes

None.

Other

None

Version: 3.0.1

Release Date

2019-01-31 (Casablanca Maintenance Release)

The following items were deployed with the Casablanca Maintenance Release:

New Features

None.

Bug Fixes

  • [OPTFRA-401] - Need flavor id while launching vm.

Version: 3.0.0

Release Date

2018-11-30 (Casablanca Release)

New Features

The Casablanca release is the second release for ONAP Optimization Framework (OOF).

A summary of features includes

  • Homing enhancements for improving service deployability
    • Discovering and reusing shared resources when processing multiple homing requests in parallel

    • Considering Latency Reduction (in addition to geographical distances) for homing optimization

    • Enhanced capacity checks during VNF homing

    • Asynchronous communication between HAS components

  • OOF Casablanca S3P Usability enhancement
    • Adherence to ONAP API Common Versioning Strategy (CVS) Proposal

    • Move all internal and external facing APIs to Swagger 2.0

  • OOF Casablanca S3P Performance enhancements
    • Creating a plan for performance improvements based on the baseline measured metrics

  • OOF development platform hardening
    • Deployment scripts

    • Fix Build Docker image script for supporting multiple versions

    • Fix OOM, HEAT deployment scripts (versioning)

    • CSIT functional tests for each repo

    • CI Jobs for different streams (Beijing, master etc)

    • Clean up nexus binaries and maven versioning

  • Integrate OOF with Certificate and Secret Management Service (CSM)

  • Support SON (PCI) optimization using OSDF

  • Platform Maturity Level 1
    • ~65.1+ unit test coverage

The Casablanca release for OOF delivered the following Epics.

  • [OPTFRA-273] - Epic Name: OOF Casablanca S3P Manageability enhancement

  • [OPTFRA-270] - Maintain current S3P levels

  • [OPTFRA-271] - OOF Casablanca S3P Security enhancement

  • [OPTFRA-267] - OOF - HPA Enhancements

  • [OPTFRA-276] - Implementing a POC for 5G SON Optimization

Bug Fixes

Known Issues

  • [OPTFRA-223] - On boarding and testing AAF certificates for OSDF.

  • [OPTFRA-293] - Implement encryption for all OSDF internal and external communication

  • [OPTFRA-329] - role based access control for OSDF-Policy interface

Security Notes

OPTFRA osdf code has been formally scanned during build time using NexusIQ and no Critical vulnerability was found. The OPTF open Critical security vulnerabilities and their risk assessment have been documented as part of the project.

Quick Links:

Upgrade Notes

None.

Deprecation Notes

None.

Other

None

Version: 2.0.0

Release Date

2018-06-07

New Features

The ONAP Optimization Framework (OOF) is new in Beijing. A summary of features includes:

  • Baseline HAS functionality
    • support for VCPE use case

    • support for HPA (Hardware Platform Awareness)

  • Integration with OOF OSDF, SO, Policy, AAI, and Multi-Cloud

  • Platform Maturity Level 1
    • ~50%+ unit test coverage

The Beijing release for OOF delivered the following Epics.

  • [OPTFRA-2] - On-boarding and Stabilization of the OOF seed code

  • [OPTFRA-6] - Integrate OOF with other ONAP components

  • [OPTFRA-7] - Integration with R2 Use Cases [HPA, Change Management, Scaling]

  • [OPTFRA-20] - OOF Adapters for Retrieving and Resolving Policies

  • [OPTFRA-21] - OOF Packaging

  • [OPTFRA-28] - OOF Adapters for Beijing Release (Policy, SDC, A&AI, Multi Cloud, etc.)

  • [OPTFRA-29] - Policies and Specifications for Initial Applications [Change Management, HPA]

  • [OPTFRA-32] - Platform Maturity Requirements for Beijing release

  • [OPTFRA-33] - OOF Support for HPA

  • [OPTFRA-105] - All Documentation Related User Stories and Tasks

Bug Fixes

None. Initial release R2 Beijing. No previous versions

Known Issues

None.

Security Notes

OPTFRA code has been formally scanned during build time using NexusIQ and no Critical vulnerability was found.

Quick Links:

Upgrade Notes

None. Initial release R2 Beijing. No previous versions

Deprecation Notes

None. Initial release R2 Beijing. No previous versions

Other

None

Upgrade Strategy

OSDF can be upgraded in place(remove and replace) or in a blue-green strategy.

There is no need for database migration. Since, there is no database being used by OSDF.

Supporting Facts

OSDF is a stateless component. It doesn’t store any information in the database. It holds on to the optimization request in memory only until the optimization process is complete. The optimization is done either by OSDF itself or other external components(such as HAS) are leveraged for optimization.