Share via


Overzicht van Functiebeheer

Normaal gesproken is het verzenden van een nieuwe toepassingsfunctie vereist dat de toepassing zelf volledig opnieuw wordt geïmplementeerd. Voor het testen van een functie zijn vaak meerdere implementaties van de toepassing vereist. Elke implementatie kan de functie wijzigen of de functie beschikbaar maken voor verschillende klanten om te testen.

Functiebeheer is een moderne softwareontwikkelingspraktijk die de release van functies loskoppelt van code-implementatie en snelle wijzigingen in functiebeschikbaarheid op aanvraag mogelijk maakt. Het maakt gebruik van een techniek genaamd functievlagmen (ook wel functieknoppen en functieswitches genoemd) om de levenscyclus van een functie dynamisch te beheren.

Met functiebeheer kunnen ontwikkelaars de volgende problemen oplossen:

  • Code branch management: gebruik functievlagmen om nieuwe toepassingsfunctionaliteit te verpakken die momenteel in ontwikkeling is. Dergelijke functionaliteit is standaard 'verborgen'. U kunt de functie veilig verzenden, ook al is het niet voltooid en blijft deze in productie. Met deze benadering, donkere implementatie genoemd, kunt u al uw code aan het einde van elke ontwikkelingscyclus vrijgeven. U hoeft codetakken over meerdere ontwikkelingscycli niet meer te onderhouden, omdat voor een bepaalde functie meer dan één cyclus nodig is om deze te voltooien.
  • Testen in productie: gebruik functievlagmen om vroegtijdige toegang te verlenen tot nieuwe functionaliteit in productie. U kunt bijvoorbeeld de toegang tot teamleden of interne bètatesters beperken. Deze gebruikers ervaren de volledige productie-ervaring in plaats van een gesimuleerde of gedeeltelijke ervaring in een testomgeving.
  • Flighting: Gebruik functievlagmen om incrementeel nieuwe functionaliteit uit te rollen voor eindgebruikers. U kunt zich eerst richten op een klein percentage van uw gebruikerspopulatie en dat percentage geleidelijk in de loop van de tijd verhogen.
  • Directe kill-switch: functievlagmen bieden een inherent veiligheidsnet voor het vrijgeven van nieuwe functionaliteit. U kunt toepassingsfuncties in- en uitschakelen zonder code opnieuw te implementeren. Indien nodig kunt u snel een functie uitschakelen zonder uw toepassing opnieuw te bouwen en opnieuw te implementeren.
  • Selectieve activering: gebruik functievlagmen om uw gebruikers te segmenteren en een specifieke set functies aan elke groep te leveren. Mogelijk hebt u een functie die alleen werkt in een bepaalde webbrowser. U kunt een functievlag definiëren zodat alleen gebruikers van die browser de functie kunnen zien en gebruiken. Met deze methode kunt u de ondersteunde browserlijst later eenvoudig uitbreiden zonder dat u codewijzigingen hoeft aan te brengen.

Basisbegrippen

Hier volgen enkele nieuwe termen met betrekking tot functiebeheer:

  • Functievlag: Een functievlag is een variabele met een binaire status van aan of uit. De functievlag heeft ook een gekoppeld codeblok. De status van de functievlag activeert of het codeblok wordt uitgevoerd.
  • Functiebeheer: Een functiebeheerder is een toepassingspakket dat de levenscyclus van alle functievlagmen in een toepassing afhandelt. De functiebeheerder biedt ook extra functionaliteit, waaronder het opslaan van functievlagmen in de cache en het bijwerken van hun statussen.
  • Filter: Een filter is een regel voor het evalueren van de status van een functievlag. Mogelijke filters zijn gebruikersgroepen, apparaat- of browsertypen, geografische locaties en tijdvensters.

Een effectieve implementatie van functiebeheer bestaat uit ten minste twee onderdelen die samenwerken:

  • Een toepassing die gebruikmaakt van functievlagmen.
  • Een afzonderlijke opslagplaats waarin de functievlagmen en hun huidige status worden opgeslagen.

Functievlagmen gebruiken in uw code

Het basispatroon voor het implementeren van functievlagmen in een toepassing is eenvoudig. Een functievlag is een Booleaanse statusvariabele die een voorwaardelijke instructie beheert in uw code:

if (featureFlag) {
    // Run the following code
}

U kunt de waarde van featureFlag statisch instellen:

bool featureFlag = true;

U kunt de status van de vlag evalueren op basis van bepaalde regels:

bool featureFlag = isBetaUser();

U kunt de voorwaarde uitbreiden om toepassingsgedrag in te stellen voor een van beide statussen:

if (featureFlag) {
    // This following code will run if the featureFlag value is true
} else {
    // This following code will run if the featureFlag value is false
}

Opslagplaats voor functievlagken

Als u functievlagmen effectief wilt gebruiken, moet u alle functievlagmen die in een toepassing worden gebruikt, externaliseren. U kunt deze methode gebruiken om statussen van functievlagken te wijzigen zonder de toepassing zelf te wijzigen en opnieuw te implementeren.

Azure-app Configuration biedt een gecentraliseerde opslagplaats voor functievlagmen. U kunt deze gebruiken om verschillende soorten functievlagmen te definiëren en hun statussen snel en betrouwbaar te manipuleren. Vervolgens kunt u de App Configuration-bibliotheken voor verschillende frameworks voor programmeertalen gebruiken om eenvoudig toegang te krijgen tot deze functievlagmen vanuit uw toepassing.

De functievlagmen in een ASP.NET Core-app laten zien hoe de App Configuration .NET-provider en functiebeheerbibliotheken samen worden gebruikt om functievlagmen voor uw ASP.NET-webtoepassing te implementeren. Zie de volgende artikelen voor meer informatie over functievlagmen in Azure-app Configuration:

Volgende stappen