DRAFT PROPOSAL FOR COMMENTS
The content of this template is expected to be fill out for M1 Release Planning Milestone.
...
Project Name | Policy Framework |
---|---|
Target Release Name | Beijing |
Project Lifecycle State | Incubation |
Participating Company | AT&T, Intel, Ericsson, Huawei |
Scope
What is this release trying to address?
...
- Platform Maturity Guidelines (Highest Priority)
- 50% JUnit Test Coverage (Highest Priority)
- Integration with OOF to support Hardware Enabled Placement Policies (Medium Priority)
- Control Loop Enhancements for Scale Out (Lowest Priority)
- SDC Distribution Integration (Lowest Priority)
- Policy Lifecycle API (Lowest Priority)
Use Cases
From R1:
Use Case: Residential Broadband vCPE (Approved)
From R2:A best effort will be applied to support Integration testing for the existing R1 Use Cases assuming there are NO changes made to those Use Cases.
Hardware Platform Enablement In ONAP - Dependency will be on Intel to supply the required resources. A best effort will be applied to support Intel resources in lieu of Platform Maturity Guidelines and JUnit Test Code Coverage 50%.
VNF Scale Out (TBD - Not enough resources as of 1/8/2018)
Hardware Platform Enablement In ONAP
vDNS only - requirements planning) - We will do as much work as possible prior to Cassablanca for supporting the auto scale out use case. Dependent on the amount of requirements planning the APP-C team can do.
Minimum Viable Product
- Policy Portal Dashboard - Console GUI where Models, Templates can be imported, updated, deleted, as well as, policies can be created, updated and deleted. The console GUI also has a dashboard where PDP's can be grouped and where Operators can control where policies are distributed to.
- Policy PAP web application - Policy backend that manages communication with PDP engines for policy distribution.
- Policy Drools PDP - run-time execution of Control Loop operational policies. Supports queries from other ONAP components to retrieve
- Policy XACML PDP - run-time execution of Control Loop configuration policies of DCAE collectors, analytics and micro services.
- Policy BRMS Gateway - intermediary backend for distributing policies to the Drools PDP and configuration details to the Drools PDP controller.
...
Jira Legacy server System Jira columns key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution maximumIssues 20 jqlQuery project = POLICY and Type = EPIC and fixVersion = 'Beijing Release' and status = 'Open' ORDER BY priority DESC, updated DESC serverId 4733707d-2057-3a0f-ae5e-4fd8aff50176
...
Jira Legacy server System Jira columns key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution maximumIssues 20 jqlQuery project = POLICY and Type = Story and fixVersion = 'Beijing Release' and Resolution = 'Unresolved' ORDER BY priority DESC, updated DESC serverId 4733707d-2057-3a0f-ae5e-4fd8aff50176
...
- Integration with SDC to support future Policy Design GUI integration into SDC
- We are waiting or SDC to produce their SDK for integration at the end of Beijing
- Policy Lifecycle API
- Not enough resources or time to fully implement this and make it available to other Components. We expect to have at the very least appropriate documentation, models, and swagger yaml files.
- Distribution of PDPs across the network - in lieu of support future performance requirements for Control Loops (Eg. a Control Loop must address an issue within X milliseconds of detection in an automated fashion)
- PDP distribution needs to be enhanced to support multiple PDP's being located in edge, core, global datacenters. (i.e geo-distribution)
- This should also support high availability and resiliency within each datacenter
- PDP's designed as Microservices and deployed via OOM registering with MSB
Release Deliverables
Indicate the outcome (Executable, Source Code, Library, API description, Tool, Documentation, Release Note...) of this release.
Deliverable Name | Deliverable Description |
---|---|
Policy Portal Dashboard | Executable |
Policy PAP web application | Executable |
API - internal to the Policy Platform. The Policy PDP engines use this API to synchronize policies being distributed. | |
Policy Drools PDP | Executable |
Policy XACML PDP | Executable |
API - external to ONAP components. The API is used to CRUD Policies, Deploy Policies, and query for Policy Decisions. | |
Policy BRMS Gateway | Executable |
MariaDB | SQL database
|
Nexus Repo | This repository is used by the Policy Drools PDP to retrieve distributed policies and their dependent jars. |
Policy Lifecycle API | Description/Documentation |
Policy SDC Distribution Integration | Executable |
Sub-Components
Activities related to sub-components must be in sync with the overall release.
Sub-components are repositories and are consolidated in a single centralized place. Edit the Release Components name for your project in the centralized page.
...
High level architecture diagram
At that stage within the Release, the team is expected to provide more Architecture details describing how the functional modules are interacting.
Indicate where your project fit within the ONAP Archiecture diagram.
View file name ONAP Beijing Architecture Jan 9c - Policy.
Block and sequence diagrams showing relation within the project as well as relation with external components are expected.
Anyone reading this section should have a good understanding of all the interacting modules.pdf height 400
Policy Interaction with CLAMP during Design Time
Policy Interaction with OOF
Platform Maturity
...
Area | Actual Level | Targeted Level for current Release | How, Evidences | Comments | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Performance | Level 1 | Level 1 |
|
| ||||||||||
Stability | Level 1 | Level 1 |
|
| ||||||||||
Resiliency | Level 1 | Level 2 |
|
| ||||||||||
Security | Level 1 | Level 1 |
|
| ||||||||||
Scalability | Level 10 | Level 1 |
*NOTE - due to lack of resources, Policy may not be able to do this work. It is "Low" priority per Jason's slides from TSC 1/4/2018. |
| ||||||||||
Manageability | Level 1 | Level 1 |
|
| ||||||||||
Usability | Level 1 | Level 1 |
|
|
...
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.
...
API Name | API Description | API Definition Date | API Delivery date | API Definition link (i.e.swagger) |
---|---|---|---|---|
AAI | REST Web Service for AAI | We are dependent on that team to provide us this. | ||
Control Loop Event Messages | Dmaap messages published by DCAE when a Control Loop Event occurs. | Amsterdam | n/a | n/a |
APP-C | Dmaap message LCM API for auto healing/auto scaling/Restart/Reboot/ModifyConfigWe are dependent on that team to provide us this.Restart and ModifyConfig | Amsterdam | ||
SO | API for auto scaling | We are dependent on that team to provide us this.Amsterdam | ||
DMAAP | API for publish/subscribe to DCAE Control Loop Events and APP-C API | We are dependent on that team to provide us this.Amsterdam |
API Outgoing Dependencies
...
API Name | API Description | API Definition Date | API Delivery date | API Definition link (i.e.swagger) | |
---|---|---|---|---|---|
Policy Client API | This API is used by other ONAP components to create, update and delete policy(s). | Amsterdam version - no changes | To fill out | Link toward the detailed API descriptionPolicy API | |
Policy Query API | This API is used by other ONAP components responsible for enforcing policy during runtime. | Amsterdam version - no changes | Policy API | ||
Policy Lifecycle API | The new Policy Lifecycle API description, documentation, models, etc. | M3 API Freeze. We do not expect our clients to be able to utilize this API in Beijing. | M3 | TBD |
Third Party Products Dependencies
...
Name | Description | Version |
---|---|---|
MariaDB | The MariaDB is the repository that holds all the policies, templates, PDP group, and deployment information. | 10.0.31 ?? |
Nexus | The Nexus repository holds all the currently deployed Operational (i.e. Drools policies) and their dependent artifacts. | 2.14.2-01 ?? |
ElasticSearch | Used to search text within policy. | 5.4.0 ?? |
Ubuntu | Operating system | 14.04 |
...
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.
...
- JUnit tests: 50% code coverage is the goal for all repositories.
- Functional tests: cover all possible Control Loop API calls. Simulating CLAMP and DCAE API calls
- If resources become available, we will add more API calls such as delete, update.
- Policy R2 Beijing CSIT Functional Test Cases
- Integration Test Plans - In progress: Policy R2 Beijing - Integration Test Plans
"Confirm that resources have been allocated to perform such activities" - at this point I do not have enough resources to cover both making the changes for Platform Maturity and help with testing.
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.
Gaps identified | Impact | To fill out | To fill out|
---|---|---|---|
Template Code is inefficient with respect to threading | Drools is single-threaded. When a RESTful API call is made, it should be done in a thread vs polling. Else it holds up the processing of events/rules. The RESTful API calls to A&AI, SO and VF-C should be done in a separate thread. | ||
Policy GUI limitations | Unable to update templates This visual update of Control Loop Operational Policies is not user-friendly Not a truly model-driven architecture. Code must be written in order to support new models. |
Known Defects and Issues
Provide a link toward the list of all known project bugs.
Jira Legacy | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
...
Risk identified | Mitigation Plan | Contingency Plan |
---|---|---|
Resources | Actively seeking community support. | Current resources are only enough to satisfy the Highest Priority Epics (Platform Maturity, JUnit 50% test coverage). But that will be difficult to achieve. |
policy/engine - Difficult to obtain 50% JUnit code coverage based on the extreme amount of cyclomatic complexity and code refactoring needed to remove nested statements. | Deprecation of the repository is possible with re-write of components that is needed to support Platform Maturity requirements. | Request TSC for exception for that specific repository. |
Resources
Fill out the Resources Committed to the Release centralized page.
Release Milestone
The milestones are defined at the Release Level and all the supporting project agreed to comply with these dates.
...