Skip to content

Commit a05b202

Browse files
Merge pull request #301396 from rmcmurray/patch-1
Update policy documentation from RINGS to TIERS
2 parents 9061463 + 1b0514b commit a05b202

1 file changed

Lines changed: 19 additions & 28 deletions

File tree

articles/governance/policy/how-to/policy-safe-deployment-practices.md

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,11 @@ ms.topic: conceptual
77

88
# Safe deployment of Azure Policy assignments
99

10-
As your environment expands, so does the demand for a controlled continuous deployment (CD)
11-
pipeline with progressive exposure control. Accordingly, Microsoft recommends DevOps teams follow
12-
the safe deployment practices (SDP) framework. The
13-
safe deployment of Azure Policy definitions and assignments helps limiting the impact of
14-
unintended behaviors of policy resources.
10+
As your environment expands, so does the demand for a controlled continuous deployment (CD) pipeline with progressive exposure control. Accordingly, Microsoft recommends DevOps teams follow the safe deployment practices (SDP) framework. The safe deployment of Azure Policy definitions and assignments helps limiting the impact of unintended behaviors of policy resources.
1511

16-
The high-level approach of implementing SDP with Azure Policy is to gradually rollout policy assignments
17-
by rings to detect policy changes that affect the environment in early stages before it
18-
affects the critical cloud infrastructure.
12+
The high-level approach of implementing SDP with Azure Policy is to gradually rollout policy assignments by tiers to detect policy changes that affect the environment in early stages before it affects the critical cloud infrastructure.
1913

20-
Deployment rings can be organized in diverse ways. In this how-to tutorial, rings are divided by
21-
different Azure regions with _Ring 0_ representing non-critical, low traffic locations,
22-
and _Ring 5_ denoting the most critical, highest traffic locations.
14+
Deployment tiers can be organized in diverse ways. In this how-to tutorial, tiers are divided by different Azure regions with _Tier 5_ representing non-critical, low traffic locations, and _Tier 0_ denoting the most critical, highest traffic locations.
2315

2416
## Steps for safe deployment of Azure Policy assignments with deny or append effects
2517

@@ -34,8 +26,8 @@ Policy assignments that use the `deny` or `append` policy effects.
3426
Flowchart step numbers:
3527

3628
1. Once you've selected your policy definition, assign the policy at the highest-level scope inclusive
37-
of all deployment rings. Apply _resource selectors_ to narrow the applicability to the least
38-
critical ring by using the `"kind": "resource location"` property. Configure the `audit` effect type
29+
of all deployment tiers. Apply _resource selectors_ to narrow the applicability to the least
30+
critical tier by using the `"kind": "resource location"` property. Configure the `audit` effect type
3931
by using _assignment overrides_. Sample selector with `eastUS` location and effect as `audit`:
4032

