SlideShare a Scribd company logo
1 of 15
Feature Toggle for .Net Core Apps on
Azure with Azure App Configuration
Feature Management
Kasun Kodagoda
Technical Lead | 99X Technology
https://kasunkodagoda.com
I am, Kasun Kodagoda
• In ♥ with Azure & Azure DevOps
• Active Blogger – https://kasunkodagoda.com
• Open Source Contributor - https://github.com/kasunkv
• Technical Lead
I Work For,
• Established in 2004
• Headquartered in Sri Lanka with offices in
Europe and Australia
• Providing high quality, high value Software
Product Engineering + R&D services
What Are Feature Flags?
A feature flag is a variable with a binary state
of on or off. The feature flag also has an
associated code block. The state of the feature
flag determines whether the code block runs or
not
Why Use Feature Flags?
• Reduce branching in your source control
• Feature development is hidden under feature flags, therefore safe to deploy to prod.
• Support incremental rollout of features
• Expose to certain percentage of users, get feedback, improve and fully expose.
• Testing in production
• Expose features to a certain segment of users, beta users, internal team. Get feedback
• Act as an instant kill switch
• Turn off features quickly to without redeploying.
• Selective activation of features
• Long term feature flags. E.g. enable features for certain browsers as browser support comes.
Microsoft.FeatureManagement Library
• Created by Azure team
• Built on .Net Core Configuration
• Supports any IConfiguration provider
• Supports feature flag lifetime management
• Simple on/off feature flags to complex conditional flags
• Supports creating custom feature filters
• Support for ASP.Net Core MVC applications
• Microsoft.FeatureManagement.AspNetCore library
• Extension points for Routing, Filters, Action, Middleware and Razor Views
Concepts
• Feature Flag
• Consists of 2 parts;
• Feature name
• List of feature filters
• Filter can be a simple or complex filter
• Can contain multiple feature filters
• Feature Filter
• Defines a scenario where feature should be enabled
• List of feature filters are traversed until one feature filter
evaluates for enabling the feature
• The rest of the filters are ignored
Let’s See it in Action
Microsoft.FeatureManagement.AspNetCore
Azure App Configuration
What is Azure App Configuration?
Azure App Configuration is service that allows
you to centrally managed application settings
and feature flags.
Why Use Azure App Configuration?
• Modern cloud applications are distributed
• multiple instances running across many geographic locations
• Managing application settings across these distributed instances is
hard
• difficult to troubleshoot issue when it comes up
• Having the stored in a centralized location will solve this issues
• Best practice to separate application settings from application code
Azure App Configuration Features
• Full Managed Service
• Flexible Key Representation
• Key Tagging with Labels
• Point In Time Snapshots for Settings
• Feature Flag Management UI
• Encryption at Rest and on Transit
• Support for Managed Identities
App Configuration Feature Management
• Define simple and conditional feature flags
• Simple Flags – On/Off
• Conditional Flags – On by default with feature filters
• Backed by App Configuration
• Define labels for multi-dimensional feature flags
• Same feature flag name
• Different values depending on Label
• Dedicated Feature Flag Management UI
Let’s See it in Action
Azure App Configuration
Thank You :)
Any Questions? ;)
Sample Code
https://github.com/kasunkv/microsoft-feature-management-using-azure-app-configuration-example
Slide Deck
https://www.slideshare.net/KasunKodagoda1
Blog Posts
https://kasunkodagoda.com/tag/feature-management/
Connect With Me
Twitter: https://twitter.com/kasun_kodagoda
Facebook: https://www.facebook.com/kasun.kodagoda
LinkedIn: https://www.linkedin.com/in/kasunkodagoda/
Blog: https://kasunkodagoda.com/
http://bit.ly/feat-mgt-azure

More Related Content

What's hot

SonarQube: Continuous Code Inspection
SonarQube: Continuous Code InspectionSonarQube: Continuous Code Inspection
SonarQube: Continuous Code InspectionMichael Jesse
 
Lie to Me: Bypassing Modern Web Application Firewalls
Lie to Me: Bypassing Modern Web Application FirewallsLie to Me: Bypassing Modern Web Application Firewalls
Lie to Me: Bypassing Modern Web Application FirewallsIvan Novikov
 
2020-02-20 - HashiCorpUserGroup Madring - Integrating HashiCorp Vault and Kub...
2020-02-20 - HashiCorpUserGroup Madring - Integrating HashiCorp Vault and Kub...2020-02-20 - HashiCorpUserGroup Madring - Integrating HashiCorp Vault and Kub...
2020-02-20 - HashiCorpUserGroup Madring - Integrating HashiCorp Vault and Kub...Andrey Devyatkin
 
