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

ローンチから16年目のWebサービスに、どうやってフィーチャートグルを導入したか、運用している...

meihei
September 24, 2022

ローンチから16年目のWebサービスに、どうやってフィーチャートグルを導入したか、運用しているか / phpcon2022

phpcon-2022

---
内容

- 弊社サービスにおけるフィーチャートグルを導入した効果
- フィーチャートグルの導入〜現在に至るまでの実装
- 導入後にテストを可能にするための改善

meihei

September 24, 2022
Tweet

More Decks by meihei

Other Decks in Programming

Transcript

  1. その裏側は?(去年まで) • PHP x.x ( < 8.1 ) で動いている •

    触れるとすべてが崩壊する独自フレームワーク • テストなし • Namespaceなし • スーパーグローバル使いたい放題 9
  2. フィーチャートグルの分類 • Release Toggles • Experiment Toggles • Ops Toggles

    • Permission Toggles PR TIMES が使っているものは Release Toggles + α 30
  3. • トランクベース開発に利用されるフラグ ◦ 細かい変更を頻繁に main ブランチにマージする手法 • 開発中の機能をOFFにすることで、機能が未完成で あっても main

    ブランチにマージできる • このフラグは静的である ただし、社内からのアクセスだけ、動的にフラグを切り 替える事が出来て、開発中の機能を試す事ができる PR TIMES が使っている Release Toggles 32
  4. その裏側は?(去年まで) • PHP x.x ( < 8.1 ) で動いている •

    触れるとすべてが崩壊する独自フレームワーク • テストなし • Namespaceなし • スーパーグローバル使いたい放題 56
  5. 1度のリリースの変更量を減らす • チケットの粒度を小さくする ◦ 実装開始から1〜2日で終わる程度に • 細かい変更量で main ブランチにマージする ◦

    Release Toggles を OFF にすることで、開発中の 機能であっても影響なくマージ可能 • 「細かい変更を頻繁に」という意識を持つ 63