Rilasciamo nuove feature in produzione con il Feature Gating


Details
Quando ci hanno proposto questo talk ci siamo dovuti documentare: wtf è il "feature gating"?
Penso che il modo migliore per spiegarlo sia pensare ad aziende come Facebook: la loro infrastruttura è sempre on line, eppure rilasciano codice in produzione continuamente. Come fanno? Oltre ad avere un ambiente di CI sempre attivo e un facebook interno su cui vengono immediatamente applicate tutte le novità, se non ci sono problemi ecco cosa accade (a grandi linee):
-
la feature viene immediatamente rilasciata allo 0,1% di fb
-
dopo qualche tempo, la feature viene rilasciata all'1% di fb
-
dopo altro tempo, al 10%
-
...e infine al 100%
Per implementare questo genere di rilascio utilizzano una tecnica nel codice, chiamata "feature gating", che permette di abilitare/disabilitare features a runtime. Non solo: questa tecnica è alla base dell'A/B testing, Canary releases, etc. Spoilerone: si tratta di un blocco IF con "un mondo intorno". Curiosi? Ce ne parlerà Davide Guida, da DELL:
Davide Guida è Senior Software Engineer in Dell a Limerick, Irlanda. Lavora principalmente con tecnologie Microsoft ma ama spaziare e tentare nuove tecnologie continuamente. Ogni tanto butta giù due righe sul suo blog: https://davideguida.com

Rilasciamo nuove feature in produzione con il Feature Gating