DAST in CI/CD pipelines using Selenium & OWASP ZAP
DAST in CI/CD pipelines using Selenium & OWASP ZAPDAST in CI/CD pipelines using Selenium & OWASP ZAP
DAST in CI/CD pipelines using Selenium & OWASP ZAPsrini0x00
 
Achieving Elite and High Performance DevOps Using DORA Metrics
Achieving Elite and High Performance DevOps Using DORA MetricsAchieving Elite and High Performance DevOps Using DORA Metrics
Achieving Elite and High Performance DevOps Using DORA MetricsAggregage
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Edureka!
 
Getting started with Spring Security
Getting started with Spring SecurityGetting started with Spring Security
Getting started with Spring SecurityKnoldus Inc.
 
Blockchain testing strategy
Blockchain testing strategyBlockchain testing strategy
Blockchain testing strategyrajni singh
 
Test your microservices with REST-Assured
Test your microservices with REST-AssuredTest your microservices with REST-Assured
Test your microservices with REST-AssuredMichel Schudel
 
Application Development with Pharo
Application Development with PharoApplication Development with Pharo
Application Development with PharoESUG
 
Terraform introduction
Terraform introductionTerraform introduction
Terraform introductionJason Vance
 
The story of SonarQube told to a DevOps Engineer
The story of SonarQube told to a DevOps EngineerThe story of SonarQube told to a DevOps Engineer
The story of SonarQube told to a DevOps EngineerManu Pk
 
Java Source Code Analysis using SonarQube
Java Source Code Analysis using SonarQubeJava Source Code Analysis using SonarQube
Java Source Code Analysis using SonarQubeAngelin R
 
大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術Daisuke Tamada
 

What's hot (20)

SonarQube: Continuous Code Inspection
SonarQube: Continuous Code InspectionSonarQube: Continuous Code Inspection
SonarQube: Continuous Code Inspection
 
Lie to Me: Bypassing Modern Web Application Firewalls
Lie to Me: Bypassing Modern Web Application FirewallsLie to Me: Bypassing Modern Web Application Firewalls
Lie to Me: Bypassing Modern Web Application Firewalls
 
Veracode - Overview
Veracode - OverviewVeracode - Overview
Veracode - Overview
 
2020-02-20 - HashiCorpUserGroup Madring - Integrating HashiCorp Vault and Kub...
2020-02-20 - HashiCorpUserGroup Madring - Integrating HashiCorp Vault and Kub...2020-02-20 - HashiCorpUserGroup Madring - Integrating HashiCorp Vault and Kub...
2020-02-20 - HashiCorpUserGroup Madring - Integrating HashiCorp Vault and Kub...
 
DAST in CI/CD pipelines using Selenium & OWASP ZAP
DAST in CI/CD pipelines using Selenium & OWASP ZAPDAST in CI/CD pipelines using Selenium & OWASP ZAP
DAST in CI/CD pipelines using Selenium & OWASP ZAP
 
Achieving Elite and High Performance DevOps Using DORA Metrics
Achieving Elite and High Performance DevOps Using DORA MetricsAchieving Elite and High Performance DevOps Using DORA Metrics
Achieving Elite and High Performance DevOps Using DORA Metrics
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
 
Track code quality with SonarQube
Track code quality with SonarQubeTrack code quality with SonarQube
Track code quality with SonarQube
 
Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous Integration vs Continuous Delivery vs Continuous Deployment Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous Integration vs Continuous Delivery vs Continuous Deployment
 
Getting started with Spring Security
Getting started with Spring SecurityGetting started with Spring Security
Getting started with Spring Security
 
Blockchain testing strategy
Blockchain testing strategyBlockchain testing strategy
Blockchain testing strategy
 
Test your microservices with REST-Assured
Test your microservices with REST-AssuredTest your microservices with REST-Assured
Test your microservices with REST-Assured
 
Azure Pipelines
Azure PipelinesAzure Pipelines
Azure Pipelines
 
Application Development with Pharo
Application Development with PharoApplication Development with Pharo
Application Development with Pharo
 
Terraform introduction
Terraform introductionTerraform introduction
Terraform introduction
 
The story of SonarQube told to a DevOps Engineer
The story of SonarQube told to a DevOps EngineerThe story of SonarQube told to a DevOps Engineer
The story of SonarQube told to a DevOps Engineer
 
