Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Feature Toggleによる安定的リリース
Search
Yugo
March 09, 2024
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Feature Toggleによる安定的リリース
登壇資料
https://growfit01.connpass.com/event/308480/
Yugo
March 09, 2024
More Decks by Yugo
See All by Yugo
AIを組織で使う時のセキュリティ
yugo
0
14
認可サーバ構築時の裏話
yugo
0
53
AIアプリケーションエンジニアとしての初めての仕事 - MCPの開発の経験を踏まえて
yugo
0
23
Cloudflare Workers Durable Objects
yugo
0
590
The Talking Rhythm
yugo
0
230
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Optimising Largest Contentful Paint
csswizardry
37
4k
Un-Boring Meetings
codingconduct
0
440
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
30 Presentation Tips
portentint
PRO
1
420
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
400
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
370
Code Review Best Practice
trishagee
74
20k
Mind Mapping
helmedeiros
1
390
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
450
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Transcript
Feature Toggle による 安定的リリース
自己紹介 名前: 伊吹祐剛 技術: TypeScript, Go, Google Cloud, GraphQL 興味:
チームビルディング、スクラム、英語 仕事: セキュリティサービス開発
目次 1. GitHub Flow開発について 2. トランクベース開発について 3. Feature Toggleについて 4.
まとめ
GitHub Flowについて 1. 構造がシンプル 2. デプロイする時は main ブランチを対象にする main feature
branch feature branch Staging Production UAT
GitHub Flowについて 1. 構造がシンプル 2. デプロイする時は main ブランチを対象にする main feature
branch feature branch Staging Production コードが異なる可能性がある
トランクベース開発について GitHub Flow により完結化したブランチ構成に対して より細かい粒度で main にマージしていく開発スタイル。 - デプロイペース -
毎週、毎日 - main は常にリリースできる状態にする
トランクベース開発のジレンマ 常にリリースができる状態で main を保つ必要がある。 だが、トランクベース開発のコンセプトとして、 一つ一つの PR などの粒度を小さく細かくマージしていき、 コードを新鮮な状態にしておかなければいけない。 しかし、開発途中のものをリリースに取り込みたくない。
トランクベース開発のジレンマ 常にリリースができる状態で main を保つ必要がある。 だが、トランクベース開発のコンセプトとして、 一つ一つの PR などの粒度を小さく細かくマージしていき、 コードを新鮮な状態にしておかなければいけない。 しかし、開発途中のものをリリースに取り込みたくない。
そこで!
トランクベース開発のジレンマ 常にリリースができる状態で main を保つ必要がある。 だが、トランクベース開発のコンセプトとして、 一つ一つの PR などの粒度を小さく細かくマージしていき、 コードを新鮮な状態にしておかなければいけない。 しかし、開発途中のものをリリースに取り込みたくない。
そこで! Feature Toggle だ!!
Feature Toggle とは 何者か - 開発途中のものを隠しておくためのもの - トランクベース開発と相性が良く、開発を促進する 何が嬉しいか -
公開、非公開の制御を GUIで制御できる - 特定の範囲のみに公開などが可能になる
Feature Toggle サービス - DevCycle - LanuchDarkly - Unleash -
Optimizely - VWO OSSとして提供があり、セルフホスティングできるものもある。
特徴① 主な Toggle 種別 - ON/OFF のbool切り替え - バージョンの管理 (v1,
v2, v3) - 文字列による切り替え(‘beforeXX’, ‘merged’, ‘afterXX’)
特徴② - マルチテナントで活躍 - 特定のテナントに機能の提供 - 特定のユーザーに機能の提供 - GUIで分かりやすい -
ボタン一つで切り替えできる分かりやすさ - リリース日まで機能の非公開などが可能
特徴③ - 環境毎に分けられる - dev、staging、prdなどの環境毎の設定ができる - 一つのフラグを作ることで全ての環境に対して作られたりする
まとめ Feature Toggle によって - mainブランチをベースにしたシンプル運用による安定的リリースができる - 対象を絞ったリリースができる - 環境での機能の切り替えができる
是非、これからの開発にFeature Toggleを取り入れて、血行の良い開発をしていきましょう!