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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
160
ChatGPTとLangChain さわってみた
scrpgil
0
130
久しぶりに ionic startしてみた
scrpgil
0
270
Ionic 6でWeb3やってみた
scrpgil
0
240
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
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.7k
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
110
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
200
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
240
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
170
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
470
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
570
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
2.9k
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
280
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.2k
Intent as Code
shoppingjaws
6
1k
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
96
14k
Google's AI Overviews - The New Search
badams
0
1.6k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
240
The Invisible Side of Design
smashingmag
301
52k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
480
The SEO identity crisis: Don't let AI make you average
varn
0
560
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
580
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
590
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
650
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
The untapped power of vector embeddings
frankvandijk
2
1.9k
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