Java Source Code Analysis using SonarQube
Java Source Code Analysis using SonarQubeJava Source Code Analysis using SonarQube
Java Source Code Analysis using SonarQube
 
Introduction to Maven
Introduction to MavenIntroduction to Maven
Introduction to Maven
 
Jenkins with SonarQube
Jenkins with SonarQubeJenkins with SonarQube
Jenkins with SonarQube
 
大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術
 

Similar to Feature Toggle for .Net Core Apps on Azure with Azure App Configuration Feature Management

Centralized Configuration Management for the Cloud with Azure App Configuration
Centralized Configuration Management for the Cloud with Azure App ConfigurationCentralized Configuration Management for the Cloud with Azure App Configuration
Centralized Configuration Management for the Cloud with Azure App ConfigurationKasun Kodagoda
 
Festive Tech Calendar 2022
Festive Tech Calendar 2022Festive Tech Calendar 2022
Festive Tech Calendar 2022Callon Campbell
 
#SPFestDC #Azure #Functions V2: What's new and getting started
#SPFestDC #Azure #Functions V2: What's new and getting started#SPFestDC #Azure #Functions V2: What's new and getting started
#SPFestDC #Azure #Functions V2: What's new and getting startedVincent Biret
 
#SPFestSea Introduction to #Azure #Functions v2
#SPFestSea Introduction to #Azure #Functions v2#SPFestSea Introduction to #Azure #Functions v2
#SPFestSea Introduction to #Azure #Functions v2Vincent Biret
 
Secretsth-Azure-KeyVault-and-Azure-App.pdf
Secretsth-Azure-KeyVault-and-Azure-App.pdfSecretsth-Azure-KeyVault-and-Azure-App.pdf
Secretsth-Azure-KeyVault-and-Azure-App.pdfs87j3
 
Secretsth-Azure-KeyVault-and-Azure-App.pdf
Secretsth-Azure-KeyVault-and-Azure-App.pdfSecretsth-Azure-KeyVault-and-Azure-App.pdf
Secretsth-Azure-KeyVault-and-Azure-App.pdfs87j3
 
Centralized configuration with azure app configuration
Centralized configuration with azure app configurationCentralized configuration with azure app configuration
Centralized configuration with azure app configurationCallon Campbell
 
Using feature flags in an ASP.NET Core app on Azure
Using feature flags in an ASP.NET Core app on AzureUsing feature flags in an ASP.NET Core app on Azure
Using feature flags in an ASP.NET Core app on AzureJoonas Westlin
 
Azure Meetup: Keep your secrets and configurations safe in azure!
Azure Meetup: Keep your secrets and configurations safe in azure!Azure Meetup: Keep your secrets and configurations safe in azure!
Azure Meetup: Keep your secrets and configurations safe in azure!dotnetcode
 
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Phil Leggetter
 
SpringCloudConfig.pptx.pdf
SpringCloudConfig.pptx.pdfSpringCloudConfig.pptx.pdf
SpringCloudConfig.pptx.pdfKnoldus Inc.
 
Feature Toggle
Feature ToggleFeature Toggle
Feature ToggleBryan Liu
 
Unleash the power of Serverless Computing
Unleash the power of Serverless ComputingUnleash the power of Serverless Computing
Unleash the power of Serverless ComputingGaurav Madaan
 
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...Callon Campbell
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithMarkus Eisele
 
Introduction to Azure Functions
Introduction to Azure FunctionsIntroduction to Azure Functions
Introduction to Azure FunctionsCallon Campbell
 

Similar to Feature Toggle for .Net Core Apps on Azure with Azure App Configuration Feature Management (20)

Centralized Configuration Management for the Cloud with Azure App Configuration
Centralized Configuration Management for the Cloud with Azure App ConfigurationCentralized Configuration Management for the Cloud with Azure App Configuration
Centralized Configuration Management for the Cloud with Azure App Configuration
 
Festive Tech Calendar 2022
Festive Tech Calendar 2022Festive Tech Calendar 2022
Festive Tech Calendar 2022
 
#SPFestDC #Azure #Functions V2: What's new and getting started
#SPFestDC #Azure #Functions V2: What's new and getting started#SPFestDC #Azure #Functions V2: What's new and getting started
#SPFestDC #Azure #Functions V2: What's new and getting started
 
#SPFestSea Introduction to #Azure #Functions v2
#SPFestSea Introduction to #Azure #Functions v2#SPFestSea Introduction to #Azure #Functions v2
#SPFestSea Introduction to #Azure #Functions v2
 
