Riakはなぜ良いのか

4,033 views

Published on

Riak Advent Calendar 2013 day4

Published in: Technology

Riakはなぜ良いのか

  1. 1. なぜRiakが良いのか @saisa6153
  2. 2. 冗長性 {k:’v’} どこに書き込んでも データは複製されて 同じ値を読み出せる {k:’v’}
  3. 3. 耐障害性/高可用性 {k:’v’} NW/HW障害が発生しても 他ノードが機能を代替して 生存ノードから読み出せる {k:’v’}
  4. 4. 更新可能性 {k:’w’} 変更を書き込んでも 更新内容は伝搬して 最新の値を読み出す {k:’w’}
  5. 5. 実際の使用例 インターネット/外部システム 外部アクセスのバランシング アプリケーションサーバ LB web 内部アクセスのバランシング Riakクラスタ SW Riak web LB Riak Riak
  6. 6. 実際の使用例 LB web web LB マシンが壊れても Riak Riak Riak
  7. 7. 実際の使用例 LB web web LB NW障害が発生しても Riak Riak Riak
  8. 8. 実際の使用例 LB 残り2台が頑張る! web \ここは俺達に任せて(ry/ ____________________     <○√    <○√       ∥       ∥      くく     くく web LB Riak Riak
  9. 9. 実際の使用例 LB web 翌朝マシンを追加すれば... Riak web LB Riak Riak
  10. 10. Node1 Node2 Node3 欠けていた間の差分を自動で送信
  11. 11. 実際の使用例 もとどおり!! システムも止まらない!! LB web web LB Riak Riak Riak
  12. 12. データベースといえば
  13. 13. これがMySQLだと ここらへんは一緒 LB web 書き込みはMasterに Masterへの書き込みはSlaveに複製 読み出しはSlaveに Master web Slave
  14. 14. これがMySQLだと LB web Masterが死んだら... web Master Slave
  15. 15. これがMySQLだと LB web Slaveが死んだら... web Master Slave
  16. 16. そうだ冗長化しよう!!
  17. 17. 冗長化しよう!! LB 変更を書き込むSlaveを 複数に設定 ↓ Slaveが一台壊れても 大丈夫 web web LB Master Slave Slave
  18. 18. 冗長化しy... LB web web LB Master Slave Slave
  19. 19. 冗長化した... <Active-Standby構成> ・普段はMaster:Aが  アクセスを受ける ・AとSは相互に死活監視 ・Aからの応答がない場合、  MasterのIPをSに振る ・以後、Master:Sが  Masterとして振る舞う LB web Master:A web LB Slave Master:S Slave
  20. 20. LB LB web web web LB Master:A Riak Riak Riak Master:S web LB Slave Slave Riak簡単!!台数も少ない!!
  21. 21. もちろんRiakにも不得意分野がある ● 強い整合性が求められるデータ ○ 課金情報 ● 応答速度を求められるデータ ○ セッション情報 →こういった分野は別のDBを用いるべき むしろRiakは他のDB製品に比べて ● 実績が少ない ● ユーザが少ない ● 使いはじめるまでが簡単ではない
  22. 22. しかし現実は非情
  23. 23. 「一体いつから---  データ量が増えないと錯覚していた?」 「DBサーバ追加...だと..?」
  24. 24. 「一体いつから---  webサーバは故障しないと錯覚していた?」 「再設定...だと..?」
  25. 25. オペミスなどによって システムが停止すると
  26. 26. 鳴り止まない、電 話 第 参 話
  27. 27. 稼働後のシステムは 止められない
  28. 28. 変わるトポロジ 変えられないサービス
  29. 29. 日々増大する複雑さと 莫大なトラフィック/データに 立ち向かう
  30. 30. 運用
  31. 31. 運用者に優しいDB
  32. 32. おしまい

×