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
Firebase Realtime DB から ActionCable 移行のマネジメントの話
Search
scrpgil
November 07, 2024
Programming
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Firebase Realtime DB から ActionCable 移行のマネジメントの話
scrpgil
November 07, 2024
More Decks by scrpgil
See All by scrpgil
フレーム問題で考えてみるやる夫スレViewer
scrpgil
0
170
ChatGPTとLangChain さわってみた
scrpgil
0
130
久しぶりに ionic startしてみた
scrpgil
0
280
Ionic 6でWeb3やってみた
scrpgil
0
250
Ionic×Angularで作る ストーリーズ風UI
scrpgil
0
490
Angularで作るモバイルアプリ開発〜スタートアップの開発事情〜
scrpgil
0
730
夢のクロスプラットフォーム開発
scrpgil
0
410
Stencil JSについて
scrpgil
0
470
PWA_Toolkitについて.pdf
scrpgil
0
2.1k
Other Decks in Programming
See All in Programming
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
270
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
プロダクトコードからライブラリの境界を見つける
elmetal
PRO
0
100
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
390
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
630
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
350
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
460
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
190
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
910
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.8k
AWSに止められる覚悟してますか?
morizo_1984
2
510
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
110
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
510
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
690
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Product Roadmaps are Hard
iamctodd
55
13k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Typedesign – Prime Four
hannesfritz
42
3.2k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Discover your Explorer Soul
emna__ayadi
2
1.3k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Transcript
Firebase Realtime DB から ActionCable 移行の マネジメントの話 @scrpgil Omotesand.rb#103 2024/11/07
1
自己紹介 榊原宏祐 株式会社キネカ 取締役 CTO 趣味は、将棋・音楽・クラフトビールです 2
3
4
今日話したいこと 引用: https://speakerdeck.com/kentaro/the-secret-of-leadership-and-followership 5
こんなときどうしますか? 部下: Action Cable 使いたいです! 私: ◯◯◯◯ 6
こんなときどうしますか? 部下: Action Cable 使いたいです! 私: いいじゃん!! 7
実際はこう 部下: Action Cable 使いたいです! 私: 何に使うの? それよりテストカバレッジあげる方に時間使ってほしい! 8
行動には説明責任が伴う Action Cable を導入するメリットは? 技術、事業、組織で三軸で考える 技術:開発効率が上がるのか?技術的負債を減らせるのか? 事業:ユーザー体験が向上するのか?収益に貢献するのか? 組織:チームのスキルアップになるのか?採用や教育に有利か? 9
後方の歴史家目線 https://speakerdeck.com/kentaro/the-secret-of-leadership-and-followership 10
脱 Firebase Realtime DB Pub/Sub のためだけにMySQL とは別に Firebase Realtime DB
を使っていた 一斉送信の送信時間増加によるビジネス側への影響が大きくなっていた リージョン間の遅延により、30 万人への一斉送信に 24 時間以上かかる よって、ビジネス側の通知オペレーション控えが起きる 11
脱 Firebase Realtime DB 障害が発生したのも影響 12
Action Cable 使おう! Rails 標準の機能で実装できる 脱 Realtime DB による速度アップ スケーラビリティも確保できる
13
ステークホルダーへの説明 ビジネスチーム 一斉送信の時間短縮により、タイムリーなキャンペーンが可能になる 開発チーム Action Cable の事例作ろうぜ! 技術的知見の獲得 経営陣 Firebase
Realtime DB 消せる コスト削減できます! 14
ロードマップ作成 1. ロードマップの策定 2. 移行変更点 3. 具体的なステップ 4. 進捗サポート 15
1. ロードマップ作成:期間設定 3 ヶ月で終わるプランを引く 基本四半期、それ以上かかるなら何かがおかしい 技術イベント(今回は Kaigi on Rails )への登壇も意識
16
2. ロードマップ作成:移行計画 移行の変更点 Pub/Sub 処理を Firebase Realtime DB から Action
Cable に置き換え DB: Firebase Realtime DB→MySQL に置き換え 履歴取得 API: Firebase Realtime DB から REST API に置き換え 17
2. ロードマップ作成:具体的なステップ Step 1: 2 週間 Firebase Realtime DB のまま、API
だけ作成 talks#index は作成し、過去のトーク履歴は Firebase Realtime DB から取得 クライアント側では Firebase Realtime DB は pub/sub だけ処理 Step 2: 2 週間 talks#index でのトーク履歴を MySQL に置き換え Firebase Realtime DB→ カラム抽出 →MySQL のテーブルに移行 Step 3: 4 週間 Firebase Realtime DB の Pub/Sub 処理を Action Cable に置き換え 18
進捗サポート リソース分配 インフラチームとのつなぎ込み エスカレーション対応の負荷軽減 定例による進捗管理 JSON パース重い問題 7 年分の JSON
を CSV にパースするのに時間かかる 19
完成! 20
成果 30 万人への一斉送信時間が 24 時間 →30 分 Firebase Realtime DB
削除によるコストカット 複数 DB 廃止による設計&実装簡略化 21
振り返って 良かった点 事業 KPI の大幅改善(送信時間 24h→30min ) チームの技術力向上 インフラコスト削減 学んだこと
技術提案を受けた時の判断基準の重要性 ステークホルダーとの合意形成の進め方 22
反省点 最初から「やっていき・のっていき」するべきだった ただし、過去失敗も多かったので実際問題難しい 後からでも理由付けを行い、ステークホルダーに説明することが重要 技術・事業・組織の三軸で説明できる力を開発チーム全体で養う 23
まとめ 今後も「やっていき・のっていき」で新しいことに挑戦していく その際は「技術・事業・組織」の三軸で行動を説明できるようにする 24
ご清聴ありがとうございました 25