Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Feature Toggle Makes Development Faster and Saf...

Feature Toggle Makes Development Faster and Safer @ TECHPULSE 2023

- Speaker: Euni Cheng
- Event: https://techpulse.line.me/

Feature toggle 是一種無需調整程式碼來更改系統行為的方法,幫助團隊快速且安全地向用戶提供新功能。本次將案例分享如何使用 Feature toggle 讓團隊可以在主分支上開發並且持續交付,以及介紹 Flagr 開源工具當中的架構與演算法,如果你也在關注如何提升產品體驗,歡迎前來聆聽!

Avatar for LINE Developers Taiwan

LINE Developers Taiwan PRO

February 21, 2023
Tweet

More Decks by LINE Developers Taiwan

Other Decks in Technology

Transcript

  1. 1

  2. What Is Feature Toggle Feature toggle is if/else controls in

    your code. Easily manage features without pushing a change. 2 A task: To enhance the daily lottery algorithm def old_daily_lottery_alg: # current implementation lives here def new_daily_lottery_alg: # TODO: implement better lottery alg Code without using feature toggle def daily_lottery_logic: # SWITCH TO TRUE IF YOU ARE WORKING ON THE NEW LOTTERY ALG use_new_alg = False if use_new_alg: new_daily_lottery_alg() else: old_daily_lottery_alg() Code using feature toggle def daily_lottery_logic: if feature_is_enabled("new_lottery_alg"): new_daily_lottery_alg() else: old_daily_lottery_alg()
  3. Use Case for E-commerce Use feature toggle to improve flexible

    developing schedule. 3 5/1 Complete code 5/3 Release data 5/5 Release data 5/6 Release data With Feature Toggle 5/1 Deploy code API related to client A API related to client B API related to client C 5/6 Deploy code Blocked by 3rd party services Feature Release Code Deployment Without Feature Toggle API related to client A API related to client B API related to client C A B C A B C
  4. Use Case for E-commerce Incrementally and safely release a new

    feature to your users 4 Engineering Sales Product EC Team Release Feedback Feature Toggle FEEDBACK LOOP PERCENTAGE ROLLOUT(%) 30%
  5. The Concept of Distributing Users Take the unique user ID,

    hash it using a hash function that has a uniform distribution and then mod bucket number. 5 Distribution ON OFF 0~299 300~999 Algorithm Uid: A1234 Hashed Uid: 2615402659 [0, 999] 659 Con fi g Variants: - On - Off Segment 1(All users): - Constraint: None - Rollout Percentage: 30%
  6. Use Case for E-commerce More than on/off, we can set

    multi-variants, such as red, green and blue. 6 Result Segment(s) On Off if (variant == "on") { [SHOW FEATURE] } if (variant == "off") { [NOT SHOW FEATURE] } Your Code Variants Randomly choose 20% of users to see shopping cart. VIP Golden Normal Red Blue Green if (variant == "red") { [SHOW RED PAGE] } if (variant == "blue") { [SHOW BLUE PAGE] } if (variant == "green") { [SHOW GREEN PAGE] } Show different page color to different membership.
  7. Toggle CRUD Life Cycle Retiring toggles to avoiding technical debt!

    8 • Development team create toggles when required. • Application read or expose toggled feature when they are switched ON. • Development team update toggled features when they are buggy. • A semi-automated process to destroy or remove toggles when job is done. Source: Feature Toggles (aka Feature Flags)
  8. Why FT makes development faster and safer? 9 Feature Release

    Code Deployment • Modify system behavior without changing code • Test a new feature without needing a separate testing environment. • Reduce release risk with an instant kill switch.