Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Srini will help with technical debt

DRAFT PROPOSAL FOR COMMENTS

The content of this template is expected to be fill out for M1 Release Planning Milestone.

...

Project NamePolicy Framework
Target Release NameBeijing
Project Lifecycle StateIncubation
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

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 ONAPvDNS 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
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryproject = POLICY and Type = EPIC and fixVersion = 'Beijing Release' and status = 'Open' ORDER BY priority DESC, updated DESC
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176

...

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryproject = POLICY and Type = Story and fixVersion = 'Beijing Release' and Resolution = 'Unresolved' ORDER BY priority DESC, updated DESC
serverId4733707d-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 NameDeliverable Description
Policy Portal DashboardExecutable
Policy PAP web applicationExecutable

API - internal to the Policy Platform. The Policy PDP engines use this API to synchronize policies being distributed.
Policy Drools PDPExecutable
Policy XACML PDPExecutable

API - external to ONAP components. The API is used to CRUD Policies, Deploy Policies, and query for Policy Decisions.
Policy BRMS GatewayExecutable
MariaDB

SQL database

  • Stores policies and their versions
  • Stores templates/models and their versions
  • Stores PDP grouping information
  • Stores Policy distribution details
Nexus RepoThis repository is used by the Policy Drools PDP to retrieve distributed policies and their dependent jars.
Policy Lifecycle APIDescription/Documentation
Policy SDC Distribution IntegrationExecutable

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
nameONAP 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
height400

Policy Interaction with CLAMP during Design Time


Policy CLAMP InteractionImage Added



Policy Control Loop InteractionImage Added


Policy Interaction with OOF


Image Added


Platform Maturity

...

AreaActual LevelTargeted Level for current ReleaseHow, EvidencesComments
PerformanceLevel 1Level 1

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-392

  • 0 -- none
  • 1 – baseline performance criteria identified and measured
  • 2 & 3 – performance improvement plans created & implemented
StabilityLevel 1Level 1

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-512

  • 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
ResiliencyLevel 1Level 2

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-513

  • 0 – none
  • 1 – manual failure and recovery (< 30 minutes)
  • 2 – automated detection and recovery (single site)
  • 3 – automated detection and recovery (geo redundancy)
SecurityLevel 1Level 1

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-514

  • 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
ScalabilityLevel 10Level 1

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-515

*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.

  • 0 – no ability to scale
  • 1 – single site horizontal scaling
  • 2 – geographic scaling
  • 3 – scaling across multiple ONAP instances
ManageabilityLevel 1Level 1

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-516

  • 1 – single logging system across components; instantiation in < 1 hour
  • 2 – ability to upgrade a single component; tracing across components; externalized configuration management
UsabilityLevel 1Level 1

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-517

  • 1 – user guide; deployment documentation; API documentation
  • 2 – UI consistency; usability testing; tutorial documentation

...

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 NameAPI DescriptionAPI Definition DateAPI Delivery dateAPI Definition link (i.e.swagger)
AAIREST Web Service for AAIWe are dependent on that team to provide us this.

Control Loop Event MessagesDmaap messages published by DCAE when a Control Loop Event occurs.Amsterdam

n/a

n/a
APP-CDmaap message LCM API for auto healing/auto scaling/Restart/Reboot/ModifyConfigWe are dependent on that team to provide us this.Restart and ModifyConfigAmsterdam

SOAPI for auto scalingWe are dependent on that team to provide us this.Amsterdam

DMAAPAPI for publish/subscribe to DCAE Control Loop Events and APP-C APIWe are dependent on that team to provide us this.Amsterdam

  • API Outgoing Dependencies

...

API NameAPI DescriptionAPI Definition DateAPI Delivery dateAPI Definition link (i.e.swagger)
Policy Client APIThis API is used by other ONAP components to create, update and delete policy(s).Amsterdam version - no changes
Policy API
Policy Query APIThis API is used by other ONAP components responsible for enforcing policy during runtime.Amsterdam version - no changes
Policy API
Policy Lifecycle APIThe 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.M3TBD
  • Third Party Products Dependencies

...

  • 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.

...

"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 identifiedImpact
To fill outTo fill outTemplate Code is inefficient with respect to threadingDrools 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
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryproject=POLICY and issuetype in (bug) and fixVersion='Amsterdam Beijing Release'
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176

...

Risk identifiedMitigation PlanContingency Plan
ResourcesActively 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.

...