Progresivní experiment s příznaky funkcí
Jelikož se týmy DevOps posunou na agilní metodologii, která se zaměřuje na průběžné doručování funkcí, je potřeba řídit zveřejnění nových funkcí stále důležitější. Bez ohledu na to, jestli je cílem omezit přístup k těmto novým funkcím pro marketingové účely, nebo za účelem omezení cílové skupiny pro testování v produkčnímprostředí, jsou příznaky funkcí skvělým řešením.
Oddělení nasazení a ozáření
Příznaky funkcí jsou nastavení, která tým může definovat, aby označoval, zda je daná sada funkcí viditelná v uživatelském prostředí nebo vyvolaná v rámci funkce. Díky tomu může tým sestavovat a nasazovat tyto funkce jako součást běžného procesu vývoje, ale zabrání tomu, aby tyto funkce byly dostupné pro širokou škálu přístupu. Nabízejí pohodlný způsob, jak oddělit nasazení funkcí od jejich vystavení.
Příznaky poskytují řízení za běhu až na jednotlivé uživatele.
Příznaky také poskytují podrobné řízení pro jednotlivé uživatele. Pokud je čas povolit funkci, ať už pro jednoho uživatele, malou skupinu nebo všechny, může tým jednoduše změnit příznak funkce, aby ho bylo možné deaktivovat bez nutnosti opětovného nasazení.
Rozsah příznaku funkce se bude lišit v závislosti na povaze funkce a cílové skupině. V některých případech příznak funkce automaticky Překlopí funkce pro všechny. V jiných případech bude funkce povolená na základě uživatele. Týmy mohou také použít příznaky funkcí k zapnutí možnosti uživatelům povolit funkci, pokud chtějí. Neexistují žádné omezení způsobu, jakým jsou implementovány příznaky funkcí.
Podpora včasné zpětné vazby, experimentování
Příznaky funkcí jsou skvělým způsobem, jak podpořit předčasné experimentování. Některé funkce můžou mít hrubou hranu, která může být zajímavá jenom pro nejbližší z nich. Při pokusu o nahrání těchto funkcí, které nejsou naprosto připravené, by mohlo dojít k nespokojenosti produktů. Ale výhody shromažďování názorů od těch, které ochotné řešit práci s probíhajícími funkcemi, jsou necenné.
Přepínač rychlého vypnutí
Někdy je velmi užitečné, abyste mohli něco vypnout. Předpokládejme například, že nová funkce nefunguje tak, jak byla zamýšlena, a existují vedlejší účinky, které způsobují problémy jinde. Příznaky funkcí jsou skvělým způsobem, jak rychle vypnout nové funkce, abyste se mohli vrátit k důvěryhodnému chování bez nutnosti opětovného nasazení. I když se příznaky funkcí často považují za funkce uživatelského rozhraní, můžou se stejně snadno používat pro změny v architektuře nebo infrastruktuře.
Standardní fáze
Existuje standardní proces zavedení, který Microsoft používá k zapnutí příznaků funkcí. Existují dva samostatné koncepty: prstence jsou pro nasazení a fáze jsou pro příznaky funkcí. Přečtěte si další informace o zvoněních a fázích.
Fáze jsou veškeré informace o vyzrazení nebo expozici. Například první fáze může být pro účet týmu a osobní účty členů. V tuto chvíli už hodně běží spousta věcí, po které se uživatelé neuvidí, protože pro tuto první fázi jsou zapnuté jenom příznaky místa. Díky tomu může tým plně využívat a experimentovat s ním. Jakmile se tým odhlásí, vyberte možnost zákazníci by se k němu mohli vyjádřit prostřednictvím druhé fáze příznaků funkcí.
Výslovný souhlas
Je dobrým zvykem povolit uživatelům přihlášení k příznakům funkcí, pokud jsou proveditelní. Tým může například zveřejnit panel náhledu spojený s preferencemi a nastaveními uživatele.

