Skip to content

Commit 9835f69

Browse files
Merge pull request #307631 from msftadam/patch-889316
Revise best practices for Azure Operator Service Manager
2 parents d5c78de + 90383f9 commit 9835f69

1 file changed

Lines changed: 28 additions & 27 deletions

File tree

articles/operator-service-manager/best-practices-onboard-deploy.md

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Basic Concepts for Azure Operator Service Manager
3-
description: Understand Azure Operator Service Manager basic concepts to onboard and deploy a network function.
3+
description: Understand Azure Operator Service Manager basic concepts behind onboarding and deploying a network function.
44
author: msftadam
55
ms.author: adamdor
66
ms.date: 10/06/2025
@@ -9,7 +9,7 @@ ms.service: azure-operator-service-manager
99
---
1010

1111
# 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.
1313

1414
## General considerations
1515
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
2323
## Publisher considerations
2424
- 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;
2525
- 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.
2727
- 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:
2929
- Resources and artifacts used in production
3030
- Resources and artifacts used for testing and development
3131

@@ -44,13 +44,12 @@ The Azure Operator Service Manager publisher is a regional service deployed acro
4444
- The publisher name must be unique for each Microsoft Entra tenant in each region.
4545

4646
## 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.
4848

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.
5453

5554
The ARM template can deploy only Resource Manager resources from the following resource providers:
5655
- `Microsoft.Compute`
@@ -63,14 +62,15 @@ The ARM template can deploy only Resource Manager resources from the following r
6362

6463
For ARM templates that contain anything beyond the preceding list, all `PUT` calls on the VNF result in a validation error.
6564

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`.
7171

7272
> [!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.
7474
7575
## NSDG and NSDV considerations
7676
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:
8484

8585
These five components form a single NSDG. A single NSDG can have multiple NSDVs.
8686

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.
9192

9293
> [!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.
9495
9596
## SNS considerations
9697
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.
9798

9899
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).
99100

100-
## Resource scheme use-case examples
101+
## Resource scheme considerations
101102
The following two scenarios illustrate Azure Operator Service Manager resource mapping.
102103

103104
### Scenario: Single network function
104105
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.
106107
- **NFDV**: As needed based on use cases that trigger NFDV minor or major version updates.
107108
- **NSDG**: Single. Combines the NFs and the Kubernetes cluster definitions.
108109
- **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
119120
- **NSDG**: Single. Combines all NFs, shared and independent components, and infrastructure (Kubernetes cluster or any supporting VMs).
120121
- **NSDV**: As needed based on the use cases that trigger NSDV minor or major version updates.
121122
- **CGS**:
122-
- Single. Global for all components that have shared configuration values.
123+
- Single. Global for all components.
123124
- Single per NF, including the version of the NFD.
124125
- Depending on the total number of parameters, consider combining all the CGSs into a single CGS.
125126
- **CGV**: Equal to the number of CGSs.
126127
- **SNS**: Single per NSDV.
127128

128-
## Network Function upgrade considerations
129+
## Upgrade considerations
129130
Assuming that NFs support in-place and in-service upgrades, the following considerations apply for CNFs:
130131
- If you add new charts and images, Azure Operator Service Manager installs the new charts.
131132
- 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:
140141
- Deployment policy, to control whether VM deployment is allowed or not
141142
- 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.
142143

143-
## Deployment troubleshooting considerations
144+
## Troubleshooting considerations
144145
During installation and upgrade, by default:
145146
- The `atomic` and `wait` options are set to `true`.
146147
- The operation timeout is set to `27 minutes`.
@@ -200,4 +201,4 @@ As the first step toward cleaning up an onboarded environment, delete publisher
200201
> [!IMPORTANT]
201202
> Be sure to delete the SNS before you delete the NFDV.
202203
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

Comments
 (0)