...
- Pre-defined (including custom) flavors map to Instance types in Public Clouds
- Pre-defined flavors are created by the Cloud Admin before the Cloud is used by ONAP for workload deployment
Multi-Cloud - Key Processing Steps
For each cloud owner
...
VNFC to Instance Type Mapping
- One or more VNFCs (e.g. vCPE VGW) could map to an instance type
Operator Configuration – Multi-VIM/Cloud Plugin
The operator/service provider who uses ONAP will choose which VIMs to use and include the appropriate MultiVIM plugins in his ONAP deployment. For example, let’s assume they pick private Openstack, private VMWare, and public Azure as the platform to run their services on.
For each MultiVIM plugin, they configure the following information:
- For each VM flavor, the cost of that VM to the operator. Note that this costs includes the (potentially discounted) list price for the VM, support cost, and operations cost. The last one is definitely operator specific.
- They also specify the cost for each feature: HA, etc
- Note that the operator is free to choose what time duration the cost metric is specified for each of the MultiVIM plugins (e.g., cost per hour, cost per month) since they will do it consistently for each of the VIMs.
Multi-VIM/Cloud - Key Processing Steps
For each cloud owner
- Instance Type Handling
- Instance Type is passed in the capacity check API from OOF (Discuss) //Note, SO → MC passes OpenStack flavor name in the Heat Template/Env file
- 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"
- For each cloud region // Public cloud could have different costs in different geographic locations
- net_value_cost = net_value_cost + cost_instance_type // cost per instance type is based on policy (for R3, it is picked up from Multi Cloud configuration file)
- net_value_cost = net_value_cost + cost_intent //e.g. "Infrastructure High Availability (HA) for VNF" may have additional cost
- Continue R2 Plan
- Private Clouds (OpenStack based)
- Capacity check per Tenant (OpenStack Project)
- returns yes or no
- Capacity check per Tenant (OpenStack Project)
- Public Clouds or Other Clouds
- Capacity check per tenant
- return yes always //assumption: public cloud has infinite capacity
- Capacity check per tenant
- Private Clouds (OpenStack based)
- If infra capacity is finite (Private cloud or Public cloud with reserved instances) // e.g. object of interest is OpenStack Project with a quota (upper limit) for cpu, mem and local disk
- Option A: (potentially supportable with OpenStack based clouds, other clouds to be investigated)
- normalized_cpu_per_object = (current_cpu_used_object + instance_type_cpu*number_of_instances_of vnfc)/total_cpu_object
- if normalized_cpu_per_object > 1, capacity check failed
- normalized_mem_per_object = (current_mem_used_object + instance_type_mem*number_of_instances_of_vnfc)/total_mem_object
- if normalized_mem_per_object > 1, capacity check failed
- normalized_disk_per_object = (current_disk_used_object + instance_type_disk*number_of_instances_of_vnfc)/total_disk_object
- if normalized_disk_per_object > 1, capacity check failed
- net_value_capacity = normalized_infra_capacity = wcpu*normalized_cpu_per_object + wmem*normalized_mem_object + wdisk*normalized_disk_per_object // wcpu, wmem, wdisk are specified in a multi-cloud configuration file; wcpu + wmem + wdisk = 1
- normalized_cpu_per_object = (current_cpu_used_object + instance_type_cpu*number_of_instances_of vnfc)/total_cpu_object
- Option B: (under study)
- normalized_instances_per_object = (current_used_reserved_instances + number_of_instances_of_vnfc)/total_reserved_instances
- net_value_capacity = normalized_instances_per_object
- Option A: (potentially supportable with OpenStack based clouds, other clouds to be investigated)
...