Caratteristica: bandiere - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Caratteristica: bandiere

I flag di funzionalità possono essere implementati nei microfrontend per facilitare il coordinamento del test e del rilascio delle funzionalità in più ambienti. La tecnica del feature flag consiste nel centralizzare le decisioni in un negozio basato su valori booleani e nel guidare il comportamento in base a ciò. Viene spesso utilizzata per diffondere silenziosamente modifiche che possono essere tenute nascoste fino a un momento specifico, sbloccando al contempo nuove versioni per nuove funzionalità che altrimenti sarebbero bloccate, riducendo la velocità del team.

Prendiamo ad esempio i team che lavorano su una funzionalità di micro-frontend che verrà lanciata in una data specifica. La funzionalità è pronta, ma deve essere rilasciata insieme a una modifica su un altro micro-frontend rilasciato in modo indipendente. Il blocco del rilascio di entrambi i microfrontend sarebbe considerato un anti-pattern e aumenterebbe il rischio una volta implementato.

I team possono invece creare un feature flag booleano in un database che entrambi utilizzano durante il rendering (magari tramite una chiamata HTTP a un'API Feature Flags condivisa). I team possono anche rilasciare la modifica in un ambiente di test in cui il valore booleano è impostato per verificare i requisiti funzionali e non funzionali tra progetti prima di passare True alla produzione.

Un altro esempio di utilizzo dei flag di funzionalità è l'implementazione di un meccanismo per sovrascrivere il valore di un flag impostando un valore specifico tramite il QueryString parametro o memorizzando una particolare stringa di test in un cookie. I proprietari dei prodotti possono iterare sulle funzionalità senza bloccare il rilascio di altre funzionalità o correggere errori fino alla data di lancio. Alla data specificata, la modifica del valore del flag sul database rende immediatamente visibile la modifica in produzione, senza la necessità di rilasci coordinati tra i team. Dopo il rilascio di una funzionalità, i team di sviluppo puliscono il codice per rimuovere il vecchio comportamento.

Altri casi d'uso includono il rilascio di un sistema di feature flag basato sul contesto. Ad esempio, se un singolo sito Web serve i clienti in più lingue, una funzionalità potrebbe essere disponibile solo per i visitatori di un determinato paese. Il sistema di segnalazione delle funzionalità può dipendere dal fatto che il consumatore invii il contesto del paese (ad esempio utilizzando l'intestazione Accept-Language HTTP) e il comportamento può variare a seconda del contesto.

Sebbene i feature flag siano uno strumento potente per facilitare la collaborazione tra sviluppatori e proprietari di prodotti, si affidano alla diligenza delle persone per evitare un significativo degrado del codice base. Mantenere attivi i flag su più funzionalità può aumentare la complessità nella risoluzione dei problemi, aumentare la dimensione dei JavaScript pacchetti e, in ultima analisi, accumulare debiti tecnici. Le attività di mitigazione comuni includono quanto segue:

  • Ogni funzionalità viene sottoposta a test unitari mediante un flag per ridurre la probabilità di bug, il che può introdurre cicli di feedback più lunghi nelle pipeline CI/CD automatizzate che eseguono i test

  • Creazione di strumenti per misurare gli aumenti delle dimensioni dei pacchetti durante le modifiche al codice, che possono essere mitigati durante le revisioni del codice

AWS offre una gamma di soluzioni per ottimizzare i test A/B sull'edge utilizzando le CloudFront funzioni di Amazon o Lambda @Edge. Questi approcci aiutano a ridurre la complessità dell'integrazione di una soluzione o del prodotto SaaS esistente che stai utilizzando per affermare le tue ipotesi. Per ulteriori informazioni, consulta A/B testing.