You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Basic concepts for Azure Operator Service Manager
12
-
Microsoft has developed many proven practices for managing network functions (NFs) using Azure Operator Service Manager. This article provides basic guidelines that NF vendors, telco operators, and their partners can follow to optimize NF deployments. Consider these concepts when beginning the onboard and deployment planning process.
12
+
This article captures best practice recommendations to onboard and deploy network functions (NFs) with Azure Operator Service Manager. Following these basic guidelines, vendors, operators, and their partners can optimize network services deployed to Azure Operator Nexus. Consider these concepts at the beginning of any network function onboarding planning process.
13
13
14
14
## General considerations
15
15
We recommend that you first onboard and deploy your simplest NFs (one or two charts) by using the quickstarts to familiarize yourself with the overall flow. You can add necessary configuration details in subsequent iterations. As you go through the quickstarts, consider the following points:
@@ -23,9 +23,9 @@ We recommend that you first onboard and deploy your simplest NFs (one or two cha
23
23
## Publisher considerations
24
24
- We recommend that you create a single publisher per NF supplier, or per NF type per NF supplier, where the NF supplier may provide more than one NF type. This practice;
25
25
- Provides for the most optimal support, maintenance, and governance experience, by preventing proliferation of publishers. Especially during upgrade activities where the same action is often executed across many NFs.
26
-
- Lowers total operating costs by reducing the number of publisher backing resources, like ACR or Storage Accounts.
26
+
- Lowers total operating costs by reducing the number of publisher backing resources, like Azure Container Registry (ACR) or Storage Accounts.
27
27
- Simplifies the network service design (NSD), where it may consist of multiple NFs from multiple vendors.
28
-
- After you test and approve the desired set of Azure Operator Service Manager publisher resources for production use, we recommend marking the entire set as immutable. Marking the set as immutable helps prevent accidental changes and ensure a consistent deployment experience. Consider relying on immutability capabilities to distinguish between:
28
+
- After you test and approve the desired set of Azure Operator Service Manager publisher resources for production use, we recommend marking the entire set as immutable. Marking the set as immutable helps prevent accidental changes and ensures a consistent deployment experience. Immutability markings help distinguish between:
29
29
- Resources and artifacts used in production
30
30
- Resources and artifacts used for testing and development
31
31
@@ -44,13 +44,12 @@ The Azure Operator Service Manager publisher is a regional service deployed acro
44
44
- The publisher name must be unique for each Microsoft Entra tenant in each region.
45
45
46
46
## NFDG and NFDV considerations
47
-
The network function definition group (NFDG) represents the smallest component that you plan to reuse independently across multiple services. All parts of an NFDG are always deployed together. These parts are called `networkFunctionApplications` items.
47
+
The network function definition group (NFDG) represents the smallest component that you plan to reuse independently across multiple services. All parts of an NFDG are always deployed together. These parts are called `networkFunctionApplications` items. For example, it's natural to onboard a single NF that consists of multiple Helm charts and images as a single NFDG if you always deploy those components together. In cases where multiple NFs are always deployed together, it's reasonable to have a single NFDG for all of them. Single NFDGs can have multiple NFDVs.
48
48
49
-
For example, it's natural to onboard a single NF that consists of multiple Helm charts and images as a single NFDG if you always deploy those components together. In cases where multiple NFs are always deployed together, it's reasonable to have a single NFDG for all of them. Single NFDGs can have multiple NFDVs.
50
-
51
-
For CNF NFDVs, the `networkFunctionApplications` list can contain only Helm packages. It's reasonable to include multiple Helm packages if they're always deployed and deleted together.
52
-
53
-
For VNF NFDVs, the `networkFunctionApplications` list must contain at least one `VhdImageFile` value and one ARM template. The ARM template should deploy a single virtual machine (VM). To deploy multiple VMs for a single VNF, make sure to use a separate ARM template for each VM.
49
+
* For CNF NFDVs, the `networkFunctionApplications` list can contain only Helm packages.
50
+
* It's reasonable to include multiple Helm packages if they're always deployed and deleted together.
51
+
* For VNF NFDVs, the `networkFunctionApplications` list must contain at least one `VhdImageFile` value and one ARM template.
52
+
* To deploy multiple virtual machines (VMs) for a single VNF, make sure to use a separate ARM template for each VM.
54
53
55
54
The ARM template can deploy only Resource Manager resources from the following resource providers:
56
55
-`Microsoft.Compute`
@@ -63,14 +62,15 @@ The ARM template can deploy only Resource Manager resources from the following r
63
62
64
63
For ARM templates that contain anything beyond the preceding list, all `PUT` calls on the VNF result in a validation error.
65
64
66
-
### Common use cases that trigger an NFDV minor or major version update
67
-
- Updating CGSs or configuration group values (CGVs) for an existing release that triggers a change to `deployParametersMappingRuleProfile`
68
-
- Updating values that are hard-coded in the NFDV
69
-
- Marking components as inactive to prevent them from being deployed via `applicationEnablement: Disabled`
70
-
- A new NF release, such as charts and images
65
+
### NFDV minor or major updates
66
+
The NFDV represents a release of the base NFDG and is associated to a unique version. As the NF changes overtime, many NFDVs are use to capture capabilities, at any given point in time. Typical changes that trigger a new NFDV may include:
67
+
- Updating NF artifacts, such as new charts or image versions.
68
+
- Updating CGSs or configuration group values (CGVs) that change `deployParametersMappingRuleProfile`.
69
+
- Updating any default values hard-coded into the NFDV.
70
+
- Updating component enablement, to prevent them from being deployed via `applicationEnablement: Disabled`.
71
71
72
72
> [!NOTE]
73
-
> A minimum number of changes is required every time the payload of an NF changes. A minor or major NF release without exposing new CGS parameters requires only updating the artifact manifest, pushing new images and charts, and bumping the NFDV.
73
+
> A NF release which doesn't expose new CGS parameters requires only updating the artifact manifest, pushing new images and charts, and bumping the NFDV.
74
74
75
75
## NSDG and NSDV considerations
76
76
A network service design group (NSDG) is a composite of one or more NFDGs and any infrastructure components deployed at the same time. These components might include clusters and VMs in Nexus Kubernetes or Azure Kubernetes Service (AKS). A site network service (SNS) refers to a single NSDV. Such a design provides a consistent and repeatable deployment of the network service to a site from a single SNS `PUT` call.
@@ -84,25 +84,26 @@ An example NSDG might consist of:
84
84
85
85
These five components form a single NSDG. A single NSDG can have multiple NSDVs.
86
86
87
-
### Common use cases that trigger an NSDV minor or major version update
88
-
- Creating or deleting CGSs
89
-
- Changes in the ARM template associated with one of the NFs being deployed
90
-
- Changes in the infrastructure ARM template; for example, Nexus Kubernetes, AKS, or VM
87
+
### NSDV minor or major update
88
+
The NSDV represents a release of the base NSD and is associated to a unique version. NSDV changes are less frequent than NFDV changes, and in some cases, a single NSDV supports the entire lifecycle of a site network service. However, the following service changes do require new a NSDV:
89
+
- Creating, deleting, or adding values in CGSs.
90
+
- Changing the NF ARM template used by a deployed site network service resource.
91
+
- Changing the infrastructure ARM template used by a deploy site resource.
91
92
92
93
> [!NOTE]
93
-
> Changes in an NFDV shouldn't trigger an NSDV update. The NFDV should be exposed as a parameter within the CGS, so operators can control what to deploy by using CGVs.
94
+
> Expose the NFDV as a parameter within the CGS, so operators can control what to deploy using CGVs, further reducing NSDV change frequency.
94
95
95
96
## SNS considerations
96
97
We recommend that you have a single SNS for the entire site, including the infrastructure. The SNS should deploy any required infrastructure (for example, clusters and VMs in Nexus Kubernetes or AKS), and then deploy the required NFs on top. Such a design provides a consistent and repeatable deployment of the network service to a site from a single SNS `PUT` call.
97
98
98
99
We recommend that you deploy every SNS with a user-assigned managed identity rather than a system-assigned managed identity. This user-assigned managed identity must have permissions to access the NFDV and must have the role of Managed Identity Operator on itself. For more information, see [Create and assign a user-assigned managed identity](how-to-create-user-assigned-managed-identity.md).
99
100
100
-
## Resource scheme use-case examples
101
+
## Resource scheme considerations
101
102
The following two scenarios illustrate Azure Operator Service Manager resource mapping.
102
103
103
104
### Scenario: Single network function
104
105
An NF with one or two application components is deployed to a Nexus Kubernetes cluster. Here's the breakdown of resources:
105
-
-**NFDG**: If components can be used independently, two NFDGs (one per component). If components are always deployed together, then a single NFDG.
106
+
-**NFDG**: If components can be used independently, two NFDGs with one per component. If components are always deployed together, then a single NFDG.
106
107
-**NFDV**: As needed based on use cases that trigger NFDV minor or major version updates.
107
108
-**NSDG**: Single. Combines the NFs and the Kubernetes cluster definitions.
108
109
-**NSDV**: As needed based on the use cases that trigger NSDV minor or major version updates.
@@ -119,13 +120,13 @@ Multiple NFs with some shared and independent components are deployed to a Nexus
119
120
-**NSDG**: Single. Combines all NFs, shared and independent components, and infrastructure (Kubernetes cluster or any supporting VMs).
120
121
-**NSDV**: As needed based on the use cases that trigger NSDV minor or major version updates.
121
122
-**CGS**:
122
-
- Single. Global for all components that have shared configuration values.
123
+
- Single. Global for all components.
123
124
- Single per NF, including the version of the NFD.
124
125
- Depending on the total number of parameters, consider combining all the CGSs into a single CGS.
125
126
-**CGV**: Equal to the number of CGSs.
126
127
-**SNS**: Single per NSDV.
127
128
128
-
## Network Function upgrade considerations
129
+
## Upgrade considerations
129
130
Assuming that NFs support in-place and in-service upgrades, the following considerations apply for CNFs:
130
131
- If you add new charts and images, Azure Operator Service Manager installs the new charts.
131
132
- If you remove some charts and images, Azure Operator Service Manager deletes the charts that are no longer declared in the NFDV.
@@ -140,7 +141,7 @@ The following considerations apply for VNFs:
140
141
- Deployment policy, to control whether VM deployment is allowed or not
141
142
- In the NFDV, you need to parameterize `deployParameters` and `templateParameters` in such a way that you can supply the unique values by using CGVs for each.
142
143
143
-
## Deployment troubleshooting considerations
144
+
## Troubleshooting considerations
144
145
During installation and upgrade, by default:
145
146
- The `atomic` and `wait` options are set to `true`.
146
147
- The operation timeout is set to `27 minutes`.
@@ -200,4 +201,4 @@ As the first step toward cleaning up an onboarded environment, delete publisher
200
201
> [!IMPORTANT]
201
202
> Be sure to delete the SNS before you delete the NFDV.
202
203
203
-
Azure Operator Service Manager does not delete namespaces as part of any deletion operation. As such, after all resources are deleted, some artifacts might remain on the cluster. To remove any remaining artifacts, you should delete any workload namespaces created on the cluster. Including the namespace deletion operation as part of the workflow pipeline is a recommendation to automate the action.
204
+
Azure Operator Service Manager doesn't delete namespaces as part of any deletion operation. As such, after all resources are deleted, some artifacts might remain on the cluster. To remove any remaining artifacts, you should delete any workload namespaces created on the cluster. Including the namespace deletion operation as part of the workflow pipeline is a recommendation to automate the action.
0 commit comments