Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Firebase Realtime DB から ActionCable 移行のマネジメントの話
Search
scrpgil
November 07, 2024
Programming
120
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
130
ChatGPTとLangChain さわってみた
scrpgil
0
120
久しぶりに ionic startしてみた
scrpgil
0
270
Ionic 6でWeb3やってみた
scrpgil
0
240
Ionic×Angularで作る ストーリーズ風UI
scrpgil
0
480
Angularで作るモバイルアプリ開発〜スタートアップの開発事情〜
scrpgil
0
710
夢のクロスプラットフォーム開発
scrpgil
0
400
Stencil JSについて
scrpgil
0
460
PWA_Toolkitについて.pdf
scrpgil
0
2.1k
Other Decks in Programming
See All in Programming
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
180
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
0
110
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
210
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
9
5.9k
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
920
【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
panda728
PRO
2
290
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
630
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
280
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
440
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
280
継続モナドとリアクティブプログラミング
yukikurage
3
670
Google Apps Script で Ruby を動かす
kawahara
0
120
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
360
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
460
The agentic SEO stack - context over prompts
schlessera
0
860
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
560
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Amusing Abliteration
ianozsvald
1
240
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
230
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
450
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