Versions Compared

Key

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

...

PolicyExecution uses the PAP and PDPs to monitor execution of the policies in the ExecutablePolicySet on the PDPGroup.

Observations (Requirements??? use thesaurus)
  • Policy Monitoring Protocol starts with lifecycle management, can be extended to do instance monitoring, monitoring of PDPs in real time etc.
  • PAP must manage (or at least be aware of) deployment of PDPs as well as deployment of policies and versions of policies
  • PDPs of all type must scale horizontally under whatever containerization or virtual infrastructure is in use for a given ONAP deployment. Having the PAP scale horizontally probably not a very urgent requirement.
  • Database off PAP (PDPs report back to PAP, don’t access database directly)
  • Database could be replaced by/interchangeable with some ONAP persistence system (DMaaP or DCAE)?
  • Should Policy Management Protocol/Policy Deployment Protocol/Policy Monitoring Protocol/Policy Persistence Protocol use DMaaP?
  • Inter-PDP protocol is the protocol that instances of any PDP type can use to communicate with each other to manage state and deployment
  • Intra-PDP protocol is the protocol that instances of a particular PDP type use to communicate with each other, to manage state and deployment
  • Load balancing of events towards PDP pools could be done with DMaap using the underlying Kafka consumer group mechanisms

TODO: How to create policies? models? templates?

2.1 Policy Design Architecture

...

  • The PAP will do life cycle monitoring of policy and context as well as deployment.
  • PDPs of all type must scale horizontally under whatever containerization or virtual infrastructure is in use for a given ONAP deployment. Having the PAP scale horizontally probably not a very urgent requirement.

2.3 Policy Execution Architecture

...

  • The PAP will do run time monitoring of policy and context .
  • Policy does instance monitoring, monitoring of PDPs in real time etc.
  • Inter-PDP protocol is the protocol that instances of any PDP type can use to communicate with each other to manage state and deployment
  • Intra-PDP protocol is the protocol that instances of a particular PDP type use to communicate with each other, to manage state and deployment
  • Load balancing of events towards PDP pools could be done with DMaap using the underlying Kafka consumer group mechanisms

3. APIs Provided by the Policy Framework and how to use them

  • Should Policy Management Protocol/Policy Deployment Protocol/Policy Monitoring Protocol/Policy Persistence Protocol use DMaaP?

3.1 Policy Design APIs

3.2 Policy Deployment APIs

PAP to all PDPs in PDP group

Deploy PolicyDeploy a policy artifact version taken from Nexus to all PDPs in the PDP group
Retire PolicyRemove a policy artifact from all PDPs in the PDP group
Activate Policy in Safe ModeActivate a policy version in safe mode, no updates made to the network/system
Activate Policy in Live ModeActivate a policy version running live
Upgrade PolicyReplace an active policy with a more recent version of the same policy
Rollback PolicyReplace an active policy with an older version of the same policy


  • Update of policies across PDPs in a PDP group use "eventually consistent" semantics, transactions or ACID semantics will not be supported
  • Event though PDPs could listen or monitor Nexus for updates to policies, the PAP should be the component responsible for deciding if and what policy upgrades are propagated to the entire PDP group.

PDP Group Admin in PAP

Create PDP groupDefine the parameters for the PDP group including the type of PDP
Update PDP groupChange the parameters of the PDP group
Delete PDP group-
Add PDP to PDP GroupAdd a PDP to the PDP group, is the PDP spun up separately or does the PAP initiate the spinning up of the PDP?
Update PDP in PDP groupUpdate parameters of the PDP in the PDP group
Remove PDP from PDP group-
  • Can a PDP be in more than one PDP group??? .....I hope not!
  • We'll assume a single PAP for now.


3.3 Policy Execution APIs

PAP to all PDPs in PDP group

Modify Policy Parameters*Change the parameters of a policy
Get StatusReport on the state of the policy artifacts running in the PDPs
Get StateReport on the execution status of the policies running on the PDPs
  • *A policy may be parameterized. There are two ways to handle this
    • Combine a raw policy into a parameterized policy and deploy the parameterized policy at run time
    • Have the raw policy and its parameters as separate artifacts and deploy them separately
    • Do not consider the parameters as an artifact but allow them to be modified directly by users setting them using an interface towards the PAP at run time

Policy Execution (Users to PDP Group pr PDP)

Execute policy on PDP group synchronouslyRun a policy on any PDP in a PDP group and await the response
Execute policy on PDP group asynchronouslyRun a policy on any PDP in a PDP group, fire and forget
Execute policy on PDP synchronously**Run a policy on a specific PDP and await the response (Deprecate)
Execute policy on PDP asynchronously**Run a policy on a specific PDP, fire and forget (Deprecate)
  • **Applications using the Policy Framework should not be aware of specific PDPs, we should only support this behaviour for existing users and deprecate this usage.
  • Load Balancing across PDP group......Stateless PDPs no problem.....set up stateful transfer between PDPs if supported....Address specific PDPs

Image Added

4. The Policy Framework Implementation

  • Database off PAP (PDPs report back to PAP, don’t access database directly)
  • Database could be replaced by/interchangeable with some ONAP persistence system (DMaaP or DCAE)?

4.1 Policy Design Implementation

...