Open4

トランクベース駆動開発とFeature Flagsのノウハウ

shimakaze_softshimakaze_soft

トランクベース開発というものがある。

一つのメインブランチ(trunk)上で作業を行い、1~2日以内にマージすることを前提とした作業用ブランチ(short-lived branch)を作成して、そこで作業を行う。

https://rheb.hatenablog.com/entry/2021/08/24/トランクベース開発について

始めるにはCIは大前提となり、E2Eなどの自動テストは必須となる。それをやらないと、バグなどがあるのか使用通りに挙動するのか何も確認してないのに本番に反映させるわけにはいかない。

また細かい単位をどんどんマージさせていくので、一つの作業用ブランチで一つの機能の開発なんてできる可能性の方が低い。

そのため、デプロイされている機能をON/OFFをいつでも制御できるFeature Flagを入れることも必須となってくる。

Feature Flagには4種類ある。

  • Release Toggles(リリーストグル)
  • Experiment Toggles(実験トグル)
  • Ops Toggles(運用トグル)
  • Permission Toggles(許可トグル)

https://kakakakakku.hatenablog.com/entry/2022/02/01/102104

shimakaze_softshimakaze_soft

Feature Flagのツールにはいくつかあるが、主に以下がありオススメとのこと。

  • LaunchDarkly
  • Unleash
  • Split

LaunchDarklyが一番機能豊富とのこと。
Unleashはセルフホスティングとクラウドベースの両方がある。
Splitには機能が限定されるものの、無料プランがある。

詳しい比較表には以下がある。

https://cz-cdn.shoeisha.jp/static/images/article/14662/14662_001.png

参考資料
https://codezine.jp/article/detail/14662

https://codezine.jp/article/detail/14662