MUSIC Beijing Release Planning


Overview

Project Name

MUSIC

Project Name

MUSIC

Target Release Name

Beijing

Project Lifecycle State

Incubation

Participating Company 

AT&T, Intel, Netcracker, Verizon, Windriver (in lexical order)

Scope

What is this release trying to address?

This release of MUSIC provides a service with recipes that individual ONAP components and micro-service can use for state replication, consistency management and state ownership across geo-distributed sites. This is a crucial component enabling ONAP components to achieve geo-redundancy (platform-maturity resiliency level 3). 

Use Cases

  • Targeted goal for R2: OOF-Homing Optimizer (HAS) uses MUSIC for its state persistence (as a queue) and as a highly available distributed messaging service. 

  • Stretch goal for R2: ONAP Portal will use MUSIC to store its http session state across sites in a persistent manner.  

Minimum Viable Product

MUSIC service that can serve the geo-redundancy needs of ONAP HAS and ONAP Portal while satisfying the platform maturity requirements for the Beijing release. For Beijing this will be run as internal services to both Portal and OOF. 

Functionalities

Epics

key summary type created updated due assignee reporter priority status resolution
Loading...
Refresh

Stories

key summary type created updated due assignee reporter priority status resolution
Loading...
Refresh



Longer term roadmap

In the long term we hope that MUSIC will be common, shared state-management system for all ONAP components and micro-services to manage geo-redundancy. For example, we envisage the use of MUSIC for multi-site state management in SO (to store Camunda state across sites), <SDN-C, AppC> (to store ODL related state across sites) , A&AI (to store its graph data) and most other ONAP components that need to manage state across sites. Further, we envision that these services will use the MUSIC recipes  (mdbc, prom, musicCAS, musicQ) to achieve the goal of a multi-site active-active federated ONAP solution. 

Release Deliverables

Indicate the outcome (Executable, Source Code, Library, API description, Tool, Documentation, Release Note...) of this release.

Deliverable Name

Deliverable Description

Deliverable Name

Deliverable Description

Source code and REST API

The entire source code for the MUSIC service and

the corresponding REST API to access it.

Compilation scripts

Script to generate the MUSIC war file that

can be deployed in the Apache Tomcat webserver

Installation guide

Document that describes how MUSIC can be installed

in containers

Tool description

Complete description of the inner workings of MUSIC and

how it performs state management

Basic Benchmarks

Basic performance benchmarks for the MUSIC operations

API documentation

REST API documentation in Swagger

Test Cases

Junit test cases covering sufficient parts of MUSIC code

Sub-Components

NA. 

Architecture

High level architecture diagram



In this figure the ONAP components targeted for R2 are ONAP HAS and Portal (stretch goal). 







MUSIC will be available as a common service like DMaap or AAF as shown in the red, oblong box below:





Platform Maturity

Refering to CII Badging Security Program and Platform Maturity Requirements, fill out the table below by indicating the actual level , the targeted level for the current release and the evidences on how you plan to achieve the targeted level.

Area

Actual Level

Targeted Level for current Release

How, Evidences

Comments

Area

Actual Level

Targeted Level for current Release

How, Evidences

Comments

Performance

1

1

This file shows basic performance benchmarks performed for MUSIC on a 10 node cluster.

  • 0 -- none

  • 1 – baseline performance criteria identified and measured

  • 2 & 3 – performance improvement plans created & implemented

Stability

1

1

As shown in this file, our experimental runs were all over 1 hour.

  • 0 – none

  • 1 – 72 hours component level soak w/random transactions

  • 2 – 72 hours platform level soak w/random transactions

  • 3 – 6 months track record of reduced defect rate

Resiliency

2

2

Within each container we have scripts that will detect failure of MUSIC and restart it. However, if the entire container fails, we will need OOM to bring it up.

  • 0 – none

  • 1 – manual failure and recovery (< 30 minutes)

  • 2 – automated detection and recovery (single site)

  • 3 – automated detection and recovery (geo redundancy)

Security

2

2

  • SSL Communication’s between Cassandra Cluster Nodes.

  • REST over HTTPS with AAF for Authentication.

  • 0 – none

  • 1 – CII Passing badge + 50% Test Coverage

  • 2 – CII Silver badge; internal communication encrypted; role-based access control and authorization for all calls

  • 3 – CII Gold

Scalability

1

1

Among the MUSIC components [tomcat, zookeeper, cassandra], new MUSIC nodes with the tomcat and cassandra can be added seamlessly to scale the cluster (MUSIC itself is state-less). Zookeeper nodes ideally should not be scaled since there are major performance implications. However, this can be done with reconfiguration.



  • 0 – no ability to scale

  • 1 – single site horizontal scaling

  • 2 – geographic scaling

  • 3 – scaling across multiple ONAP instances

Manageability

1

1

Using EELF with logback as the logging provider.

  • 1 – single logging system across components; instantiation in < 1 hour

  • 2 – ability to upgrade a single component; tracing across components; externalized configuration management

Usability

1

1

Use SWAGGER for the REST API and Installation Docs. Will need to enhance and update the documentation.

  • 1 – user guide; deployment documentation; API documentation

  • 2 – UI consistency; usability testing; tutorial documentation



  • API Incoming Dependencies

NA. 

  • API Outgoing Dependencies

API this project is delivering to other projects.

API Name

API Description

API Definition Date

API Delivery date

API Definition link (i.e.swagger)

API Name

API Description

API Definition Date

API Delivery date

API Definition link (i.e.swagger)

MUSIC API

The REST API used to store state and manage access to it through a locking service.

TBD.

TBD.

Waiting for project approval.

  • Third Party Products Dependencies

Third Party Products mean products that are mandatory to provide services for your components. Development of new functionality in third party product may or not be expected.
List the Third Party Products (OpenStack, ODL, RabbitMQ, ElasticSearch,Crystal Reports, ...).

Name

Description

Version

Name

Description