
Using Betas to Deploy New Features Safely - Shopify
2/12/2021
This post introduces the concept of beta flags as a mechanism for safe feature deployment in continuous deployment environments. It details the anatomy of a beta flag system, defining 'Subject', 'BetaIdentifier', 'BetaFlag', and 'BetaRollout'. A key technical contribution is the implementation of a performant `BetaRollout#enabled?` method using a digest modulo 100 for consistent percentage-based rollouts. The post also proposes a higher-level 'Feature' abstraction to offer greater flexibility for rollouts, rollbacks, and escape hatches, and discusses important considerations like data structure reconciliation and the limitations of rollback for certain features.