Versions Compared

Key

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

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

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"
  • 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?
    • "Infrastructure Resource Isolation for VNF" – { "qosProperty": { {"Burstable QoS": "TRUE", "Burstable QoS Oversubscription Percentage": "25"} } }

        • 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
        • 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" 
    • 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, ...
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
languagepy
themeEmacs
titleSO <-> MC Cloud-Agnostic Workload Deployment Policy API
linenumberstrue
collapsetrue
#
#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
  • Policy DB – is there any restriction on the type of json objects that can be stored?
    • Matti to follow up with Ankit

...

View file
namePromethus-aggregation.pdf
height250

ONAP Edge Analytics with DCAE/DMaaP independent of closed loop (Beyond Casablanca)

Value

  • 5G Analytics

ONAP ComponentLife cycle phaseEnhancements
OOM - ONAP CentralDeploy
  • Separate ONAP-edge Instance per 'edge domain', (ie., separate from onap-central instance, of course)
    • Note: Independent of any Edge CP's Orchestration components.
  • SP uses a central-OOM with a 'policy' for deployment of an onap-edge instance, e.g., xyz edge provider with abc components, etc.
    • However, onap-edge instance can be 'lighter weight' with subset of components needed (per MVP discussed below)
    • Desirable to managed as a separate K8s cluster (ie., separate from onap-central instance, of course) and, only for onap-edge use, ie., don't use for other 'workloads' like network apps or 3rd party apps
  • Central OOM to deploy the following ONAP edge instance
    • DMaaP with mirror capability

...