Summary: Edge Scoping
...
- Cloud SW Capability example
- Cloud region "x" with SR-IOV, GPU, Min-guarantee support
- Cloud region "y" with SR-IOV support
- Cloud HW Capability example
- Resource cluster "xa" in Cloud region "x" with SR-IOV and GPU support
- Resource cluster "xb" in Cloud region "x" with GPU support
- Resource cluster "ya" in Cloud region "y" with SR-IOV support
Note 3:
- 5G Service/VNF placement example
- Constraints used by Optimization Framework (OOF)
5G CU-UP VNF location to be fixed to a specific physical DC based on 5G DU, bounded by a max distance from 5G DU
- Optimization Policy used by OOF
Choose optimized cloud region (or instance) for the placement of 5G CU UP for subscriber group based on the above constraints
- Constraints used by Optimization Framework (OOF)
Note 4:
- For the 5G Service/VNF placement example in Note 3
- 5G CU-UP VNF preferably maps to a specific Cloud region & Physical DC End Point
Note 5:
- For the 5G Service/VNF placement example in Note 3
- OOF will pass the Physical DC End Point to SO as a opaque data
Note 6:
- For the 5G Service/VNF placement example in Note 3
- SO passes the Physical DC End Point to Multi-Cloud as a opaque data, besides the Cloud Region
Cloud-agnostic Placement/Networking & Homing Policies (Phase 1 - Casablanca MVP, Phase 2 - Stretch Goal)
...
- Parse Template (e.g. OpenStack Heat Template)
- For each VNFC, instance type in the template
- Fetch Cloud-Agnostic Workload Deployment Policy (Intent) based on VNFC (e.g. vGW)
- Value/Content: <Policy JSON>
- Parse Policy JSON
- Modify template (if needed) according to Intent
- Intent examples of interest for R3
- "Infrastructure High Availability (HA) for VNF"
- "Infrastructure Resource Isolation for VNF"
- "Burstable QoS"
- "Infrastructure Resource Isolation for VNF"
- "Guaranteed QoS"
- Intent examples of interest for R3
- Fetch Cloud-Agnostic Workload Deployment Policy (Intent) based on VNFC (e.g. vGW)
- For each VNFC, instance type in the template
Policy (Intent) Realization
- Determining the flavor (OpenStack-based VIMs) # same logic applies for instance type in Azure
- Each VNFC uniquely maps to a Flavor - for e.g. VNFC "vgw" maps to "vgw-base", "vDNS" maps to "vDNS-base"
- Beyond Casablanca
- VNFC intent to realization mapping happens through A&AI.
- "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.
- Implementation Notes:
- 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 template 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 "vgw" with "Guaranteed QoS"
- vCPU (Min/Max) - 16, Mem (Min/Max) - 32GB
- Maps to "vgw-Guaranteed-QoS" flavor for OpenStack-based VIMs
- Same VNFC with "Burstable QoS", 25% over-subscription
- vCPU (Min) - 16, Mem (Min) - 32GB
- vCPU (Max) - 20, Mem (Max) - 40GB
- Maps to "vgw-Burstable-QoS-25-percent-oversubscription" flavor for OpenStack-based VIMs
- VNFC "vDNS" with "Guaranteed QoS" & "Infrastructure High Availability"
- Maps to "vDNS-Guaranteed-QoS" flavor and "vDNS-infrastructure-high-availability" heat template
- VNFC "vgw" with "Guaranteed QoS"
- Only certain pre-defined over-subscription values are allowed to simplify implementation
- Implementation Notes:
- 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
- Implementation Notes:
- From an implementation stand point, MC would be exposing a Workload Deployment Policy (Intent) API
- Input : deployment-intent, cloud owner, cloud region, deployment template, deployment environment file, ...
- Output : Success or Failure with reason, modified deployment template, modified deployment environment file, ...
- From an implementation stand point, MC would be exposing a Workload Deployment Policy (Intent) API
- Determining the flavor (OpenStack-based VIMs) # same logic applies for instance type in Azure
SO ↔ MC API extension - Json Schema with use case examples - (the exact aligned to the SO/MC API defined by SO Casablanca HPA Design to minimize the terminology set
(This data is sent from OOF to SO. SO transparently echoes this data to MC)
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
# #Spec Reference: https://wiki.onap.org/display/DW/Edge+Scoping+MVP+for+Casablanca+-+ONAP+Enhancements#EdgeScopingMVPforCasablanca-ONAPEnhancements-Cloud-agnosticPlacement/Networking&HomingPolicies(Phase1-CasablancaMVP,Phase2-StretchGoal) # #The same information is opaquely passed from OOF to SO # from jsonschema import validate oof_to_so_and_so_to_mc_api_ext_request_schema = { # #Example 1: vCPE, Burstable QoS #vCPE: Infrastructure Resource Isolation for VNF with Burstable QoS # "vnfc-oof_directives": { "directives":[ "type": "array", { "items": { "$ref": "#/definitions/xxx1" }vnfc_directives":[ }, { "definitions": { "xxx1vnfc_id":"vgw", { "type": "object", "directives":[ "properties" : { "directive_name":"Resource-Isolation-Intent-directive", # VNFC name/id "attributes":[ { "vnfc-name-id": {"type": "string"}, "attribute_name": "Infrastructure Resource Isolation for VNF", # cloud-specific realization of the specified deployment intent "attribute_value": "Burstable QoS", # happens in multi-cloud in the cloud-specific plugin }, { "directive-listattribute_name": {"Infrastructure Resource Isolation for VNF - Burstable QoS Oversubscription Percentage", "typeattribute_value": "array25", }, "items": { "$ref": "#/definitions/xxx2" } ] }, ] "definitions": { }, ] }, ] } "xxx2": { # #Example 2: #vCPE: Infrastructure Resource Isolation for VNF with Guaranteed QoS # "oof_directives":{ "directives":[ { "typevnfc_directives":[ "object", { "vnfc_id":"vgw", "properties" : { "directives":[ { #Intent, e.g. Infrastructure High Availability for VNF"directive_name":"Resource-Isolation-Intent-directive", "attributes":[ { "attribute_name": {"type", "string"}"Infrastructure Resource Isolation for VNF", "attribute_value": "Guaranteed QoS", #Optional }, ] }, "attribute_value": {"type", "string"}, ] }, ] }, "directive-list-inner": {] } # #Example 3: #vDNS: Infrastructure HA for VNF & Infrastructure Resource Isolation for VNF with Burstable QoS # "oof_directives":{ "directives":[ { "typevnfc_directives":[ "array", { "vnfc_id":"vdns", "items"directives":[ { "$ref": "#/definitions/xxx3" } { "directive_name":"Resource-Isolation-Intent-directive", }, "attributes":[ { "definitions"attribute_name": {"Infrastructure Resource Isolation for VNF", "attribute_value": "Burstable QoS", "xxx3":}, { "attribute_name": "Infrastructure Resource Isolation for VNF - Burstable QoS Oversubscription Percentage", "typeattribute_value": "object25", }, ] #Intent, e.g. Infrastructure High Availability for VNF}, { "directive_name":"Infrastructure-HA-Intent-directive", "attributes":[ { "attribute_name": "Infrastructure High Availability for VNF", "attribute_name": {"type", "string"}, }, ] #Optional }, ] }, ] }, ] } "attribute_value": {"type", "string"}, # # Example 4: # vDNS: Infrastructure HA for VNF & Infrastructure Resource Isolation for VNF # with Guaranteed QoS # "oof_directives":{ "directives":[ { "vnfc_directives":[ }, { "vnfc_id":"vdns", "directives":[ }, { "directive_name":"Resource-Isolation-Intent-directive", }, "attributes":[ { }, "attribute_name": "Infrastructure Resource Isolation for VNF", }, "attribute_value": "Guaranteed QoS", }, }, }, } # #Example 1: vCPE, Burstable QoS #vCPE: Infrastructure Resource Isolation for VNF with Burstable] QoS # oof_to_so_and_so_to_mc_api_ext_request_instance1 = { "vnfc-directives": [ }, { "vnfc-directive_name-id": "vgw"Infrastructure-HA-Intent-directive", "intent-directive-listattributes": [ { "attribute_name": "Infrastructure High Availability for VNF", { }, "attribute_name": "Infrastructure Resource Isolation for VNF", ] }, ] "attribute_value": "Burstable QoS", }, ] }, "intent-directive-list-inner": [ ] { "attribute_name": "Infrastructure Resource Isolation for VNF - Burstable QoS Oversubscription Percentage", "attribute_value": "25", }, ], }, ], }, # #hpa is purely exemplary in this example # { "vnfc-name-id": "vgw", "hpa-directive-list": [ { "attribute_name": "sriov-param1", "attribute_value": "sriov-param1-value", }, ], }, ], } # #Example 2: #vCPE: Infrastructure Resource Isolation for VNF with Guaranteed QoS # oof_to_so_and_so_to_mc_api_ext_request_instance2 = { "vnfc-directives": [ { "vnfc-name-id": "vdns", "intent-directive-list": [ { "attribute_name": "Infrastructure Resource Isolation for VNF", "attribute_value": "Guaranteed QoS", }, ], }, ], } # #Example 3: #vDNS: Infrastructure HA for VNF & Infrastructure Resource Isolation for VNF with Burstable QoS # oof_to_so_and_so_to_mc_api_ext_request_instance3 = { "vnfc-directives": [ { "vnfc-name-id": "vdns", "intent-directive-list": [ { "attribute_name": "Infrastructure High Availability for VNF", }, { "attribute_name": "Infrastructure Resource Isolation for VNF", "attribute_value": "Burstable QoS", "intent-directive-list-inner": [ { "attribute_name": "Infrastructure Resource Isolation for VNF - Burstable QoS Oversubscription Percentage", "attribute_value": "25", }, ], }, ], }, ], } # # Example 4: # vDNS: Infrastructure HA for VNF & Infrastructure Resource Isolation for VNF # with Guaranteed QoS # oof_to_so_and_so_to_mc_api_ext_request_instance4 = { "vnfc-directives": [ { "vnfc-name-id": "vdns", "intent-directive-list": [ { "attribute_name": "Infrastructure High Availability for VNF", }, { "attribute_name": "Infrastructure Resource Isolation for VNF", "attribute_value": "Guaranteed QoS", }, ], }, ], } validate(oof_to_so_and_so_to_mc_api_ext_request_instance1, oof_to_so_and_so_to_mc_api_ext_request_schema) validate(oof_to_so_and_so_to_mc_api_ext_request_instance2, oof_to_so_and_so_to_mc_api_ext_request_schema) validate(oof_to_so_and_so_to_mc_api_ext_request_instance3, oof_to_so_and_so_to_mc_api_ext_request_schema) validate(oof_to_so_and_so_to_mc_api_ext_request_instance4, oof_to_so_and_so_to_mc_api_ext_request_schema)} |
Follow ups:
- Use Cases for Integration testing
- vCPE
- In the current state, this use case cannot support the intent "Infra HA for VMs in a VNF"
- This use case has been tested in R2 with OOF↔MC capacity check API
- vDNS
- Can support intent "Infra HA for VMs in a VNF" and "Infrastructure Resource Isolation for VNF"
- Nothing additional needed in OOF or MC
- Changes needed in SO to call OOF API
- Marcus from Intel is driving this
- vCPE
- Policy DB – is there any restriction on the type of json objects that can be stored?
- Matti to follow up with Ankit
...
View file | ||||
---|---|---|---|---|
|
ONAP Edge Analytics with DCAE/DMaaP independent of closed loop (Beyond Casablanca)
Value
- 5G Analytics
ONAP Component | Life cycle phase | Enhancements |
---|---|---|
OOM - ONAP Central | Deploy |
|
...