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
Updated the title and description to reflect a shift from best practices to basic concepts for Azure Operator Service Manager. Adjusted content to align with the new focus on foundational guidelines for onboarding and deploying network functions.
Copy file name to clipboardExpand all lines: articles/operator-service-manager/best-practices-onboard-deploy.md
+14-71Lines changed: 14 additions & 71 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,29 +1,27 @@
1
1
---
2
-
title: Best Practices for Azure Operator Service Manager
3
-
description: Understand best practices for Azure Operator Service Manager to onboard and deploy a network function.
2
+
title: Basic Concepts for Azure Operator Service Manager
3
+
description: Understand Azure Operator Service Manager basic concepts to onboard and deploy a network function.
4
4
author: msftadam
5
5
ms.author: adamdor
6
6
ms.date: 10/06/2025
7
7
ms.topic: best-practice
8
8
ms.service: azure-operator-service-manager
9
9
---
10
10
11
-
# Azure Operator Service Manager best practices to onboard and deploy network functions
12
-
13
-
Microsoft has developed many proven practices for managing network functions (NFs) by using Azure Operator Service Manager. This article provides guidelines that NF vendors, telco operators, and their partners can follow to optimize the design. Keep these practices in mind when you onboard and deploy your NFs.
11
+
# 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.
14
13
15
14
## General considerations
16
-
17
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:
18
16
19
17
- Structure your artifacts to align with planned use. Consider separating global artifacts from the artifacts that you want to vary by site or instance.
20
18
- Ensure service composition of multiple NFs with a set of parameters that matches the needs of your network. For example, you might customize 100 values in a chart that has 1,000 values. Make sure that in the configuration group schema (CGS) layer (covered more extensively in sections that follow), you expose only 100.
21
19
- Think early on about how you want to separate infrastructure (for example, clusters) or artifact stores and access between suppliers, in particular within a single service. Make your set of publisher resources match this model.
22
20
- The Azure Operator Service Manager site is a logical concept, a representation of a deployment destination. Examples include a Kubernetes cluster for containerized network functions (CNFs) or an Azure Operator Nexus extended custom location for virtualized network functions (VNFs). It isn't a representation of a physical edge site, so you have use cases where multiple sites share the same physical location.
23
21
- Azure Operator Service Manager provides various APIs that help you combine it with Azure DevOps or other pipeline tools.
24
-
22
+
- The Azure Operator Service Manager command-line interface (CLI) extension assists with the publishing of network function definitions (NFDs) and NSDs. Use this tool as the starting point for creating new NFDs and NSDs. Consider using the CLI to create the initial files. Then edit them to incorporate infrastructure components before you publish.
23
+
25
24
## Publisher considerations
26
-
27
25
- 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 then one NF type. This practice;
28
26
- 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.
29
27
- Lowers total operating costs by reducing the number of publisher backing resources, like ACR or Storage Accounts.
@@ -44,7 +42,6 @@ We recommend that you first onboard and deploy your simplest NFs (one or two cha
44
42
- Consider using agreed-upon naming conventions and governance techniques to help address any remaining gaps.
45
43
46
44
## NFDG and NFDV considerations
47
-
48
45
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.
49
46
50
47
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.
@@ -54,7 +51,6 @@ For CNF NFDVs, the `networkFunctionApplications` list can contain only Helm pack
54
51
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.
55
52
56
53
The ARM template can deploy only Resource Manager resources from the following resource providers:
57
-
58
54
-`Microsoft.Compute`
59
55
-`Microsoft.Network`
60
56
-`Microsoft.NetworkCloud`
@@ -66,7 +62,6 @@ The ARM template can deploy only Resource Manager resources from the following r
66
62
For ARM templates that contain anything beyond the preceding list, all `PUT` calls on the VNF result in a validation error.
67
63
68
64
### Common use cases that trigger an NFDV minor or major version update
69
-
70
65
- Updating CGSs or configuration group values (CGVs) for an existing release that triggers a change to `deployParametersMappingRuleProfile`
71
66
- Updating values that are hard-coded in the NFDV
72
67
- Marking components as inactive to prevent them from being deployed via `applicationEnablement: Disabled`
@@ -76,7 +71,6 @@ For ARM templates that contain anything beyond the preceding list, all `PUT` cal
76
71
> 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.
77
72
78
73
## NSDG and NSDV considerations
79
-
80
74
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.
81
75
82
76
An example NSDG might consist of:
@@ -90,36 +84,25 @@ An example NSDG might consist of:
90
84
These five components form a single NSDG. A single NSDG can have multiple NSDVs.
91
85
92
86
### Common use cases that trigger an NSDV minor or major version update
93
-
94
87
- Creating or deleting CGSs
95
88
- Changes in the ARM template associated with one of the NFs being deployed
96
89
- Changes in the infrastructure ARM template; for example, Nexus Kubernetes, AKS, or VM
97
90
98
91
> [!NOTE]
99
92
> 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.
100
93
101
-
## CLI considerations
102
-
103
-
The Azure Operator Service Manager command-line interface (CLI) extension assists with the publishing of network function definitions (NFDs) and NSDs. Use this tool as the starting point for creating new NFDs and NSDs.
104
-
105
-
Consider using the CLI to create the initial files. Then edit them to incorporate infrastructure components before you publish.
106
-
107
94
## SNS considerations
108
-
109
95
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.
110
96
111
97
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).
112
98
113
99
## Azure Operator Service Manager resource mapping per use case
114
-
115
100
The following two scenarios illustrate Azure Operator Service Manager resource mapping.
116
101
117
102
### Scenario: Single network function
118
-
119
103
An NF with one or two application components is deployed to a Nexus Kubernetes cluster.
120
104
121
105
Here's the breakdown of resources:
122
-
123
106
-**NFDG**: If components can be used independently, two NFDGs (one per component). If components are always deployed together, then a single NFDG.
124
107
-**NFDV**: As needed based on use cases that trigger NFDV minor or major version updates.
125
108
-**NSDG**: Single. Combines the NFs and the Kubernetes cluster definitions.
@@ -129,10 +112,7 @@ Here's the breakdown of resources:
129
112
-**SNS**: Single per NSDV.
130
113
131
114
### Scenario: Multiple network functions
132
-
133
-
Multiple NFs with some shared and independent components are deployed to a Nexus Kubernetes cluster.
134
-
135
-
Here's the breakdown of resources:
115
+
Multiple NFs with some shared and independent components are deployed to a Nexus Kubernetes cluster. Here's the breakdown of resources:
136
116
137
117
-**NFDG**:
138
118
- Single for all shared components.
@@ -147,16 +127,13 @@ Here's the breakdown of resources:
147
127
-**CGV**: Equal to the number of CGSs.
148
128
-**SNS**: Single per NSDV.
149
129
150
-
## Software upgrade considerations
151
-
130
+
## Network Function upgrade considerations
152
131
Assuming that NFs support in-place and in-service upgrades, the following considerations apply for CNFs:
153
-
154
132
- If you add new charts and images, Azure Operator Service Manager installs the new charts.
155
133
- If you remove some charts and images, Azure Operator Service Manager deletes the charts that are no longer declared in the NFDV.
156
134
- Azure Operator Service Manager validates that the NFDV/NSDV originated from the same NFDG/NSDG and hence the same publisher. Cross-publisher upgrades aren't supported.
157
135
158
136
The following considerations apply for VNFs:
159
-
160
137
- In-place upgrades are currently not supported. You need to instantiate a new VNF with an updated image side by side. Then delete the older VNF by deleting the SNS.
161
138
- If a VNF is deployed as a pair of VMs for high availability, you can design the network service in such a way that you can delete and upgrade VMs one by one. We recommend the following design to allow the deletion and upgrade of individual VMs:
162
139
- Deploy each VM by using a dedicated ARM template.
@@ -166,15 +143,14 @@ The following considerations apply for VNFs:
166
143
- 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.
167
144
168
145
## Considerations for high availability and disaster recovery
169
-
170
146
Azure Operator Service Manager is a regional service deployed across availability zones in regions that support them. For a list of regions where Azure Operator Service Manager is available, see [Products available by region](https://azure.microsoft.com/explore/global-infrastructure/products-by-region/?products=operator-service-manager,azure-network-function-manager®ions=all). For a list of Azure regions that have availability zones, see [Find the Azure geography that meets your needs](https://azure.microsoft.com/explore/global-infrastructure/geographies/#geographies).
171
147
172
148
Consider the following requirements for high availability and disaster recovery:
173
-
174
149
- To provide geo-redundancy, make sure you have a publisher in every region where you're planning to deploy NFs. Consider using pipelines to keep publisher artifacts and resources in sync across the regions.
175
150
- The publisher name must be unique for each Microsoft Entra tenant in each region.
176
151
- If a region becomes unavailable, you can deploy (but not upgrade) an NF by using publisher resources in another region. Assuming that artifacts and resources are identical between the publishers, you need to change only the `networkServiceDesignVersionOfferingLocation` value in the SNS resource payload:
@@ -222,28 +201,24 @@ The component name is defined in the NFDV:
222
201
id: acrArtifactStore.id
223
202
}
224
203
</pre>
204
+
```
225
205
226
206
> [!IMPORTANT]
227
207
> Be sure to set `atomic` and `wait` back to `true` after initial onboarding is complete.
228
208
229
209
## Cleanup considerations
230
-
231
210
When you're cleaning up resources, the order is important. Deleting resources out of order can result in orphaned resources left behind.
232
211
233
212
### Operator resources
234
-
235
213
As the first step toward cleaning up a deployed environment, delete operator resources in the following order:
236
-
237
214
1. SNS
238
215
1. Site
239
216
1. CGV
240
217
241
218
You can proceed to delete other environment resources, such as the Nexus Kubernetes cluster, only after you successfully delete these operator resources.
242
219
243
220
### Publisher resources
244
-
245
221
As the first step toward cleaning up an onboarded environment, delete publisher resources in the following order:
246
-
247
222
1. NSDV
248
223
1. NSDG
249
224
1. NFDV
@@ -258,13 +233,10 @@ As the first step toward cleaning up an onboarded environment, delete publisher
258
233
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.
259
234
260
235
## Sequential ordering behavior for CNF applications
261
-
262
236
By default, CNF applications are installed or updated based on the order in which they appear in the NFDV. For the deletion operation, the CNF applications are deleted in the specified reverse order. If you need to define a specific order of CNF applications that's different from the default, use `dependsOnProfile` to define a unique sequence for installation, update, and deletion operations.
263
237
264
238
### How to use dependsOnProfile
265
-
266
239
You can use `dependsOnProfile` in the NFDV to control the sequence of Helm executions for CNF applications. In the example that follows:
267
-
268
240
- During an installation operation, the CNF applications are deployed in the following order: `dummyApplication1`, `dummyApplication2`, `dummyApplication`.
269
241
- During an update operation, the CNF applications are updated in the following order: `dummyApplication2`, `dummyApplication1`, `dummyApplication`.
270
242
- During a deletion operation, the CNF applications are deleted in the following order: `dummyApplication2`, `dummyApplication1`, `dummyApplication`.
@@ -316,7 +288,6 @@ You can use `dependsOnProfile` in the NFDV to control the sequence of Helm execu
316
288
```
317
289
318
290
### Common errors
319
-
320
291
Currently, if the `dependsOnProfile` code provided in the NFDV is invalid, the NF operation fails with a validation error. The message for the validation error appears in the operation status resource and looks similar to the following example:
321
292
322
293
```json
@@ -333,31 +304,3 @@ Currently, if the `dependsOnProfile` code provided in the NFDV is invalid, the N
333
304
}
334
305
}
335
306
```
336
-
337
-
## injectArtifactStoreDetails considerations
338
-
339
-
In some cases, third-party Helm charts might not be fully compliant with Azure Operator Service Manager requirements for `registryURL`. In this case, you can use the `injectArtifactStoreDetails` feature to avoid making changes to Helm packages.
340
-
341
-
To use `injectArtifactStoreDetails`, set the `installOptions` parameter in the NF resource's `roleOverrides` section to `true`. Then use whatever `registryURL` value keeps the registry URL valid. The following example shows the `injectArtifactStoreDetails` parameter enabled:
0 commit comments