...
Gliffy Diagram size 1200 name Cloud Agnostic Intent Execution Workflow pagePin 39
Follow up ups:
- Policy DB – is there any restriction on json objects store? -
- Matti to follow up with Ankit
- Intent – "Infrastructure Resource Isolation for VNF" – { "qosProperty": { {"Burstable QoS": "TRUE", "Burstable QoS Oversubscription Percentage": "25"} } }
- Only certain pre-defined over-subscription values are allowed to simplify implementation
Private Cloud Setup - OpenStack-based
...
7a) MC Processing (need MC code changes)7a1) Fetch MC
- Parse Template (e.g. OpenStack Heat Template)
- For each VNFC, instance type in the template
- Fetch Cloud-Agnostic Workload Deployment Policy (Intent
- For each VNFC, instance type in the template
...
- ) based on <Service (e.g. vCPE), VNFC (e.g. vGW)>
- Value/Content: <Policy JSON>
- Parse Policy JSON
- Modify template according to Intent - intent examples below
- "Infrastructure High Availability (HA) for VNF"
- "Infrastructure Resource Isolation for VNF"
- "Burstable QoS"
- ) based on <Service (e.g. vCPE), VNFC (e.g. vGW)>
Policy (Intent) Realization
- "Infrastructure High Availability (HA) for VNF"
- OpenStack-based Cloud realization
- For R3, Host-based anti-affinity using server groups //Beyond R3, Support other anti-affinity models at availability zone level etc.
- Notes on implementation:
- Instance "count" in heat template specifies VNFC scale out factor
- While dynamic injection of server group into heat template is ideal, a simple starting point could be just switching to an alternate heat which is identical to the deployment template and additionally has server group
- Azure realization
- Availability Set?
- OpenStack-based Cloud realization
"Infrastructure Resource Isolation for VNF" – { "qosProperty": { {"Burstable QoS": "TRUE", "Burstable QoS Oversubscription Percentage": "25"} } }
OpenStack-based VMware VIO Cloud realization
- This can be achieved through min guarantee -- Max or limit (upper bound) & Min or Reservation (guarantee) are part of OpenStack flavor metadata
- Example
- VNFC with "Guaranteed QoS"
- "flavor-xyz-no-oversubscription"
- vCPU (Min/Max) - 16, Mem (Min/Max) - 32GB
- Same VNFC with "Burstable QoS", 25% over-subscription
- "flavor-xyz-25-percent-oversubscription"
- vCPU (Min) - 16, Mem (Min) - 32GB
- vCPU (Max) - 20, Mem (Max) - 40GB
- VNFC with "Guaranteed QoS"
- Only certain pre-defined over-subscription values are allowed to simplify implementation
- Notes on implementation:
- While dynamic injection of limit/reservation into flavor is ideal, a simple starting would be to be to switch to a pre-defined flavor in the environment file
- For aforementioned example
- Original flavor - "flavor-xyz-no-oversubscription"
- Modified flavor based on Policy - "flavor-xyz-25-percent-oversubscription"
- For aforementioned example
- While dynamic injection of limit/reservation into flavor is ideal, a simple starting would be to be to switch to a pre-defined flavor in the environment file
- Example
- "Infrastructure High Availability (HA) for VNF"
7b) Policy (Intent) Database
- For R3, store Cloud-Agnostic Workload Deployment Policy (Intent) can be stored in the form of configuration file(s) in the OOM K8S Persistent Volumes to simplify implementation.
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
//Policy Example 1 - VNFC VGW which is part of vCPE service
{
"Service": "vCPE"
"VNFC": "vgw", //"vgw" is also intechangeably used as "vg" |
For R3, this policy can be stored in the form of configuration file(s) in the OOM K8S Persistent Volumes to simplify implementation.
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
//Policy Example 1 - VNFC VGW which is part of vCPE service { "Service": "vCPE" "VNFC": "vgw", //"vgw" is also intechangeably used as "vg" { "cloudOwner": "VMware VIO", //can be a specific cloud owner such as Azure, VMware VIO, Wind River Titanium Cloud etc. "intent": { "name": "Infrastructure Resource Isolation for VNF", // realization possible without dedicating CPU and Memory, refer to section on "Cloud Resource Partitioning for Differentiated QoS" // on how this can help in offering tiered services "qosProperty": { {"Burstable QoS": "TRUE", "Burstable QoS Oversubscription Percentage": "25"} } } } } //Policy Example 2 - VNFC vDNS which is part of vLoadBalancer/vDNS service { "Service": "vDNS", "VNFC": "vDNS", //By default, Policy (Intent) is applicable to all cloud owners/regions unless specified. { "intent": { "name": "Infrastructure High Availability (HA) for VNF", } }, { "intentcloudOwner": { "name""VMware VIO", //can be a specific cloud owner such as Azure, VMware VIO, Wind River Titanium Cloud etc. "intent": { "name": "Infrastructure Resource Isolation for VNF", // realization possible without dedicating CPU and Memory, refer to section on "Cloud Resource Partitioning for Differentiated QoS" // on how this can help in offering tiered services "qosProperty": { {"GuaranteedBurstable QoS": "TRUE", "Burstable QoS Oversubscription Percentage": "25"} } } } } |
Intent Realization
- "Infrastructure High Availability (HA) for VNF"
- OpenStack-based Cloud realization
- For R3, Host-based anti-affinity using server groups //Beyond R3, Support other anti-affinity models at availability zone level etc.
- Note: instance "count" in heat template specifies VNFC scale out factor
- Azure realization
- Availability Set?
- OpenStack-based Cloud realization
"Infrastructure Resource Isolation for VNF" – { "qosProperty": { {"Burstable QoS": "TRUE", "Burstable QoS Oversubscription Percentage": "25"} } }
OpenStack-based VMware VIO Cloud realization
- This can be achieved through min guarantee -- limit (upper bound) & reservation (guaranteed min.) are part of OpenStack flavor metadata
- Example
- VNFC with "Guaranteed QoS"
- vCPU (Min/Max) - 16, Mem (Min/Max) - 32GB
- Same VNFC with "Burstable QoS", 25% oversubscription
- vCPU (Min) - 16, Mem (Min) - 32GB
- vCPU (Max) - 20, Mem (Max) - 40GB
- VNFC with "Guaranteed QoS"
- Example
OOF → Multi-VIM/Cloud Policy API - Other
- Convert to appropriate instance type based on intent //e.g. "Infrastructure Resource Isolation for VNF" may result in a different instance type if the cloud owner supports "Burstable QoS"
SO → Multi-VIM/Cloud
- Get Cloud Region of interest
- Parse Template (e.g. OpenStack Heat Template)
- For each VNFC, instance type in the template
- Get Policy based on <Service, VNFC>
- Value/Content: <Policy JSON - only Intent portion>
- Parse Policy JSON
- Modify template according to Intent - intent examples below
- "Infrastructure High Availability (HA) for VNF"
- "Infrastructure Resource Isolation for VNF"
- "Burstable QoS"
- Get Policy based on <Service, VNFC>
- For each VNFC, instance type in the template
Policy Management
...
//Policy Example 2 - VNFC vDNS which is part of vLoadBalancer/vDNS service
{
"Service": "vDNS",
"VNFC": "vDNS",
//By default, Policy (Intent) is applicable to all cloud owners/regions unless specified.
{
"intent":
{
"name": "Infrastructure High Availability (HA) for VNF",
}
},
{
"intent":
{
"name": "Infrastructure Resource Isolation for VNF",
// realization possible without dedicating CPU and Memory, refer to section on "Cloud Resource Partitioning for Differentiated QoS"
// on how this can help in offering tiered services
"qosProperty":
{
{"Guaranteed QoS": "TRUE"}
}
}
}
} |
Cloud Resource Partitioning for Differentiated QoS (Combined with Previous)
Value:
- Applicable to all use cases
- Casablanca Targets:
- vCPE (Enable Tiered service offering); 5G Network Slicing (Stretch Goal)
...