4133
```json
@@ -69,7 +61,7 @@ validate that the compliance result is as expected.
6961
and impact of the policy. If the results aren't as expected due to application configuration,
7062
refactor the application as appropriate.
7163

72-
3. Repeat by expanding the resource selector property values to include the next rings.
64+
3. Repeat by expanding the resource selector property values to include the next tiers.
7365
locations and validating the expected compliance results and application health. Example selector with an added location value:
7466

7567
```json
@@ -82,9 +74,9 @@ locations and validating the expected compliance results and application health.
8274
}]
8375
```
8476

85-
4. Once you have successfully assigned the policy to all rings using `audit` mode,
77+
4. Once you have successfully assigned the policy to all tiers using `audit` mode,
8678
the pipeline should trigger a task that changes the policy effect to `deny` and reset
87-
the resource selectors to the location associated with _Ring 0_. Example selector with one region and effect set to deny:
79+
the resource selectors to the location associated with _Tier 0_. Example selector with one region and effect set to deny:
8880

8981
```json
9082
"resourceSelectors": [{
@@ -103,9 +95,9 @@ the resource selectors to the location associated with _Ring 0_. Example selecto
10395
5. Once the effect is changed, automated tests should check whether enforcement is taking place as
10496
expected.
10597

106-
6. Repeat by including more rings in your resource selector configuration.
98+
6. Repeat by including more tiers in your resource selector configuration.
10799

108-
7. Repeat this process for all production rings.
100+
7. Repeat this process for all production tiers.
109101

110102
## Steps for safe deployment of Azure Policy assignments with modify or deployIfNotExists effects
111103

@@ -117,8 +109,8 @@ Review the following flowchart with modified steps 5-9:
117109
Flowchart step numbers:
118110

119111
1. Once you've selected your policy definition, assign the policy at the highest-level scope inclusive
120-
of all deployment rings. Apply _resource selectors_ to narrow the applicability to the least
121-
critical ring by using the `"kind": "resource location"` property. Configure the _enforcement mode_ of the assignment to _DoNotEnforce_. Sample selector with `eastUS` location and _enforcementMode_ as _DoNotEnforce_:
112+
of all deployment tiers. Apply _resource selectors_ to narrow the applicability to the least
113+
critical tier by using the `"kind": "resource location"` property. Configure the _enforcement mode_ of the assignment to _DoNotEnforce_. Sample selector with `eastUS` location and _enforcementMode_ as _DoNotEnforce_:
122114

123115
```json
124116
"resourceSelectors": [{
@@ -150,8 +142,7 @@ validate that the compliance result is as expected.
150142

151143
You may also [trigger remediation tasks](../how-to/remediate-resources.md) to remediate existing non-compliant resources. Ensure the remediation tasks are bringing resources into compliance as expected.
152144

153-
3. Repeat by expanding the resource selector property values to include the next ring's
154-
locations and validating the expected compliance results and application health. Example selector with an added location value:
145+
3. Repeat by expanding the resource selector property values to include the next tier's locations and validating the expected compliance results and application health. Example selector with an added location value:
155146

156147
```json
157148
"resourceSelectors": [{
@@ -163,9 +154,9 @@ locations and validating the expected compliance results and application health.
163154
}]
164155
```
165156

166-
4. Once you have successfully assigned the policy to all rings using _DoNotEnforce_ mode,
157+
4. Once you have successfully assigned the policy to all tiers using _DoNotEnforce_ mode,
167158
the pipeline should trigger a task that changes the policy `enforcementMode` to _Default_ enablement and reset
168-
the resource selectors to the location associated with _Ring 0_. Example selector with one region and effect set to deny:
159+
the resource selectors to the location associated with _Tier 0_. Example selector with one region and effect set to deny:
169160

170161
```json
171162
"resourceSelectors": [{
@@ -181,14 +172,14 @@ the resource selectors to the location associated with _Ring 0_. Example selecto
181172
5. Once the effect is changed, automated tests should check whether enforcement is taking place as
182173
expected.
183174

184-
6. Repeat by including more rings in your resource selector configuration.
175+
6. Repeat by including more tiers in your resource selector configuration.
185176

186-
7. Repeat this process for all production rings.
177+
7. Repeat this process for all production tiers.
187178

188179
## Steps for safely updating built-in definition version within Azure Policy assignment
189180

190181
1. Within the existing assignment, apply _overrides_ to update the version of the definition for the least
191-
critical ring. We're using a combination of _overrides_ to change the definitionVersion and _selectors_ within the _overrides_ condition to narrow the applicability by `"kind": "resource location"` property. Any resources that are outside of the locations specified will continue to be assessed against the version from the `definitionVersion` top-level property in the assignment. Example override updating the version of the definition to `2.0.*` and only apply it to resources in `EastUs`.
182+
critical tier. We're using a combination of _overrides_ to change the definitionVersion and _selectors_ within the _overrides_ condition to narrow the applicability by `"kind": "resource location"` property. Any resources that are outside of the locations specified will continue to be assessed against the version from the `definitionVersion` top-level property in the assignment. Example override updating the version of the definition to `2.0.*` and only apply it to resources in `EastUs`.
192183

193184
```json
194185
"overrides":[{
@@ -218,7 +209,7 @@ validate that the compliance result is as expected.
218209
and impact of the policy. If the results aren't as expected due to application configuration,
219210
refactor the application as appropriate.
220211

221-
3. Repeat by expanding the resource selector property values to include the next rings.
212+
3. Repeat by expanding the resource selector property values to include the next tiers.
222213
locations and validating the expected compliance results and application health. Example with an added location value:
223214

224215
```json

0 commit comments

Comments
 (0)