Feature Flag Driven Development
Page content
From Ericsson “Fueling 5G with DevOps”
Maintaining one track in software development, using feature flag-driven development, and establishing version-controlled repositories for application code and application and system configuration data enables teams to create a complete environment that is ready for consistent “build and deploy”.
What is feature flag-driven development
?
특정 feature에 대해 일부 고객(예를 들면 전체 고객 중 1%)에 대해서만 먼저 적용한 후 feedback에 따라 확대 적용할 지 rollback할 지를 결정하는 방식
문제가 발생하여 기능을 Rollback을 해야 하는 경우라도 일부 고객에만 영향을 주므로 부담이 적다는
Waterfall, Agile과의 비교. Agile의 경우도 deploy 시점에는 all-or-nothing 방식으로 적용하는 것이 아니냐는 생각인 듯.
Related readings
- FFDD에 대한 Reddit Feature branch와의 비교에 대한 의견
- FFDD에 대한 Hacker News 사이트의 의견들 FFDD가 아닌 module flag-driven development(자체 용어)를 낫다는 의견(Management agrees which set of features is released in a group as a module) FFDD는 수 많은
if
들로 코드가 복잡해 진다는 의견. 이를 위해removal branch
를 운영한다는 의견도 - FFDD 관련 솔류션을 제공하는 LaunchDarkly에서 공유한 FFDD 관련 가이드
- LaunchDarkly에서 운영하는 Hub for FFDD