Používání příznaků s telemetrie
V případě příznaků funkcí mají týmy způsob, jak postupně zveřejňovat aktualizace. Pokud ale chcete plně posoudit připravenost pro širší expozici, týmy musí nepřetržitě monitorovat správné metriky. Tyto metriky by měly zahrnovat chování při používání a také dopad aktualizací na stav systému. Je důležité se vyhnout depeši za předpokladu, že vše je v pořádku, protože nedošlo k žádnému nesprávnému chování.
Příklad příznaku funkce
Vezměte v úvahu následující příklad. Tým přidal několik tlačítek pro Výběr určitých položek a vrácení zpět v uživatelském rozhraní žádosti o získání dat. Tyto aplikace byly nasazeny pomocí příznaků funkcí.

Definování příznaků funkcí
Prvním vystavenou funkcí bylo tlačítko vrátit . V případě tohoto produktu používá řešení k definování všech příznaků funkcí soubor XML. V tomto případě je k dispozici jeden soubor na službu. Aby bylo zajištěno, že pokud tým skončí s jeho oddílem v průběhu času, je zřejmé, že je čas ho vyčistit. Odstraní staré příznaky, protože je přirozená motivace pro řízení velikosti tohoto souboru.
<?xml version="1.0" encoding="utf-8"?>
<!--
In this group we should register Azure DevOps specific features and sets their states.
-->
<ServicingStepGroup name="AzureDevOpsFeatureAvailability" … >
<Steps>
<!-- Feature Availability -->
<ServicingStep name="Register features" stepPerformer="FeatureAvailability" … >
<StepData>
<!--specifying owner to allow implicit removal of features -->
<Features owner="AzureDevOps">
<!-- Begin TFVC/Git -->
<Feature name="SourceControl.Revert" description="Source control revert features" />
Společné serverové rozhraní zajišťuje spoustu opakovaného použití a úspory v celém týmu. V ideálním případě bude mít projekt k dispozici infrastrukturu, aby vývojář mohl jednoduše definovat příznak v centrálním úložišti a mít zbývající část infrastruktury pro ně zpracována.
Kontrola příznaků funkcí za běhu
Příznak funkce, který se tady používá, má název SourceControl. REVERT. Tady je aktuální TypeScript z této stránky, který ilustruje volání kontroly dostupnosti funkce.
private addRevertButton(): void {
if (FeatureAvailability.isFeatureEnabled(Flags.SourceControlRevert)) {
this._calloutButtons.unshift(
<button onClick={ () => Dialogs.revertPullRequest(
this.props.repositoryContext,
this.props.pullRequest.pullRequestContract(),
this.props.pullRequest.branchStatusContract().sourceBranchStatus,
this.props.pullRequest.branchStatusContract().targetBranchStatus)
}
>
{VCResources.PullRequest_Revert_Button}
</button>
);
}
}
Výše uvedený příklad ukazuje použití v TypeScript, ale může to být jen tak snadné z C#. Kód zkontroluje, zda je funkce povolena, a pokud ano, vykreslí tlačítko pro poskytnutí funkce. Pokud příznak není povolený, tlačítko se přeskočí.
Řízení příznaku funkce
Dobrá platforma příznaku funkce vám poskytne několik způsobů, jak spravovat, jestli je daný příznak nastavený. Obvykle existují scénáře použití pro řízení příznaku prostřednictvím PowerShellu a webového rozhraní. V případě PowerShellu musí být všechny skutečně vystavované jako způsob, jak získat a nastavit stav příznaku funkce, spolu s nepovinnými parametry pro třeba konkrétní identifikátory uživatelských účtů (pokud jsou k dispozici).
Řízení příznaků funkcí prostřednictvím webového uživatelského rozhraní
Níže je uveden příklad použití webového uživatelského rozhraní vystaveného pro tento produkt týmem. Poznamenejte si příznak funkce pro SourceControl. REVERT. Tady jsou uvedené dva osobní účty: hallux a buckh-westeur. Stav je nastaven pro hallux, který má být v severním středu a vymazán pro druhý účet v západní Evropa.

