Skip to content

Commit 1217050

Browse files
Merge branch 'MicrosoftDocs:main' into main
2 parents c84d68d + 31ea7bb commit 1217050

File tree

12 files changed

+220
-175
lines changed

12 files changed

+220
-175
lines changed

articles/app-service/configure-ssl-bindings.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ In the <a href="https://portal.azure.com" target="_blank">Azure portal</a>:
4545
1. In **TLS/SSL type**, choose between **SNI SSL** and **IP based SSL**.
4646

4747
- **[SNI SSL](https://en.wikipedia.org/wiki/Server_Name_Indication)**: Multiple SNI SSL bindings may be added. This option allows multiple TLS/SSL certificates to secure multiple domains on the same IP address. Most modern browsers (including Internet Explorer, Chrome, Firefox, and Opera) support SNI (for more information, see [Server Name Indication](https://wikipedia.org/wiki/Server_Name_Indication)).
48-
- - **IP based SSL**: Only one IP SSL binding may be added. This option allows only one TLS/SSL certificate to secure a dedicated public IP address. After you configure the binding, follow the steps in [2. Remap records for IP based SSL](#2-remap-records-for-ip-based-ssl).<br/>IP SSL is supported only in **Basic** tier or higher.
48+
- **IP based SSL**: Only one IP SSL binding may be added. This option allows only one TLS/SSL certificate to secure a dedicated public IP address. After you configure the binding, follow the steps in [2. Remap records for IP based SSL](#2-remap-records-for-ip-based-ssl).<br/>IP SSL is supported only in **Basic** tier or higher.
4949

5050
1. When adding a new certificate, validate the new certificate by selecting **Validate**.
5151

articles/azure-app-configuration/howto-geo-replication.md

Lines changed: 72 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,72 @@ To delete a replica in the portal, follow the steps below.
8888
8989
--- -->
9090

91+
## Automatic replica discovery
92+
93+
The App Configuration providers can automatically discover any additional replicas from a given App Configuration endpoint and attempt to connect to them. This feature allows you to benefit from geo-replication without having to change your code or redeploy your application. This means you can enable geo-replication or add extra replicas even after your application has been deployed.
94+
95+
Automatic replica discovery is enabled by default, but you can refer to the following sample code to disable it (not recommended).
96+
97+
### [.NET](#tab/dotnet)
98+
99+
Edit the call to the `AddAzureAppConfiguration` method, which is often found in the `program.cs` file of your application.
100+
101+
```csharp
102+
configurationBuilder.AddAzureAppConfiguration(options =>
103+
{
104+
// Disable automatic replica discovery
105+
options.ReplicaDiscoveryEnabled = false;
106+
107+
// Other changes to options
108+
});
109+
```
110+
111+
> [!NOTE]
112+
> The automatic replica discovery support is available if you use version **7.1.0** or later of any of the following packages.
113+
> - `Microsoft.Extensions.Configuration.AzureAppConfiguration`
114+
> - `Microsoft.Azure.AppConfiguration.AspNetCore`
115+
> - `Microsoft.Azure.AppConfiguration.Functions.Worker`
116+
117+
### [Java Spring](#tab/spring)
118+
119+
Specify the `replicaDiscoveryEnabled` property in the `bootstrap.properties` file of your application.
120+
121+
```properties
122+
spring.cloud.azure.appconfiguration.stores[0].replica-discovery-enabled=false
123+
```
124+
125+
> [!NOTE]
126+
> The automatic replica discovery support is available if you use version **5.11.0** or later of any of the following packages.
127+
> - `spring-cloud-azure-appconfiguration-config`
128+
> - `spring-cloud-azure-appconfiguration-config-web`
129+
> - `spring-cloud-azure-starter-appconfiguration-config`
130+
131+
### [Kubernetes](#tab/kubernetes)
132+
133+
Update the `AzureAppConfigurationProvider` resource of your Azure App Configuration Kubernetes Provider. Add a `replicaDiscoveryEnabled` property and set it to `false`.
134+
135+
``` yaml
136+
apiVersion: azconfig.io/v1
137+
kind: AzureAppConfigurationProvider
138+
metadata:
139+
name: appconfigurationprovider-sample
140+
spec:
141+
endpoint: <your-app-configuration-store-endpoint>
142+
replicaDiscoveryEnabled: false
143+
target:
144+
configMapName: configmap-created-by-appconfig-provider
145+
```
146+
147+
> [!NOTE]
148+
> The automatic replica discovery and failover support is available if you use version **1.3.0** or later of [Azure App Configuration Kubernetes Provider](./quickstart-azure-kubernetes-service.md).
149+
150+
---
151+
91152
## Scale and failover with replicas
92153
93154
Each replica you create has its dedicated endpoint. If your application resides in multiple geo-locations, you can update each deployment of your application in a location to connect to the replica closer to that location, which helps minimize the network latency between your application and App Configuration. Since each replica has its separate request quota, this setup also helps the scalability of your application while it grows to a multi-region distributed service.
94155
95-
When geo-replication is enabled, and if one replica isn't accessible, you can let your application failover to another replica for improved resiliency. App Configuration provider libraries have built-in failover support by accepting multiple replica endpoints. You can provide a list of your replica endpoints in the order of the most preferred to the least preferred endpoint. When the current endpoint isn't accessible, the provider library will fail over to a less preferred endpoint, but it will try to connect to the more preferred endpoints from time to time. When a more preferred endpoint becomes available, it will switch to it for future requests.
156+
When geo-replication is enabled, and if one replica isn't accessible, you can let your application failover to another replica for improved resiliency. App Configuration providers have built-in failover support through user provided replicas as well as additional automatically discovered replicas. You can provide a list of your replica endpoints in the order of the most preferred to the least preferred endpoint. When the current endpoint isn't accessible, the provider will fail over to a less preferred endpoint, but it will try to connect to the more preferred endpoints from time to time. If all user provided replicas are not accessible, the automatically discovered replicas will be randomly selected and used. When a more preferred endpoint becomes available, the provider will switch to it for future requests.
96157
97158
Assuming you have an application using Azure App Configuration, you can update it as the following sample code to take advantage of the failover feature. You can either provide a list of endpoints for Microsoft Entra authentication or a list of connection strings for access key-based authentication.
98159
@@ -159,14 +220,14 @@ spring.cloud.azure.appconfiguration.stores[0].connection-strings[1]="${SECOND_RE
159220
```
160221

161222
> [!NOTE]
162-
> The failover support is available if you use version of **4.7.0** or later of any of the following packages.
223+
> The failover support is available if you use version **4.7.0** or later of any of the following packages.
163224
> - `spring-cloud-azure-appconfiguration-config`
164225
> - `spring-cloud-azure-appconfiguration-config-web`
165226
> - `spring-cloud-azure-starter-appconfiguration-config`
166227

167228
### [Kubernetes](#tab/kubernetes)
168229

169-
Not available.
230+
The Azure App Configuration Kubernetes Provider supports failover with automatically discovered replicas by default, as long as automatic replica discovery is not disabled. It does not support or require user-provided replicas.
170231

171232
---
172233

@@ -177,11 +238,11 @@ The failover may occur if the App Configuration provider observes the following
177238

178239
The failover won't happen for client errors like authentication failures.
179240

180-
## Automatic replica discovery
241+
## Load balance with replicas
181242

182-
You can specify one or more endpoints of a geo-replication-enabled App Configuration store that you want your application to connect or failover to. However, if none of these endpoints are accessible, the App Configuration provider libraries can automatically discover any additional replicas and attempt to connect to them. This feature allows you to benefit from geo-replication without having to change your code or redeploy your application. This means you can enable geo-replication or add extra replicas even after your application has been deployed.
243+
By default, your application always sends requests to the most preferred endpoint you provide, except in the event of a failover. However, in addition to failover, replicas can also be used to balance the load of requests. By proactively distributing requests across any available replicas over time, you can avoid exhausting the request quota of a single replica and improve the overall scalability of your application.
183244

184-
The automatically discovered replicas will be selected and used randomly. If you have a preference for specific replicas, you can explicitly specify their endpoints. This feature is enabled by default, but you can refer to the following sample code to disable it.
245+
The App Configuration providers offer built-in support for load balancing across replicas, whether provided in code or discovered automatically. You can use the following code samples to enable this feature in your application (recommended).
185246

186247
### [.NET](#tab/dotnet)
187248

@@ -190,51 +251,26 @@ Edit the call to the `AddAzureAppConfiguration` method, which is often found in
190251
```csharp
191252
configurationBuilder.AddAzureAppConfiguration(options =>
192253
{
193-
// Disable automatic replica discovery
194-
options.ReplicaDiscoveryEnabled = false;
254+
// Enable load balancing
255+
options.LoadBalancingEnabled = true;
195256
196257
// Other changes to options
197258
});
198259
```
199260

200261
> [!NOTE]
201-
> The automatic replica discovery support is available if you use version **7.1.0** or later of any of the following packages.
262+
> Load balancing support is available if you use version **8.0.0-preview.3** or later of any of the following packages.
202263
> - `Microsoft.Extensions.Configuration.AzureAppConfiguration`
203264
> - `Microsoft.Azure.AppConfiguration.AspNetCore`
204265
> - `Microsoft.Azure.AppConfiguration.Functions.Worker`
205266

206267
### [Java Spring](#tab/spring)
207268

208-
Specify the `replicaDiscoveryEnabled` property in the `bootstrap.properties` file of your application.
209-
210-
```properties
211-
spring.cloud.azure.appconfiguration.stores[0].replica-discovery-enabled=false
212-
```
213-
214-
> [!NOTE]
215-
> The automatic replica discovery support is available if you use version **5.11.0** or later of any of the following packages.
216-
> - `spring-cloud-azure-appconfiguration-config`
217-
> - `spring-cloud-azure-appconfiguration-config-web`
218-
> - `spring-cloud-azure-starter-appconfiguration-config`
269+
This feature is not yet supported in the Azure App Configuration Java Spring Provider.
219270

220271
### [Kubernetes](#tab/kubernetes)
221272

222-
Update the `AzureAppConfigurationProvider` resource of your Azure App Configuration Kubernetes Provider. Add a `replicaDiscoveryEnabled` property and set it to `false`.
223-
224-
``` yaml
225-
apiVersion: azconfig.io/v1
226-
kind: AzureAppConfigurationProvider
227-
metadata:
228-
name: appconfigurationprovider-sample
229-
spec:
230-
endpoint: <your-app-configuration-store-endpoint>
231-
replicaDiscoveryEnabled: false
232-
target:
233-
configMapName: configmap-created-by-appconfig-provider
234-
```
235-
236-
> [!NOTE]
237-
> The automatic replica discovery and failover support is available if you use version **1.3.0** or later of [Azure App Configuration Kubernetes Provider](./quickstart-azure-kubernetes-service.md).
273+
This feature is not yet supported in the Azure App Configuration Kubernetes Provider.
238274

239275
---
240276

0 commit comments

Comments
 (0)