Secretsth-Azure-KeyVault-and-Azure-App.pdf
Secretsth-Azure-KeyVault-and-Azure-App.pdfSecretsth-Azure-KeyVault-and-Azure-App.pdf
Secretsth-Azure-KeyVault-and-Azure-App.pdf
 
Secretsth-Azure-KeyVault-and-Azure-App.pdf
Secretsth-Azure-KeyVault-and-Azure-App.pdfSecretsth-Azure-KeyVault-and-Azure-App.pdf
Secretsth-Azure-KeyVault-and-Azure-App.pdf
 
Centralized configuration with azure app configuration
Centralized configuration with azure app configurationCentralized configuration with azure app configuration
Centralized configuration with azure app configuration
 
Using feature flags in an ASP.NET Core app on Azure
Using feature flags in an ASP.NET Core app on AzureUsing feature flags in an ASP.NET Core app on Azure
Using feature flags in an ASP.NET Core app on Azure
 
Azure Meetup: Keep your secrets and configurations safe in azure!
Azure Meetup: Keep your secrets and configurations safe in azure!Azure Meetup: Keep your secrets and configurations safe in azure!
Azure Meetup: Keep your secrets and configurations safe in azure!
 
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
 
ASP.NET MVC - Latest & Greatest So Far
ASP.NET MVC - Latest & Greatest So FarASP.NET MVC - Latest & Greatest So Far
ASP.NET MVC - Latest & Greatest So Far
 
SpringCloudConfig.pptx.pdf
SpringCloudConfig.pptx.pdfSpringCloudConfig.pptx.pdf
SpringCloudConfig.pptx.pdf
 
Feature Toggle
Feature ToggleFeature Toggle
Feature Toggle
 
spring
springspring
spring
 
Azure functions
Azure functionsAzure functions
Azure functions
 
Unleash the power of Serverless Computing
Unleash the power of Serverless ComputingUnleash the power of Serverless Computing
Unleash the power of Serverless Computing
 
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolith
 
Introduction to Azure Functions
Introduction to Azure FunctionsIntroduction to Azure Functions
Introduction to Azure Functions
 
Azure service fabric
Azure service fabricAzure service fabric
Azure service fabric
 

More from Kasun Kodagoda

Using GitHub Actions to Deploy your Workloads to Azure
Using GitHub Actions to Deploy your Workloads to AzureUsing GitHub Actions to Deploy your Workloads to Azure
Using GitHub Actions to Deploy your Workloads to AzureKasun Kodagoda
 
Get On Top of Azure Resource Security Using Secure DevOps Kit for Azure
Get On Top of Azure Resource Security Using Secure DevOps Kit for AzureGet On Top of Azure Resource Security Using Secure DevOps Kit for Azure
Get On Top of Azure Resource Security Using Secure DevOps Kit for AzureKasun Kodagoda
 
Serverless in the Azure World
Serverless in the Azure WorldServerless in the Azure World
Serverless in the Azure WorldKasun Kodagoda
 
Role of Test Automation in Modern Software Delivery Pipelines
Role of Test Automation in Modern Software Delivery PipelinesRole of Test Automation in Modern Software Delivery Pipelines
Role of Test Automation in Modern Software Delivery PipelinesKasun Kodagoda
 
Demystifying Azure Certifications
Demystifying Azure CertificationsDemystifying Azure Certifications
Demystifying Azure CertificationsKasun Kodagoda
 
Good Bye Credentials in Code, Welcome Azure Managed Identities
Good Bye Credentials in Code, Welcome Azure Managed IdentitiesGood Bye Credentials in Code, Welcome Azure Managed Identities
Good Bye Credentials in Code, Welcome Azure Managed IdentitiesKasun Kodagoda
 
DevOps: Why Should We Care?
DevOps: Why Should We Care?DevOps: Why Should We Care?
DevOps: Why Should We Care?Kasun Kodagoda
 
Introduction to Microsoft Azure
Introduction to Microsoft AzureIntroduction to Microsoft Azure
Introduction to Microsoft AzureKasun Kodagoda
 
Building Custom Visual Studio Team Service Build Tasks With VSTS DevOps Task SDK
Building Custom Visual Studio Team Service Build Tasks With VSTS DevOps Task SDKBuilding Custom Visual Studio Team Service Build Tasks With VSTS DevOps Task SDK
Building Custom Visual Studio Team Service Build Tasks With VSTS DevOps Task SDKKasun Kodagoda
 
