Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Firebase Realtime Database 株式会社マナボ 導入事例

Firebase Realtime Database 株式会社マナボ 導入事例

Firebase.ebisu #1 の発表資料です。
http://firebase.connpass.com/event/41745/

248c57c2dcbecb120baadd4c0c93bff5?s=128

Daisuke Yamashita

October 18, 2016
Tweet

Transcript

  1. None
  2. 山下 大介 ( だいちゃん )     株式会社マナボ 取締役CTO    Blog  :

     h+p://blog.daisukeyamashita.com    Twi+er  :  @dddaisuke    Facebook  :  dice.k.yamashita     Google  Developer  Expert  (Cloud):       h+ps://developers.google.com/experts/people/daisuke-­‐yamashita   ConfidenIal  ©  mana.bo  Inc.  All  Rights   Reserved 2
  3. None
  4. None
  5. None
  6. None
  7. None
  8. None
  9. None
  10. None
  11. None
  12. None
  13. None
  14. None
  15. None
  16. None
  17. Google  For  Mobile  2016

  18. DevFest  2016

  19. None
  20. None
  21. 信頼性   •  FirebaseはGoogleが買収してきたテクノロジー

  22. None
  23. None
  24. 信頼性 稼働率は99.9%程度かな?

  25. 信頼性     日々、安定してきているとは言え、現状それなり のダウンタイムがある。  

  26. 対策 •  マナボでは、RealIme  DBを100%信用せず、 WebSocketで、フォールバックのラインを用意 した。   •  それぞれの障害率を0.1%とすると、同時に障 害が発生する障害率は0.01%。

  27. 書き込み

  28. LINE風メッセージング機能の実装   新しいメッセージング機能に関しては、   当初マスターデータを   Firebaseに保管する予定だった  

  29. LINE風メッセージング機能の実装 FirebaseのRealIme  Databaseを   運用するノウハウがそれほど無かった     複雑なスキーマ設計に自信が無い  

  30. LINE風メッセージング機能の実装 スキーマ変更がある前提の設計にしよう!

  31. REST  APIが遅い!!!     REST  APIが遅いので、データを高速に   マイグレーションするのは不可能!!!

  32. REST  APIが遅い!!!     REST  APIが遅すぎて、全データのクローンを   どこかに持つ必要があると判断  

  33. REST  APIが遅い!!!     Firebase  RealIme  Databaseに   マスターデータを格納するのを諦める

  34. 非同期の読み込み   (最初の1回目など)

  35. 汎用的なお話

  36. RealIme  DBの設計 •  Firebase  RealIme  DBの設計の勘所は、以下 のURLを参照   •  h+ps://firebase.google.com/docs/database/

    rest/structure-­‐data
  37. 非正規化の問題 •  同じデータが複数箇所に保存され、更新が難 しい(更新漏れが発生する)

  38. リレーションの問題 •  リレーションを表現するのに、双方向リストと して表現する必要がある  

  39. リレーションの問題 •  更新をミスると即死亡  

  40. これらの問題に対応しようとすると   クライアントのコード中で発生することは

  41.     THE・スパゲッティコード

  42. まとめ   Firebaseはカジュアルに   リアルタイム更新をデバイス間で共有できるが、     現実的に大規模運用をスマホ(Android/iOS)の コードだけで完結させるのは厳しそう

  43.     今後の機能追加に期待しています!

  44. None