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
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
400
Stencil JSについて
scrpgil
0
470
PWA_Toolkitについて.pdf
scrpgil
0
2.1k
Other Decks in Programming
See All in Programming
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
270
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
120
XHTMLが残したもの
yosuke_furukawa
PRO
2
760
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
150
Laravelのアプリケーションをどこにデプロイするか #ツナギメオフライン.9
akase244
0
130
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
320
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
180
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
240
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
490
高専キャリア LT 発表内容
crysta1221
6
5.7k
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
2.8k
Go のフラットな パッケージに 「ファイル単位の private」を 〜Linter “declscope” を作った話〜
mpyw
0
220
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Raft: Consensus for Rubyists
vanstee
141
7.7k
Skip the Path - Find Your Career Trail
mkilby
1
230
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
830
It's Worth the Effort
3n
188
29k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Evolving SEO for Evolving Search Engines
ryanjones
0
290
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
580
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
How to make the Groovebox
asonas
2
2.4k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
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