Povaha příznaku funkce bude řídit způsob, jakým jsou funkce vystaveny. V některých případech se expozice řídí modelem prstence a fáze. V ostatních případech se uživatelé můžou rozhodnout v uživatelském rozhraní konfigurace, nebo dokonce poslat týmu přístup e-mailem.
Požadavky na příznaky funkcí
Většina příznaků funkcí může být vyřazena, jakmile je funkce zavedená pro všechny. V tomto okamžiku může tým odstranit všechny odkazy na příznak v kódu a konfiguraci. Je vhodné zahrnout revizi příznaku funkce, jako například na začátku každého sprintu.
Současně může existovat sada příznaků funkcí, které jsou trvalé z nejrůznějších důvodů. Tým například může chtít zachovat příznak funkce, který bude větve infrastruktury po dobu, po které dojde k úplnému přepnutí produkční služby. Mějte ale na paměti, že tento potenciální codepath může být v budoucnu znovu aktivován v budoucnosti během explicitního mazání příznaku funkce, takže je nutné ho otestovat a udržovat, dokud se možnost neodebere.
Příznaky funkcí a strategie větvení
Příznaky funkcí umožňují vývojovým týmům zahrnout neúplné funkce, main aniž by to ovlivnilo někoho jiného. Pokud je codepath izolované za příznakem funkce, je obecně bezpečné sestavovat a publikovat tento kód bez vedlejších účinků, které mají vliv na normální použití. Pokud ale existují případy, kdy funkce vyžaduje závislosti, například při vystavení koncového bodu REST, týmy musí mít na vědomí, jak můžou tyto závislosti vytvářet zabezpečení nebo údržbu, a to i bez zpřístupnění funkce.
Příznaky funkcí pro zmírnění rizika
Někdy je možné, že nové funkce budou zavádět destruktivní nebo rušivé změny. Například produkt může podléhat transformaci z rozsáhlého databázového schématu na jeden dlouhý. V takovém případě by měl vývojář vytvořit větev funkcí po krátkou dobu. Pak provedou změny destabilizující ve větvi a udržují funkci za příznakem. Oblíbený postup je, že týmy sloučí změny až do okamžiku, main kdy nezpůsobují škody. To by nebylo možné bez možnosti zachovat skryté funkce nedokončené za příznakem funkce.
Příznaky funkcí Help fungují v Main
Práce v nástroji main je dobrým způsobem, jak zvýšit DevOps cyklus, pokud se řídí běžnými postupy pro rozpoznávání popsanými ve fázi vývoje . V kombinaci s příznaky funkcí můžou vývojáři rychle sloučit své funkce a odeslat je do Gauntlet testů. Tím se zajistí, že se kód kvality rychle zveřejní pro testování v produkčnímprostředí. Po několika sprintech umožní vývojáři rychle rozpoznat výhody používání příznaků funkcí a aktivně je používat.
Jak se rozhodnout, jestli se má použít příznak funkce
Tato funkce je vlastníkem rozhodnutí, jestli pro danou změnu potřebuje příznak funkce nebo ne. Ne každá změna vyžaduje jednu, takže se jedná o rozhodnutí, které vývojář vyvolá, když si zvolí určitou změnu. V případě výše popsané funkce vrácení bylo důležité použít příznak funkce, protože to znamená, že tým mohl umístit tuto funkci do produkčního prostředí s řízenou expozicí. Díky tomu, že týmy můžou vlastnit klíčová rozhodnutí týkající se své oblasti funkcí, jsou součástí povolení autonomie v efektivní organizaci DevOps.
Sestavování vs. nákup
I když má každý tým možnost sestavovat svou vlastní infrastrukturu příznaků funkcí, obecně se doporučuje, aby přijaly platformu, jako je LaunchDarkly, pokud je to možné. Místo toho, aby bylo možné znovu sestavovat funkce příznaků funkcí, je vhodnější investovat do sestavování funkcí.
Další kroky
Přečtěte si další informace o používání příznaků funkcí v aplikaci ASP.NET Core.