Skip to content

Commit 6a9a706

Browse files
authored
Slo (#35)
* SLO calculations * remove locale from links in the README * Add docker as a prerequisite in the README * Update platform compatibility table
1 parent 06d0b2a commit 6a9a706

File tree

6 files changed

+79
-11
lines changed

6 files changed

+79
-11
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ The following detailed deployment steps assume you are using a Dev Container ins
2727
2828
### 1. Clone the repo
2929

30-
> For Windows users, we recommend using Windows Subsystem for Linux (WSL) to [improve Dev Container performance](https://code.visualstudio.com/remote/advancedcontainers/improve-performance).
30+
> For Windows users, we require using Windows Subsystem for Linux (WSL) to [improve Dev Container performance](https://code.visualstudio.com/remote/advancedcontainers/improve-performance).
3131
3232
```pwsh
3333
wsl
@@ -77,7 +77,7 @@ If you have multiple tenants, you can use the following command to log into the
7777
az login --tenant <tenant-id>
7878
```
7979

80-
Set the subscription to the one you want to use (you can use [az account list](https://learn.microsoft.com/en-us/cli/azure/account?view=azure-cli-latest#az-account-list) to list available subscriptions):
80+
Set the subscription to the one you want to use (you can use [az account list](https://learn.microsoft.com/cli/azure/account?view=azure-cli-latest#az-account-list) to list available subscriptions):
8181

8282
```shell
8383
export AZURE_SUBSCRIPTION_ID="<your-subscription-id>"
@@ -171,7 +171,7 @@ contact [[email protected]](mailto:[email protected]) with any additio
171171
- [Troubleshooting](troubleshooting.md)
172172
- [Pattern Simulations](demo.md)
173173
- [Developer Experience](developer-experience.md)
174-
- [Calculating SLA](sla-calculation.md)
174+
- [Calculating SLA](slo-calculation.md)
175175
- [Find additional resources](additional-resources.md)
176176
- [Report security concerns](SECURITY.md)
177177
- [Find Support](SUPPORT.md)
@@ -181,7 +181,7 @@ contact [[email protected]](mailto:[email protected]) with any additio
181181

182182
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
183183
trademarks or logos is subject to and must follow
184-
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
184+
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/legal/intellectualproperty/trademarks/usage/general).
185185
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
186186
Any use of third-party trademarks or logos are subject to those third-party's policies.
187187

docs/SranglerFig.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ The `CONTOSO_SUPPORT_GUIDE_REQUEST_SERVICE` environment variable changes the beh
3434

3535
## Additional Resources
3636

37-
[Strangler Fig Pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/strangler-fig) documentation.
37+
[Strangler Fig Pattern](https://docs.microsoft.com/azure/architecture/patterns/strangler-fig) documentation.

prerequisites.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,16 @@ The project has the following prerequisites:
99
1. [Terraform 1.9.8](https://developer.hashicorp.com/terraform/downloads)
1010
1. [JQ 1.6](https://jqlang.github.io/jq/download/)
1111
1. [protoc 3.12.4](https://grpc.io/docs/protoc-installation/)
12+
1. [Docker](https://docs.docker.com/get-docker/)
1213

1314
If you want to use a VSCode DevContainer see the `VSCode DevContainer prerequisites` section below.
1415

1516
## Platform compatibility
1617

1718
| | Native | DevContainer |
1819
|-------------|-----------|--------------|
19-
| Windows |||
20+
| Windows |||
21+
| Windows WSL |||
2022
| macOS |||
2123
| macOS arm64 |||
2224

prod-deployment.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ The following detailed deployment steps assume you are using a Dev Container ins
3939
az login --tenant <tenant-id>
4040
```
4141

42-
1. Set the subscription to the one you want to use (you can use [az account list](https://learn.microsoft.com/en-us/cli/azure/account?view=azure-cli-latest) to list available subscriptions):
42+
1. Set the subscription to the one you want to use (you can use [az account list](https://learn.microsoft.com/cli/azure/account?view=azure-cli-latest) to list available subscriptions):
4343

4444

4545
```sh
@@ -82,7 +82,7 @@ The following detailed deployment steps assume you are using a Dev Container ins
8282
azd env set ENVIRONMENT prod
8383
```
8484

85-
1. Production is a multi-region deployment. Choose an Azure region for the primary deployment (Run [az account list-locations --query '[].{Location: name}'](https://learn.microsoft.com/en-us/cli/azure/account?view=azure-cli-latest) to see a list of locations):
85+
1. Production is a multi-region deployment. Choose an Azure region for the primary deployment (Run [az account list-locations --query '[].{Location: name}'](https://learn.microsoft.com/cli/azure/account?view=azure-cli-latest) to see a list of locations):
8686

8787
```pwsh
8888
azd env set AZURE_LOCATION <pick_a_region>
@@ -96,7 +96,7 @@ The following detailed deployment steps assume you are using a Dev Container ins
9696
azd env set AZURE_SECONDARY_LOCATION <pick_a_region>
9797
```
9898

99-
*We encourage readers to choose paired regions for multi-regional web apps. Paired regions typically offer low network latency, data residency in the same geography, and sequential updating. Read [Azure paired regions](https://learn.microsoft.com/en-us/azure/reliability/cross-region-replication-azure#azure-paired-regions) to learn more about these regions.*
99+
*We encourage readers to choose paired regions for multi-regional web apps. Paired regions typically offer low network latency, data residency in the same geography, and sequential updating. Read [Azure paired regions](https://learn.microsoft.com/azure/reliability/cross-region-replication-azure#azure-paired-regions) to learn more about these regions.*
100100

101101
1. Optional: Set the App Registration Service Management Reference:
102102

@@ -202,7 +202,7 @@ In order to deploy the application, you need to set up the deployment environmen
202202
echo $jumpbox_resource_id
203203
```
204204

205-
1. We use the [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/) to create a bastion tunnel that allows us to connect to the jump box. Run the following command to create a bastion tunnel to the jump box:
205+
1. We use the [Azure CLI](https://learn.microsoft.com/cli/azure/) to create a bastion tunnel that allows us to connect to the jump box. Run the following command to create a bastion tunnel to the jump box:
206206

207207
```sh
208208
az network bastion tunnel --name $bastion_host_name --resource-group $hub_resource_group --target-resource-id $jumpbox_resource_id --resource-port 22 --port 50022

slo-calculation.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Calculating Solution Service Level Agreement
2+
3+
The requirement for the Contoso Fiber CAMS application is that the combined service level agreement for all components in the hot path is greater than 99.9%. The components in the hot path comprise of any service that is used in fulfilling a web request from a user.
4+
5+
## Development
6+
7+
With a development environment, network isolation is not used. The following services are considered:
8+
9+
| Service | Azure SLA |
10+
|:-------------------------------|----------:|
11+
| Azure Front Door | 99.990% |
12+
| Entra ID | 99.990% |
13+
| Azure App Service | 99.950% |
14+
| Azure Container Apps | 99.950% |
15+
| Azure Container Registry | 99.900% |
16+
| Azure Cache for Redis | 99.900% |
17+
| Azure Postgres Flexible Server | 99.990% |
18+
| Azure Storage | 99.900% |
19+
| Azure Key Vault | 99.990% |
20+
| App Configuration | 99.900% |
21+
| Azure Service Bus | 99.900% |
22+
| **Combined SLA** | **99.362%** |
23+
24+
## Production - Single Region
25+
26+
When operating in production, network isolation is used. We do not consider the availability of the hub resources or VNET peering.
27+
28+
| Service | Azure SLA |
29+
|:--------------------------|------------:|
30+
| Azure Front Door | 99.9900% |
31+
| Front Door Private Link | 99.9900% |
32+
| Entra ID | 99.9900% |
33+
| Private DNS Zone | 100.000% |
34+
| Azure Key Vault | 99.9900% |
35+
| Key Vault Private Link | 99.9900% |
36+
| Azure Container Registry* | 99.9999% |
37+
| **Combined global SLO** | **99.9499%** |
38+
39+
* Note that the Azure Container Registry is deployed in two regions which allows its usual 99.9% SLA to increase to 99.9999% in total. For more information, see [Azure Container Registry Geo-replication](https://learn.microsoft.com/azure/container-registry/container-registry-geo-replication#considerations-for-using-a-geo-replicated-registry).
40+
41+
| Service | Azure SLA |
42+
|:----------------------|----------:|
43+
| Azure App Service | 99.950% |
44+
| - Private Link | 99.990% |
45+
| Azure Container App | 99.950% |
46+
| - Private Link | 99.990% |
47+
| Azure Cache for Redis | 99.900% |
48+
| - Private Link | 99.990% |
49+
|Azure Postgres Flexible Server | 99.990% |
50+
| - Private Link | 99.990% |
51+
| Azure Storage | 99.900% |
52+
| - Private Link | 99.990% |
53+
| App Configuration | 99.900% |
54+
| - Private Link | 99.990% |
55+
| Azure Service Bus | 99.900% |
56+
| **Combined regional SLO** | **99.4215%** |
57+
58+
### Total production SLO
59+
60+
Because there are two redundant regions, the *total* regional SLO for the two regions combined is calculated as `1 - (1 - SLO)^2` where SLO is the SLO for a single regional spoke deployment. This gives us a total combined regional service SLO of **99.9967%**.
61+
62+
This total regional SLO is combined with the global SLO to give the total SLO for the production environment: **99.9467%**.
63+
64+
By having redundant resources in two regions, the total SLO for the production environment (99.9467%) exceeds the requirement of 99.9%.
65+
66+
For more information on how to calculate effective SLO, please refer to [the Well Architected Framework](https://learn.microsoft.com/azure/well-architected/reliability/metrics).

troubleshooting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Verify that you are in the directory where the `azure.yaml` file is located. You
1111
## BadRequest: Azure subscription is not registered with CDN Provider.
1212
This error message surfaces from the `azd provision` command when trying to follow the guide to provision an Azure Front Door.
1313

14-
Most [Azure resource providers](https://learn.microsoft.com/en-us/azure/azure-resource-manager/troubleshooting/error-register-resource-provider) are registered automatically by the Microsoft Azure portal or the command-line interface, but not all. If you haven't used a particular resource provider before, you might need to register that provider.
14+
Most [Azure resource providers](https://learn.microsoft.com/azure/azure-resource-manager/troubleshooting/error-register-resource-provider) are registered automatically by the Microsoft Azure portal or the command-line interface, but not all. If you haven't used a particular resource provider before, you might need to register that provider.
1515

1616
**Full error message**
1717
```

0 commit comments

Comments
 (0)