Skip to content

Commit b83c534

Browse files
committed
Add best practice for building applications with resiliency
1 parent 6b78418 commit b83c534

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

articles/azure-app-configuration/howto-best-practices.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,16 @@ App Configuration offers the option to bulk [import](./howto-import-export-data.
105105

106106
If your application is deployed in multiple regions, we recommend that you [enable geo-replication](./howto-geo-replication.md) of your App Configuration store. You can let your application primarily connect to the replica matching the region where instances of your application are deployed and allow them to fail over to replicas in other regions. This setup minimizes the latency between your application and App Configuration, spreads the load as each replica has separate throttling quotas, and enhances your application's resiliency against transient and regional outages. See [Resiliency and Disaster Recovery](./concept-disaster-recovery.md) for more information.
107107

108+
## Applications with resiliency
109+
110+
Applications often rely on configuration to start, making Azure App Configuration's high availability critical. For improved resiliency, applications should leverage App Configuration's reliability features and consider taking the following measures based on your specific requirements.
111+
112+
* **Provision in regions with Azure availability zone support.** Availability zones allow applications to be resilient to data center outages. App Configuration offers zone redundancy for all customers without any extra charges. Creating your App Configuration store in regions with support for availability zones is recommended. You can find [a list of regions](./faq.yml#how-does-app-configuration-ensure-high-data-availability) where App Configuration has enabled availability zone support.
113+
* **[Enable geo-replication](./howto-geo-replication.md) and allow your application to failover among replicas.** This setup gives you a model for scalability and enhanced resiliency against transient failures and regional outages. See [Resiliency and Disaster Recovery](./concept-disaster-recovery.md) for more information.
114+
* **Deploy safely with [configuration snapshots](./howto-create-snapshots.md).** Application failures can frequently occur due to incorrect configuration changes. If you adopt [safe deployment practices](/azure/well-architected/operational-excellence/safe-deployments), snapshots enable you to deploy immutable configurations between stages to ensure consistency. It allows you to redeploy the last-known-good (LKG) configuration in case things go wrong. You can utilize snapshots along with dynamic configuration. Use a snapshot for your foundational configuration and dynamic configuration for flexible configuration overrides and feature flags.
115+
* **Include configuration with your application.** If you want to ensure that your application always has access to a copy of the configuration, or if you prefer to avoid a runtime dependency on App Configuration altogether, you can pull the configuration from App Configuration during build or release time and include it with your application. To learn more, check out examples of integrating App Configuration with your [CI/CD pipeline](./integrate-ci-cd-pipeline.md) or [Kubernetes deployment](./integrate-kubernetes-deployment-helm.md).
116+
* **Implement resiliency features in applications.** Resiliency features like automatic replica discovery and failover, caching, and retry on failures are accomplished through application code taking its part too. It allows applications to account for issues specific to each running instance, including networking issues, and react to failures faster. The App Configuration providers have built-in support for all of these features, among many others, so you don't need to worry about them. For example, you can increase your application's resiliency to transient errors during the startup process by tuning up the [startup timeout](https://github.com/Azure/AppConfiguration-DotnetProvider/blob/main/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationOptions.cs#L431). It is highly recommended that you implement these features to ensure high resiliency if you are not using App Configuration providers.
117+
108118
## Client applications in App Configuration
109119

110120
When you use App Configuration in client applications, ensure that you consider two major factors. First, if you're using the connection string in a client application, you risk exposing the access key of your App Configuration store to the public. Second, the typical scale of a client application might cause excessive requests to your App Configuration store, which can result in overage charges or throttling. For more information about throttling, see the [FAQ](./faq.yml#are-there-any-limits-on-the-number-of-requests-made-to-app-configuration).

0 commit comments

Comments
 (0)