Building a Continuous Delivery Pipeline With Visual Studio
Building a Continuous Delivery Pipeline With Visual StudioBuilding a Continuous Delivery Pipeline With Visual Studio
Building a Continuous Delivery Pipeline With Visual StudioKasun Kodagoda
 
Going Serverless with Azure Functions #1 - Introduction to Azure Functions
Going Serverless with Azure Functions #1 - Introduction to Azure FunctionsGoing Serverless with Azure Functions #1 - Introduction to Azure Functions
Going Serverless with Azure Functions #1 - Introduction to Azure FunctionsKasun Kodagoda
 
Making Money with Technology
Making Money with TechnologyMaking Money with Technology
Making Money with TechnologyKasun Kodagoda
 
Better End-to-End Testing with Page Objects Model using Protractor
Better End-to-End Testing with Page Objects Model using ProtractorBetter End-to-End Testing with Page Objects Model using Protractor
Better End-to-End Testing with Page Objects Model using ProtractorKasun Kodagoda
 
Monetizing Windows Phone Apps
Monetizing Windows Phone AppsMonetizing Windows Phone Apps
Monetizing Windows Phone AppsKasun Kodagoda
 

More from Kasun Kodagoda (14)

Using GitHub Actions to Deploy your Workloads to Azure
Using GitHub Actions to Deploy your Workloads to AzureUsing GitHub Actions to Deploy your Workloads to Azure
Using GitHub Actions to Deploy your Workloads to Azure
 
Get On Top of Azure Resource Security Using Secure DevOps Kit for Azure
Get On Top of Azure Resource Security Using Secure DevOps Kit for AzureGet On Top of Azure Resource Security Using Secure DevOps Kit for Azure
Get On Top of Azure Resource Security Using Secure DevOps Kit for Azure
 
Serverless in the Azure World
Serverless in the Azure WorldServerless in the Azure World
Serverless in the Azure World
 
Role of Test Automation in Modern Software Delivery Pipelines
Role of Test Automation in Modern Software Delivery PipelinesRole of Test Automation in Modern Software Delivery Pipelines
Role of Test Automation in Modern Software Delivery Pipelines
 
Demystifying Azure Certifications
Demystifying Azure CertificationsDemystifying Azure Certifications
Demystifying Azure Certifications
 
Good Bye Credentials in Code, Welcome Azure Managed Identities
Good Bye Credentials in Code, Welcome Azure Managed IdentitiesGood Bye Credentials in Code, Welcome Azure Managed Identities
Good Bye Credentials in Code, Welcome Azure Managed Identities
 
DevOps: Why Should We Care?
DevOps: Why Should We Care?DevOps: Why Should We Care?
DevOps: Why Should We Care?
 
Introduction to Microsoft Azure
Introduction to Microsoft AzureIntroduction to Microsoft Azure
Introduction to Microsoft Azure
 
Building Custom Visual Studio Team Service Build Tasks With VSTS DevOps Task SDK
Building Custom Visual Studio Team Service Build Tasks With VSTS DevOps Task SDKBuilding Custom Visual Studio Team Service Build Tasks With VSTS DevOps Task SDK
Building Custom Visual Studio Team Service Build Tasks With VSTS DevOps Task SDK
 
Building a Continuous Delivery Pipeline With Visual Studio
Building a Continuous Delivery Pipeline With Visual StudioBuilding a Continuous Delivery Pipeline With Visual Studio
Building a Continuous Delivery Pipeline With Visual Studio
 
Going Serverless with Azure Functions #1 - Introduction to Azure Functions
Going Serverless with Azure Functions #1 - Introduction to Azure FunctionsGoing Serverless with Azure Functions #1 - Introduction to Azure Functions
Going Serverless with Azure Functions #1 - Introduction to Azure Functions
 
Making Money with Technology
Making Money with TechnologyMaking Money with Technology
Making Money with Technology
 
Better End-to-End Testing with Page Objects Model using Protractor
Better End-to-End Testing with Page Objects Model using ProtractorBetter End-to-End Testing with Page Objects Model using Protractor
Better End-to-End Testing with Page Objects Model using Protractor
 
Monetizing Windows Phone Apps
Monetizing Windows Phone AppsMonetizing Windows Phone Apps
Monetizing Windows Phone Apps
 

Recently uploaded

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 

Recently uploaded (20)

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 

