UStackUStack
OpenFlags icon

OpenFlags

OpenFlags è un sistema di feature flag open source self-hosted per progressive delivery: valuta localmente via SDK e gestisci i rollout con un control plane semplice.

OpenFlags

Cos'è OpenFlags?

OpenFlags è un sistema di feature flag open source self-hosted progettato per aiutare i team a rilasciare cambiamenti con progressive delivery e rollout più sicuri. Fornisce un control plane e SDKs così che il codice dell'applicazione possa valutare i flag localmente e abilitare il comportamento delle feature senza ridistribuire per ogni modifica.

Lo scopo principale di OpenFlags è supportare workflow di rilascio—come rollout percentuali, attivazione mirata e abilitazione controllata—mantenendo la valutazione dei flag a bassa latenza e la proprietà runtime all'interno dell'infrastruttura del team.

Caratteristiche Principali

  • Infrastruttura flag self-hosted: Mantieni storage dei flag, logica di targeting e proprietà runtime nella tua infrastruttura invece di dipendere da una piattaforma hosted.
  • Valutazione locale via SDKs tipizzati: Valuta i flag nell'app usando package TypeScript, per controlli rapidi e prevedibili eseguendo la valutazione localmente nel tuo codice.
  • Controlli per progressive delivery: Distribuisci feature a slice controllate (inclusi rollout percentuali) invece di abilitare cambiamenti per tutti contemporaneamente.
  • Targeting granulare: Attiva i flag in base a targeting utente specifico così che cohort diversi ricevano comportamenti feature differenti.
  • Control plane REST con surface area focalizzata: Usa un semplice REST API per il control plane e la gestione dei flag, progettato come parte di un monorepo con ruoli dedicati per server, dashboard, SDKs e docs.
  • Dashboard per toggle e gestione rollout: Una UI admin basata su React aiuta i team a toggleare release e gestire la configurazione rollout.

Come Usare OpenFlags

  1. Inizia con documentazione e quickstart: Usa le docs fornite per impostare server, dashboard e SDKs nel tuo ambiente.
  2. Crea un client SDK nella tua app: Inizializza il client con il tuo API URL, project identifier e user identifier.
  3. Valuta i flag localmente nel codice dell'applicazione: Usa l'SDK per verificare se un flag è abilitato (ad esempio, chiamando flags.isEnabled("flag_name")) e renderizzare condizionalmente il comportamento.
  4. Gestisci la configurazione rollout dal control plane: Usa dashboard e/o REST API per definire comportamenti rollout come abilitazione percentuale o attivazione mirata.

Casi d'Uso

  • Abilita progressivamente una nuova user experience: Metti un'UI o workflow dietro un feature flag e abilitalo per un sottoinsieme controllato di utenti invece di tutto il traffico contemporaneamente.
  • Esegui un beta test con utenti mirati: Attiva una feature per cohort specifici targeting user identifier, permettendoti di confrontare comportamenti tra gruppi mantenendo il resto inalterato.
  • Riduci il blast radius del rilascio con rollout percentuali: Distribuisci un cambiamento gradualmente (ad esempio, al 35% degli utenti) e adatta il comportamento rollout senza ricostruire o ridistribuire l'applicazione.
  • Mantieni i check dei flag veloci in app sensibili alle performance: Usa valutazione locale nell'app così che i check delle feature rimangano a bassa latenza e consistenti durante il runtime.
  • Mantieni la proprietà nella tua infrastruttura: Usa un control plane self-hosted per tenere la superficie operativa e di audit nel tuo stack.

FAQ

  • OpenFlags è self-hosted o cloud-hosted? OpenFlags Cloud è descritto come "coming soon", e l'offerta attuale è posizionata come open source e self-hosted.

  • Come funziona la valutazione delle feature? OpenFlags supporta valutazione locale usando i suoi SDKs, così i check dei flag avvengono nel codice della tua app invece di richiedere una chiamata remota per ogni valutazione.

  • Quali pattern di rollout sono supportati? Il sito menziona progressive delivery con rollout percentuali, targeting granulare e abilitazione controllata.

  • Quali componenti include OpenFlags? Il monorepo include un server (API powered by Bun per il control plane), una dashboard basata su React, package SDK TypeScript e documentazione.

  • Per quali linguaggi/framework sono progettati gli SDKs? Il sito evidenzia l'uso SDK JavaScript-first e menziona supporto per Bun, React, Next.js, Vite e app Node.

Alternative

  • Piattaforme di feature flag gestite (SaaS): Centralizzano tipicamente la gestione dei flag in un servizio hosted. Rispetto al control plane self-hosted di OpenFlags, valutazione e ownership operativa possono dipendere di più dalla piattaforma del vendor.
  • Rollout guidati da infrastructure-as-code (senza valutazione dedicata dei flag): I team possono approssimare il progressive delivery con deployment, routing o toggle di configurazione. Differiscono da OpenFlags per l’assenza di un workflow SDK purpose-built per la valutazione locale.
  • Servizi open source di feature flag con architetture diverse: Altri sistemi open source possono offrire concetti simili (flag, targeting, dashboard) ma con tradeoff diversi in approccio SDK, design API del control plane o gestione della valutazione locale.