Funkciókezelés áttekintése
Az új alkalmazásfunkciók szállításához hagyományosan az alkalmazás teljes újbóli üzembe helyezésére van szükség. A funkciók teszteléséhez gyakran szükség van az alkalmazás több központi telepítésére. Minden egyes üzembe helyezés megváltoztathatja a funkciót, vagy közzéteheti a szolgáltatást a különböző ügyfelek számára tesztelés céljából.
A funkciókezelés egy modern szoftverfejlesztési gyakorlat, amely leválasztja a funkciókiadást a kód üzembe helyezéséről, és lehetővé teszi a funkciók igény szerinti rendelkezésre állásának gyors módosítását. Funkciójelzőknek (más néven funkcióváltóknak és funkciókapcsolóknak) nevezett technikát használ egy szolgáltatás életciklusának dinamikus felügyeletéhez.
A funkciókezelés segít a fejlesztőknek a következő problémák megoldásában:
- Kódág-kezelés: Funkciójelzők használatával burkolhatja a fejlesztés alatt álló új alkalmazásfunkciókat. Az ilyen funkciók alapértelmezés szerint "rejtettek". A funkció biztonságosan szállítható, még akkor is, ha még nincs befejezve, és továbbra is az éles környezetben marad. Ezzel a sötét üzembe helyezésnek nevezett megközelítéssel az összes kódot minden fejlesztési ciklus végén közzéteheti. Többé nem kell több fejlesztési ciklus kódágait fenntartania, mert egy adott funkció elvégzéséhez több ciklusra van szükség.
- Éles tesztelés: Funkciójelzőkkel korai hozzáférést biztosíthat az éles környezetben lévő új funkciókhoz. Korlátozhatja például a csapattagok vagy a belső bétatesztelők hozzáférését. Ezek a felhasználók a tesztelési környezetben szimulált vagy részleges élmény helyett teljes körű éles környezetet fognak tapasztalni.
- Repülés: Funkciójelzőkkel növekményesen új funkciókat hozhat létre a végfelhasználók számára. Először a felhasználói populáció egy kis százalékát célozhatja meg, és ezt a százalékos arányt fokozatosan növelheti az idő függvényében.
- Azonnali leállítás kapcsoló: A funkciójelzők egy belső biztonsági hálót biztosítanak az új funkciók kiadásához. Az alkalmazásfunkciók be- és kikapcsolhatók anélkül, hogy újra üzembe helyezhetnek bármilyen kódot. Szükség esetén gyorsan letilthat egy funkciót az alkalmazás újraépítése és ismételt üzembe helyezése nélkül.
- Szelektív aktiválás: Funkciójelzők használatával szegmentálta a felhasználókat, és adott funkciókat biztosít az egyes csoportoknak. Előfordulhat, hogy olyan funkciója van, amely csak egy bizonyos webböngészőben működik. Megadhat egy funkciójelzőt, hogy csak a böngésző felhasználói láthassák és használhassák a funkciót. Ezzel a módszerrel később egyszerűen kibonthatja a támogatott böngészőlistát anélkül, hogy bármilyen kódmódosítást kellene végrehajtania.
Alapfogalmak
Íme néhány új kifejezés a funkciókezeléshez:
- Funkciójelző: A funkciójelző egy olyan változó, amelynek bináris állapota be- vagy ki van kapcsolva. A funkciójelölőhöz társított kódblokk is tartozik. A funkciójelző állapota aktiválja, hogy a kódblokk fut-e.
- Funkciókezelő: A szolgáltatáskezelő egy alkalmazáscsomag, amely az alkalmazás összes funkciójelzőjének életciklusát kezeli. A funkciókezelő további funkciókat is biztosít, beleértve a funkciójelzők gyorsítótárazását és az állapotuk frissítését.
- Szűrő: A szűrő egy funkciójelző állapotának kiértékelésére szolgáló szabály. A lehetséges szűrők közé tartoznak a felhasználói csoportok, az eszköz- vagy böngészőtípusok, a földrajzi helyek és az időablakok.
A funkciókezelés hatékony megvalósítása legalább két, összehangoltan működő összetevőből áll:
- Funkciójelzőket használó alkalmazás.
- Egy külön adattár, amely a funkciójelzőket és azok aktuális állapotát tárolja.
Funkciójelzők használata a kódban
A funkciójelzők alkalmazásbeli implementálásának alapszintű mintája egyszerű. A funkciójelölő egy logikai állapotváltozó, amely egy feltételes utasítást szabályoz a kódban:
if (featureFlag) {
// Run the following code
}
A statikus érték featureFlag
beállítható:
bool featureFlag = true;
A jelző állapotát bizonyos szabályok alapján értékelheti ki:
bool featureFlag = isBetaUser();
A feltételes feltételt kiterjesztve beállíthatja az alkalmazás viselkedését bármelyik állapothoz:
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
}
Funkciójelző-adattár
A funkciójelzők hatékony használatához ki kell külsőleg használnia az alkalmazásban használt összes funkciójelzőt. Ezzel a megközelítéssel anélkül módosíthatja a funkciójelző állapotát, hogy módosítaná és újra üzembe helyezi az alkalmazást.
Azure-alkalmazás Konfiguráció központosított adattárat biztosít a funkciójelzőkhöz. Segítségével különböző típusú funkciójelzőket definiálhat, és gyorsan és magabiztosan módosíthatja az állapotukat. Ezt követően az alkalmazáskonfigurációs kódtárak segítségével különböző programozási nyelvi keretrendszerekhez egyszerűen hozzáférhet ezekhez a funkciójelölőkhöz az alkalmazásból.
A ASP.NET Core-alkalmazások funkciójelzői bemutatják, hogyan használják együtt az alkalmazáskonfigurációs .NET-szolgáltatót és a szolgáltatásfelügyeleti kódtárakat a ASP.NET-webalkalmazás funkciójelzőinek implementálásához. A Azure-alkalmazás Configuration szolgáltatásjelzőiről az alábbi cikkekben talál további információt:
- Funkciójelölők kezelése
- Feltételes funkciójelzők használata
- Funkció engedélyezése megadott felhasználókhoz/csoportokhoz
- Funkciójelzők hozzáadása egy ASP.NET Core-alkalmazáshoz
- Funkciójelzők hozzáadása egy .NET-keretrendszer-alkalmazáshoz
- Funkciójelzők hozzáadása egy Azure Functions-alkalmazáshoz
- Funkciójelzők hozzáadása Spring Boot-alkalmazáshoz
- Funkciójelzők használata ASP.NET Core-ban
- Funkciójelzők használata Spring Boot-alkalmazásban