← Cloudflare Flagship / flagship
Osvědčené postupy
Díky těmto vzorům zůstanou vyhodnocení Flagship předvídatelná, rychlá a snadno udržovatelná.
Zvolte správnou vyhodnocovací cestu
Použijte Workers binding uvnitř Cloudflare Workers. Binding se stará o ověřování automaticky, takže není potřeba spravovat API tokeny v aplikaci.
Použijte OpenFeature SDK pokud běžíte mimo Workers nebo potřebujete rozhraní OpenFeature nezávislé na dodavateli. Ve Workers můžete i tak předat vazbu poskytovateli serveru OpenFeature, abyste si zachovali výkon vazby a zároveň používali rozhraní API OpenFeature.
Vyhodnotit jednou za požadavek
Nevyhodnocujte stejný příznak opakovaně ve smyčce. Vyhodnoťte příznak jednou, výsledek uložte do lokální proměnné a použijte ho po zbytek požadavku.
const enabled = await env.FLAGS.getBooleanValue("show-related-items", false, {
userId,
});
for (const item of items) {
if (enabled) {
item.related = await loadRelatedItems(item.id);
}
}Předávejte kontext konzistentně
Cílení a procentuální rollouty závisí na kontextu vyhodnocení, který předáváte z vaší aplikace. Používejte stabilní identifikátory a všude stejné názvy atributů.
const context = {
userId: session.user.id,
plan: session.user.plan,
country: request.cf?.country ?? "unknown",
};
const enabled = await env.FLAGS.getBooleanValue("new-checkout", false, context);Pro SDK OpenFeature použijte targetingKey jako stabilní identifikátor. Pro binding Workers použijte atribut nakonfigurovaný pro váš rollout, například userId.
Zvolte bezpečné výchozí hodnoty
Každá metoda vyhodnocení vyžaduje výchozí hodnotu. Zvolte takovou výchozí hodnotu, která zajistí bezpečný chod vaší aplikace, pokud příznak neexistuje, nelze jej vyhodnotit nebo má neshodu typů.
U release flagů to obvykle bývá stávající chování aplikace. U konfiguračních flagů zvolte konzervativní limity nebo chování, které vaše aplikace zvládne bez dalších závislostí.
Použijte podrobnosti pro ladění a observabilitu
Použijte *Details metody, pokud potřebujete zjistit, proč byla vrácena daná hodnota. Podrobnosti zahrnují vyhodnocenou hodnotu, variantu, důvod a metadata chyby.
const details = await env.FLAGS.getBooleanDetails("new-checkout", false, {
userId: "user-42",
});
console.log(details.value);
console.log(details.variant);
console.log(details.reason);
console.log(details.errorCode);Nasazovat postupně
Začněte s malým procentuálním rolloutem, sledujte metriky aplikace a poté procento postupně zvyšujte.
- Vytvořte příznak s malým rolloutem, například 5 %.
- Sledujte chyby, latenci, obchodní metriky a zpětnou vazbu od uživatelů.
- Jak roste důvěra, zvyšujte na 25%, poté 50% a nakonec 100%.
- Jakmile rollout dosáhne 100 %, nastavte vítěznou variantu jako výchozí a odstraňte dočasná cílicí pravidla.
- Jakmile je funkce plně nasazena, odstraňte starou cestu kódu a smažte příznak.
Vyčistěte zastaralé příznaky
Příznaky, které jsou vypnuté nebo plně zavedené, přesto zvyšují náklady na údržbu. Než příznak odstraníte, nejprve jej vypněte, sledujte, zda nedochází k neočekávanému chování, odstraňte kód pro vyhodnocení, nasaďte tuto změnu kódu a teprve poté příznak odstraňte z Flagship.