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 softwareontwikkelingspraktijk die de functierelease 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.
Volgende stappen
Als u functievlagmen met Azure-app Configuration wilt gaan gebruiken, gaat u verder met de volgende quickstarts die specifiek zijn voor de taal of het platform van uw toepassing.
Ga verder met de volgende zelfstudie voor meer informatie over het beheren van functievlagmen in Azure-app Configuratie.
Met functiefilters kunt u een functievlag voorwaardelijk inschakelen. Azure-app Configuratie biedt ingebouwde functiefilters waarmee u een functievlag alleen kunt activeren tijdens een bepaalde periode of voor een bepaalde doelgroep van uw app. Ga verder met de volgende zelfstudie voor meer informatie.