Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This release of MUSIC provides a shared 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). 

...

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.  

Functionalities

Since we currently do not have the LF tool chain, we are just attaching the excel containing the epics and user stories. 

View file
nameMUSIC_functionality.xlsx
height250

For Beijing this will be run as internal services to both Portal and OOF. 

Functionalities

Epics

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryproject=sanbox music and issuetype in (epic)
serverId425b2b0a-557c-3c0c-b515-579789cceedb

...

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryproject=sanbox music and issuetype in (story)
serverId425b2b0a-557c-3c0c-b515-579789cceedb

...

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. 

...

Deliverable NameDeliverable Description
Cource 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 BenchmarksBasic performance benchmarks for the MUSIC operations
API documentationREST API documentation in Swagger
Test CasesJunit test cases covering sufficient parts of MUSIC code

...

AreaActual LevelTargeted Level for current ReleaseHow, EvidencesComments
Performance11

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
Stability11As 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

12

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

01

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). However, our current version of Zookeeper (3.4.0) does not support dynamic reconfiguration. Will move to Zookeeper 3.5.0 that supports dynamic reconfiguration and test MUSIC sclability. We will also need to work with OOM support to spin new containers on demand for the scalability needs.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

List the API this project is expecting from other projects.
Prior to Release Planning review, Team Leads must agreed on the date by which the API will be fully defined. The API Delivery date must not be later than the release API Freeze date.

Prior to the delivery date, it is a good practice to organize an API review with the API consumers.

...

NA. 

  • API API Outgoing Dependencies

API this project is delivering to other projects.

API NameAPI DescriptionAPI Definition DateAPI Delivery dateAPI Definition link (i.e.swagger)
MUSIC APIThe REST API used to store state and manage access to it through a locking service.TBD.TBD.Waiting for project approval.To fill outHigh level description of the APIDate for which the API is reviewed and agreedTo fill outLink toward the detailed API description
  • 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, ...).

NameDescriptionVersion
To fill outTo fill outTo fill out

In case there are specific dependencies  (Centos 7 vs Ubuntu 16. Etc.) list them as well.

  • Testing and Integration Plans

Provide a description of the testing activities (unit test, functional test, automation,...) that will be performed by the team within the scope of this release.

Describe the plan to integrate and test the release deliverables within the overall ONAP system.
Confirm that resources have been allocated to perform such activities.

  • Gaps

This section is used to document a limitation on a functionality or platform support. We are currently aware of this limitation and it will be delivered in a future Release.
List identified release gaps (if any), and its impact.

...

  • Known Defects and Issues

Provide a link toward the list of all known project bugs.

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryproject=sanbox and issuetype in (bug)
serverId425b2b0a-557c-3c0c-b515-579789cceedb

  • Risks

List the risks identified for this release along with the plan to prevent the risk to occur (mitigation) and the plan of action in the case the risk would materialized (contingency).

...

Cassandra

Higly-available key-value store that will maintain state.

http://cassandra.apache.org/

3.2
Zookeeper

Distributed coordination service used to provide the locking service for MUSIC.

https://zookeeper.apache.org/

3.4.6
Tomcat

Web-server that will host the MUSIC code and support the REST API.

http://tomcat.apache.org/

9


Testing and Integration Plans

The following type of tests will be ensured for MUSIC in this release:

  • Unit tests: Junit  test cases will be added incrementally as part of code delivery ensuring static code analysis as recommended by common SW delivery practices. MUSIC is written in Java, so coverage target percentage will be evaluated along project. Unit Tests will be automated (as part of the build), so that execution will happen before every MUSIC delivery. This includes writing test cases for the new components and those for the existing ones not yet covered under unit testing. A python based Unit Testing framework will be integrated into the project, binding all developers to start with Unit Tests when developing each module.
  • Functional Test cases: MUSIC will be tested according to the functionality committed to the Beijing release with a specific focus on the functionality utilised by ONAP HAS and ONAP Portal for MUSIC-based state management.   
  • End to End Test cases: MUSIC will be integrated within the whole ONAP components architecture and dedicated set of E2E test cases will be setup. Purpose, scope and details on E2E testing will be planned/defined subsequently by working with the Integration team, and for the test cases in the scope of this release.  


Gaps

None identified so far. 

Known Defects and Issues

None identified so far. 

Risks

None identified so far. 

Resources

Udated 

  • Resources

Fill out the Resources Committed to the Release centralized page.

  • Release Milestone

...