Skip to content

Commit 139598d

Browse files
authored
Merge pull request #231448 from mrm9084/AppConfigurationGeoReplication
App Configuration Geo Replication GA How To
2 parents 445e5c6 + 221c434 commit 139598d

File tree

5 files changed

+51
-32
lines changed

5 files changed

+51
-32
lines changed

articles/azure-app-configuration/TOC.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
href: quickstart-feature-flag-aspnet-core.md
3636
- name: .NET Framework
3737
href: quickstart-feature-flag-dotnet.md
38-
- name: Azure Functions in .NET Core
38+
- name: Azure Functions in .NET Core
3939
href: quickstart-feature-flag-azure-functions-csharp.md
4040
- name: Java Spring
4141
href: quickstart-feature-flag-spring-boot.md
@@ -140,7 +140,7 @@
140140
href: concept-app-configuration-event.md
141141
- name: Soft delete
142142
href: concept-soft-delete.md
143-
- name: Geo-replication
143+
- name: Geo-replication
144144
href: concept-geo-replication.md
145145
- name: Reliability
146146
items:
@@ -180,16 +180,16 @@
180180
href: howto-integrate-azure-managed-service-identity.md
181181
- name: Update to the New Spring Boot Library
182182
href: howto-convert-to-the-new-spring-boot.md
183-
- name: Move a resource between Azure regions
183+
- name: Move a resource between Azure regions
184184
href: howto-move-resource-between-regions.md
185185
- name: Recover or purge deleted App Configuration stores
186186
href: howto-recover-deleted-stores-in-azure-app-configuration.md
187-
- name: Enable geo-replication (Preview)
187+
- name: Enable geo-replication
188188
href: howto-geo-replication.md
189189
- name: Disable public access
190190
href: howto-disable-public-access.md
191191
- name: Set up private access
192-
href: howto-set-up-private-access.md
192+
href: howto-set-up-private-access.md
193193
- name: Reference
194194
items:
195195
- name: Client libraries

articles/azure-app-configuration/concept-disaster-recovery.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ms.date: 07/09/2020
1111
# Resiliency and disaster recovery
1212

