Feature Flags with Azure App Configuration
Azure App Configuration is a new service offered in Azure to help with managing application settings and feature flags. As of 5/23/2019, Azure App Configuration is in public preview. You would want to use App Configuration when you need to share app configuration across multiple applications/micro-services or are using feature flags in your software.
Getting up to speed on Azure App Configuration is straight forward as the Microsoft docs are excellent with tutorials covering the major use cases. Go through this tutorial to see the various ways you can use feature flags using App Configuration: https://docs.microsoft.com/en-us/azure/azure-app-configuration/quickstart-feature-flag-aspnet-core There is a more advanced tutorial showing how to use a percentage filter on a feature flag: https://docs.microsoft.com/en-us/azure/azure-app-configuration/use-feature-flags-dotnet-core.
App Configuration Feature Flags
As an application’s usage of feature flags grows you will want more advanced control over your feature flags. Azure App Configuration offers the following advanced functionality:
- feature flags are automatically updated without redeploying your app (the .NET Core SDK automatically pulls feature flags every 30 seconds by default)
- a flag is turned off or on based on a random percentage (useful for A/B testing)
- ability to see what your feature flags were set to in the past
- ability to add arbitrary filters to feature flags (e.g. browser type)
- ability to export feature flags so you can set application defaults in case your feature flag service is not available
I would highly recommend using App Configuration once it is out of preview. The preview of App Configuration has been very easy to use and the documentation is excellent for .NET Core. Here are the current limitations I am seeing that might send you to a 3rd party feature flag service such as LaunchDarkly.
- Azure Events for App Configuration are not enabled in some regions for the preview.
- The UI is bit rough in some places, e.g., the Compare UI.
- Advanced A/B testing facilities.