Feature Toggle for .Net Core Apps on Azure with Azure App Configuration Feature Management

  • 1. Feature Toggle for .Net Core Apps on Azure with Azure App Configuration Feature Management Kasun Kodagoda Technical Lead | 99X Technology https://kasunkodagoda.com
  • 2. I am, Kasun Kodagoda • In ♥ with Azure & Azure DevOps • Active Blogger – https://kasunkodagoda.com • Open Source Contributor - https://github.com/kasunkv • Technical Lead I Work For, • Established in 2004 • Headquartered in Sri Lanka with offices in Europe and Australia • Providing high quality, high value Software Product Engineering + R&D services
  • 3. What Are Feature Flags? A feature flag is a variable with a binary state of on or off. The feature flag also has an associated code block. The state of the feature flag determines whether the code block runs or not
  • 4. Why Use Feature Flags? • Reduce branching in your source control • Feature development is hidden under feature flags, therefore safe to deploy to prod. • Support incremental rollout of features • Expose to certain percentage of users, get feedback, improve and fully expose. • Testing in production • Expose features to a certain segment of users, beta users, internal team. Get feedback • Act as an instant kill switch • Turn off features quickly to without redeploying. • Selective activation of features • Long term feature flags. E.g. enable features for certain browsers as browser support comes.
  • 5. Microsoft.FeatureManagement Library • Created by Azure team • Built on .Net Core Configuration • Supports any IConfiguration provider • Supports feature flag lifetime management • Simple on/off feature flags to complex conditional flags • Supports creating custom feature filters • Support for ASP.Net Core MVC applications • Microsoft.FeatureManagement.AspNetCore library • Extension points for Routing, Filters, Action, Middleware and Razor Views
  • 6. Concepts • Feature Flag • Consists of 2 parts; • Feature name • List of feature filters • Filter can be a simple or complex filter • Can contain multiple feature filters • Feature Filter • Defines a scenario where feature should be enabled • List of feature filters are traversed until one feature filter evaluates for enabling the feature • The rest of the filters are ignored
  • 7. Let’s See it in Action Microsoft.FeatureManagement.AspNetCore
  • 9. What is Azure App Configuration? Azure App Configuration is service that allows you to centrally managed application settings and feature flags.
  • 10. Why Use Azure App Configuration? • Modern cloud applications are distributed • multiple instances running across many geographic locations • Managing application settings across these distributed instances is hard • difficult to troubleshoot issue when it comes up • Having the stored in a centralized location will solve this issues • Best practice to separate application settings from application code
  • 11. Azure App Configuration Features • Full Managed Service • Flexible Key Representation • Key Tagging with Labels • Point In Time Snapshots for Settings • Feature Flag Management UI • Encryption at Rest and on Transit • Support for Managed Identities
  • 12. App Configuration Feature Management • Define simple and conditional feature flags • Simple Flags – On/Off • Conditional Flags – On by default with feature filters • Backed by App Configuration • Define labels for multi-dimensional feature flags • Same feature flag name • Different values depending on Label • Dedicated Feature Flag Management UI
  • 13. Let’s See it in Action Azure App Configuration
  • 14. Thank You :) Any Questions? ;)
  • 15. Sample Code https://github.com/kasunkv/microsoft-feature-management-using-azure-app-configuration-example Slide Deck https://www.slideshare.net/KasunKodagoda1 Blog Posts https://kasunkodagoda.com/tag/feature-management/ Connect With Me Twitter: https://twitter.com/kasun_kodagoda Facebook: https://www.facebook.com/kasun.kodagoda LinkedIn: https://www.linkedin.com/in/kasunkodagoda/ Blog: https://kasunkodagoda.com/ http://bit.ly/feat-mgt-azure

Editor's Notes

  1. ]
  2. ]
  3. Modern cloud applications are distributed, they can have multiple instances running across many geographic locations Managing application settings across these distributed instances is difficult Its difficult to troubleshoot issue when it comes up Having the stored in a centralized location will solve this issues
  4. Modern cloud applications are distributed, they can have multiple instances running across many geographic locations Managing application settings across these distributed instances is difficult Its difficult to troubleshoot issue when it comes up Having the stored in a centralized location will solve this issues
  5. Modern cloud applications are distributed, they can have multiple instances running across many geographic locations Managing application settings across these distributed instances is difficult Its difficult to troubleshoot issue when it comes up Having the stored in a centralized location will solve this issues
  6. ]
  7. Modern cloud applications are distributed, they can have multiple instances running across many geographic locations Managing application settings across these distributed instances is difficult Its difficult to troubleshoot issue when it comes up Having the stored in a centralized location will solve this issues