1313
> [!IMPORTANT]
14-
> Azure App Configuration added [geo-replication](./concept-geo-replication.md) support recently. You can enable replicas of your data across multiple locations for enhanced resiliency to regional outages. You can also leverage App Configuration provider libraries in your applications for [automatic failover](./howto-geo-replication.md#use-replicas). The geo-replication feature is currently under preview. It will be the recommended solution for high availability when the feature is generally available.
14+
> Azure App Configuration supports [geo-replication](./concept-geo-replication.md). You can enable replicas of your data across multiple locations for enhanced resiliency to regional outages. You can also leverage App Configuration provider libraries in your applications for [automatic failover](./howto-geo-replication.md#use-replicas). Utilizing geo-replication is the recommended solution for high availability.
1515
1616
Currently, Azure App Configuration is a regional service. Each configuration store is created in a particular Azure region. A region-wide outage affects all stores in that region. App Configuration doesn't offer automatic failover to another region. This article provides general guidance on how you can use multiple configuration stores across Azure regions to increase the geo-resiliency of your application.
1717

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Geo-replication in Azure App Configuration (Preview)
2+
title: Geo-replication in Azure App Configuration
33
description: Details of the geo-replication feature in Azure App Configuration.
44
author: maud-lv
55
ms.author: malev
@@ -9,11 +9,11 @@ ms.topic: conceptual
99
ms.date: 08/01/2022
1010
---
1111

12-
# Geo-replication overview (Preview)
12+
# Geo-replication overview
1313

1414
For application developers and IT engineers, a common goal is to build and run resilient applications. Resiliency is defined as the ability of your application to react to failure and still remain functional. To achieve resilience in the face of regional failures in the cloud, the first step is to build in redundancy to avoid a single point of failure. This redundancy can be achieved with geo-replication.
1515

16-
The App Configuration geo-replication feature allows you to replicate your configuration store at-will to the regions of your choice. Each new **replica** will be in a different region and creates a new endpoint for your applications to send requests to. The original endpoint of your configuration store is called the **Origin**. The origin can't be removed, but otherwise behaves like any replica.
16+
The App Configuration geo-replication feature allows you to replicate your configuration store at-will to the regions of your choice. Each new **replica** will be in a different region and creates a new endpoint for your applications to send requests to. The original endpoint of your configuration store is called the **Origin**. The origin can't be removed, but otherwise behaves like any replica.
1717

1818
Changing or updating your key-values can be done in any replica. These changes will be synchronized with all other replicas following an eventual consistency model.
1919

@@ -35,7 +35,6 @@ This team would benefit from geo-replication. They can create a replica of their
3535
- Geo-replication isn't available in the free tier.
3636
- Each replica has limits, as outlined in the [App Configuration pricing page](https://azure.microsoft.com/pricing/details/app-configuration/). These limits are isolated per replica.
3737
- Azure App Configuration also supports Azure availability zones to create a resilient and highly available store within an Azure Region. Availability zone support is automatically included for a replica if the replica's region has availability zone support. The combination of availability zones for redundancy within a region, and geo-replication across multiple regions, enhances both the availability and performance of a configuration store.
38-
- Currently, you can only authenticate with replica endpoints with [Azure Active Directory (Azure AD)](../app-service/overview-managed-identity.md).
3938
<!--
4039
To add once these links become available:
4140
- Request handling for replicas will vary by configuration provider, for further information reference [.NET Geo-replication Reference](https://azure.microsoft.com/pricing/details/app-configuration/) and [Java Geo-replication Reference](https://azure.microsoft.com/pricing/details/app-configuration/).
@@ -50,4 +49,4 @@ Each replica created will add extra charges. Reference the [App Configuration pr
5049
> [!div class="nextstepaction"]
5150
> [How to enable Geo replication](./howto-geo-replication.md)
5251
53-
> [Resiliency and Disaster Recovery](./concept-disaster-recovery.md)
52+
> [Resiliency and Disaster Recovery](./concept-disaster-recovery.md)

articles/azure-app-configuration/howto-backup-config-store.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ ms.author: avgupta
1717

1818
# Back up App Configuration stores automatically
1919

20+
> [!IMPORTANT]
21+
> Azure App Configuration supports [geo-replication](./concept-geo-replication.md). You can enable replicas of your data across multiple locations for enhanced resiliency to regional outages. You can also leverage App Configuration provider libraries in your applications for [automatic failover](./howto-geo-replication.md#use-replicas). Utilizing geo-replication is the recommended solution for high availability.
22+
2023
In this article, you'll learn how to set up an automatic backup of key-values from a primary Azure App Configuration store to a secondary store. The automatic backup uses the integration of Azure Event Grid with App Configuration.
2124

2225
After you set up the automatic backup, App Configuration will publish events to Azure Event Grid for any changes made to key-values in a configuration store. Event Grid supports various Azure services from which users can subscribe to the events emitted whenever key-values are created, updated, or deleted.
2326

24-
> [!IMPORTANT]
25-
> Azure App Configuration added [geo-replication](./concept-geo-replication.md) support recently. You can enable replicas of your data across multiple locations for enhanced resiliency to regional outages. You can also leverage App Configuration provider libraries in your applications for [automatic failover](./howto-geo-replication.md#use-replicas). The geo-replication feature is currently under preview. It will be the recommended solution for high availability when the feature is generally available.
26-
2727
## Overview
2828

2929
In this article, you'll use Azure Queue storage to receive events from Event Grid and use a timer-trigger of Azure Functions to process events in the queue in batches.

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

Lines changed: 38 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
---
2-
title: Enable geo-replication (preview)
2+
title: Enable geo-replication
33
description: Learn how to use Azure App Configuration geo replication to create, delete, and manage replicas of your configuration store.
44
services: azure-app-configuration
55
author: mrm9084
66
ms.service: azure-app-configuration
77
ms.devlang: csharp, java
88
ms.topic: how-to
9-
ms.date: 10/10/2022
9+
ms.date: 03/20/2023
1010
ms.author: mametcal
1111
ms.custom: devx-track-azurecli
1212

1313
#Customer intent: I want to be able to list, create, and delete the replicas of my configuration store.
1414
---
1515

16-
# Enable geo-replication (Preview)
16+
# Enable geo-replication
1717

1818
This article covers replication of Azure App Configuration stores. You'll learn about how to create, use and delete a replica in your configuration store.
1919

@@ -90,49 +90,69 @@ Each replica you create has its dedicated endpoint. If your application resides
9090

9191
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.
9292

93-
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.
94-
95-
> [!NOTE]
96-
> You can only use Azure AD authentication to connect to replicas. Authentication with access keys is not supported during the preview.
93+
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 Azure Active Directory (Azure AD) authentication or a list of connection strings for access key-based authentication.
9794

9895
### [.NET](#tab/dotnet)
9996

10097
Edit the call to the `AddAzureAppConfiguration` method, which is often found in the `program.cs` file of your application.
10198

99+
**Connect with Azure AD**
100+
102101
```csharp
103102
configurationBuilder.AddAzureAppConfiguration(options =>
104103
{
105104
// Provide an ordered list of replica endpoints
106105
var endpoints = new Uri[] {
107-
new Uri("https://<first-replica-endpoint>.azconfig.io"),
108-
new Uri("https://<second-replica-endpoint>.azconfig.io") };
106+
new Uri("<first-replica-endpoint>"),
107+
new Uri("<second-replica-endpoint>") };
109108

110-
// Connect to replica endpoints using AAD authentication
109+
// Connect to replica endpoints using Azure AD authentication
111110
options.Connect(endpoints, new DefaultAzureCredential());
112111

113112
// Other changes to options
114113
});
115114
```
116115

116+
**Connect with Connection String**
117+
118+
```csharp
119+
configurationBuilder.AddAzureAppConfiguration(options =>
120+
{
121+
// Provide an ordered list of replica connection strings
122+
var connectionStrings = new string[] {
123+
Environment.GetEnvironmentVariable("FIRST_REPLICA_CONNECTION_STRING"),
124+
Environment.GetEnvironmentVariable("SECOND_REPLICA_CONNECTION_STRING") };
125+
126+
// Connect to replica endpoints using connection strings
127+
options.Connect(connectionStrings);
128+
129+
// Other changes to options
130+
});
131+
```
132+
117133
> [!NOTE]
118-
> The failover support is available if you use version **5.3.0-preview** or later of any of the following packages.
134+
> The failover support is available if you use version **6.0.0** or later of any of the following packages.
119135
> - `Microsoft.Extensions.Configuration.AzureAppConfiguration`
120136
> - `Microsoft.Azure.AppConfiguration.AspNetCore`
121137
> - `Microsoft.Azure.AppConfiguration.Functions.Worker`
122138
123139
### [Java Spring](#tab/spring)
124140

125-
Edit the endpoint configuration in `bootstrap.properties`, to use endpoints which allows a list of endpoints.
141+
Edit the `endpoints` or `connection-strings` properties in the `bootstrap.properties` file of your application.
142+
143+
**Connect with Azure AD**
126144

127145
```properties
128-
spring.cloud.azure.appconfiguration.stores[0].endpoints[0]="https://<first-replica-endpoint>.azconfig.io"
129-
spring.cloud.azure.appconfiguration.stores[0].endpoints[1]="https://<second-replica-endpoint>.azconfig.io"
146+
spring.cloud.azure.appconfiguration.stores[0].endpoints[0]="<first-replica-endpoint>"
147+
spring.cloud.azure.appconfiguration.stores[0].endpoints[1]="<second-replica-endpoint>"
130148
```
149+
150+
131151
> [!NOTE]
132-
> The failover support is available if you use version of **2.10.0-beta.1** or later of any of the following packages.
133-
> - `azure-spring-cloud-appconfiguration-config`
134-
> - `azure-spring-cloud-appconfiguration-config-web`
135-
> - `azure-spring-cloud-starter-appconfiguration-config`
152+
> The failover support is available if you use version of **4.0.0-beta.1** or later of any of the following packages.
153+
> - `spring-cloud-azure-appconfiguration-config`
154+
> - `spring-cloud-azure-appconfiguration-config-web`
155+
> - `spring-cloud-azure-starter-appconfiguration-config`
136156
137157
---
138158

0 commit comments

Comments
 (0)