Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Feature Toggle による 安定的リリース
Slide 2
Slide 2 text
自己紹介 名前: 伊吹祐剛 技術: TypeScript, Go, Google Cloud, GraphQL 興味: チームビルディング、スクラム、英語 仕事: セキュリティサービス開発
Slide 3
Slide 3 text
目次 1. GitHub Flow開発について 2. トランクベース開発について 3. Feature Toggleについて 4. まとめ
Slide 4
Slide 4 text
GitHub Flowについて 1. 構造がシンプル 2. デプロイする時は main ブランチを対象にする main feature branch feature branch Staging Production UAT
Slide 5
Slide 5 text
GitHub Flowについて 1. 構造がシンプル 2. デプロイする時は main ブランチを対象にする main feature branch feature branch Staging Production コードが異なる可能性がある
Slide 6
Slide 6 text
トランクベース開発について GitHub Flow により完結化したブランチ構成に対して より細かい粒度で main にマージしていく開発スタイル。 - デプロイペース - 毎週、毎日 - main は常にリリースできる状態にする
Slide 7
Slide 7 text
トランクベース開発のジレンマ 常にリリースができる状態で main を保つ必要がある。 だが、トランクベース開発のコンセプトとして、 一つ一つの PR などの粒度を小さく細かくマージしていき、 コードを新鮮な状態にしておかなければいけない。 しかし、開発途中のものをリリースに取り込みたくない。
Slide 8
Slide 8 text
トランクベース開発のジレンマ 常にリリースができる状態で main を保つ必要がある。 だが、トランクベース開発のコンセプトとして、 一つ一つの PR などの粒度を小さく細かくマージしていき、 コードを新鮮な状態にしておかなければいけない。 しかし、開発途中のものをリリースに取り込みたくない。 そこで!
Slide 9
Slide 9 text
トランクベース開発のジレンマ 常にリリースができる状態で main を保つ必要がある。 だが、トランクベース開発のコンセプトとして、 一つ一つの PR などの粒度を小さく細かくマージしていき、 コードを新鮮な状態にしておかなければいけない。 しかし、開発途中のものをリリースに取り込みたくない。 そこで! Feature Toggle だ!!
Slide 10
Slide 10 text
Feature Toggle とは 何者か - 開発途中のものを隠しておくためのもの - トランクベース開発と相性が良く、開発を促進する 何が嬉しいか - 公開、非公開の制御を GUIで制御できる - 特定の範囲のみに公開などが可能になる
Slide 11
Slide 11 text
Feature Toggle サービス - DevCycle - LanuchDarkly - Unleash - Optimizely - VWO OSSとして提供があり、セルフホスティングできるものもある。
Slide 12
Slide 12 text
特徴① 主な Toggle 種別 - ON/OFF のbool切り替え - バージョンの管理 (v1, v2, v3) - 文字列による切り替え(‘beforeXX’, ‘merged’, ‘afterXX’)
Slide 13
Slide 13 text
特徴② - マルチテナントで活躍 - 特定のテナントに機能の提供 - 特定のユーザーに機能の提供 - GUIで分かりやすい - ボタン一つで切り替えできる分かりやすさ - リリース日まで機能の非公開などが可能
Slide 14
Slide 14 text
特徴③ - 環境毎に分けられる - dev、staging、prdなどの環境毎の設定ができる - 一つのフラグを作ることで全ての環境に対して作られたりする
Slide 15
Slide 15 text
まとめ Feature Toggle によって - mainブランチをベースにしたシンプル運用による安定的リリースができる - 対象を絞ったリリースができる - 環境での機能の切り替えができる 是非、これからの開発にFeature Toggleを取り入れて、血行の良い開発をしていきましょう!