Author – Nikita Rane, Cloud Engineer
A service to centrally manage the application settings and feature flags is provided by Azure App Configuration. Modern programs, especially the ones running in a cloud, usually have many components of a distributed nature. This distributed nature leads to the spreading of configuration settings, which can lead to hard-to-troubleshoot errors during application deployment.
Azure App Configuration follows the External Configuration Store Pattern, meaning move configuration information out of the application deployment package to a centralized location. The figure illustrates an overview of the External Configuration Store pattern with optional local cache:
The figure illustrates the Azure App Configuration resource created in the Azure Portal:
The figure illustrates Azure App Configuration Pricing:
App Configuration can be used to store all the settings for the application and secure their access in one place, leveraging the following benefits of App Configuration:
⦁ A fully managed service that can be set up quickly
⦁ Flexible key representations and mappings
⦁ Tagging with labels
⦁ A point-in-time replay of the settings
⦁ A dedicated UI for the feature flag management
⦁ Comparison of two sets of configurations on custom-defined dimensions
⦁ Enhanced security through Azure-managed identities
⦁ Encryption of sensitive information which is both at rest as well as transit
⦁ Native integration with popular frameworks
Why use Azure App Configuration?
Cloud-based applications usually run on multiple virtual machines or containers in multiple regions and use multiple external services as well. Thus, creating a robust and scalable application in a distributed environment presents a significant challenge.
A vast programming methodologies help developers deal with the increasing complexity in application building. It is recommended to separate the configuration from code; an application’s configuration settings must be kept external to its executable and then read in from its runtime environment or an external source. Any application can basically make use of App Configuration, following examples are the types of applications that benefit from the use of App Configuration:
⦁ Microservices based on Azure Kubernetes Service, Azure Service Fabric, or other containerized apps deployed in one or more geographies
⦁ Serverless apps, which include Azure Functions or other event-driven stateless compute apps
⦁ Continuous deployment pipelines
Implementation of scenarios like centralized management and distributed hierarchical configuration data for different environments and geographies, dynamic changes in the application settings without a need to redeploy or restart the application, controlling the feature availability in real-time, etc are made easy by App Configuration.
Using App Configuration
The easiest way to add an App Configuration store to the application is through Microsoft’s client library. Depending on the language and framework chosen, the following methods are available to connect with your application:
⦁ For .NET Core and ASP.NET Core, we have an App Configuration provider for .NET Core
⦁ For .NET Framework and ASP.NET, App Configuration builder for .NET is available
⦁ For Java Spring, we have an App Configuration client for Spring Cloud
⦁ For others, we have App Configuration REST API