忍者ツールズのCouchbase導入事例

5,228 views

Published on

Couchconf Tokyo 2013
忍者ツールズのCouchbase導入事例
Kenichi Tsunokawa, Samurai Factory Inc.
http://www.couchbase.com/jp/couchconf-tokyo-jp

Published in: Technology
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,228
On SlideShare
0
From Embeds
0
Number of Embeds
1,629
Actions
Shares
0
Downloads
21
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

忍者ツールズのCouchbase導入事例

  1. 1. 忍者ツールズのCouchbase 導入事例Kenichi Tsunokawa, Samurai Factory Inc.
  2. 2. アジェンダ• 会社紹介、サービス紹介• Couchbaseをどう利用しているか• Couchbase導入後、どう良くなったか• 運用していて困ったこと• 運用していて分かったこと
  3. 3. 自己紹介株式会社サムライファクトリー 角川 兼一(Kenichi Tsunokawa) サーバー運用/構築を担当しています。 Twitter:@tsunokawa
  4. 4. 株式会社サムライファクトリー WEBメディアサービスhttp://www.ninja.co.jp/ Marketingツール/広告サービスhttp://www.biz-samurai.com/
  5. 5. 忍者ツールズ• 忍者ブログ• 忍者ホームページ• 忍者サンドボックス• 忍者アクセス解析• NINJA ANALYZE
  6. 6. BIZ SAMURAI
  7. 7. 忍者ツールズは様々なサービスを展開しています。
  8. 8. その様々なサービスでCouchbaseを利用しています。
  9. 9. 主にDBキャッシュで利用していて、Memcachedから移行しつつあります。
  10. 10. 忍者ツールズサービス環境
  11. 11. 忍者ツールズサーバー構成 LVS ApacheMemcached DB
  12. 12. 忍者ツールズサーバー構成 LVS LVS ApacheMemcached DB
  13. 13. 忍者ツールズサーバー構成 LVS LVS ApacheMemcached DB
  14. 14. 忍者ツールズサーバー構成 LVS LVS ApacheMemcached DB
  15. 15. 忍者ツールズサーバー構成 LVS LVS ApacheMemcached DB
  16. 16. 忍者ツールズサーバー構成 LVS LVS ApacheMemcached DB
  17. 17. 忍者ツールズサーバー構成 LVS LVS ApacheMemcached DB
  18. 18. 忍者ツールズサーバー構成 LVS LVS ApacheMemcached DB
  19. 19. 忍者ツールズサーバー構成 LVS LVS ApacheMemcached DB
  20. 20. 忍者ツールズサーバー構成 LVS LVS ApacheMemcached DB
  21. 21. 忍者ツールズサーバー構成 LVS LVS ApacheMemcached DB
  22. 22. 忍者ツールズサーバー構成 LVS LVS ApacheMemcached ? DB
  23. 23. 忍者ホームページ 忍者ブログ 忍者サンドボックス LVS LVS LVS LVS LVS LVS Apache Apache Apache and moreMemcached Memcached Memcached DB DB DB
  24. 24. Couchbase登場!Memcached → Couchbase
  25. 25. 忍者ホームページ 忍者ブログ 忍者サンドボックス LVS LVS LVS andApache Apache Apache more DB DB DB Couchbase
  26. 26. Couchbase導入前の Memcachedの課題• 各サービスごとにMemcachedの起動が必要• Memcachedの運用(主に監視)が手間• 冗長構成が取りづらい• スケールがしづらい
  27. 27. Couchbase導入後• 各サービスごとにMemcachedの起動が必要
  28. 28. Couchbase導入後• 各サービスごとにMemcachedの起動が必要 ↓ Couchbaseのクラスタが1つさえあれば サービスごとにバケットを作るだけで良くなった。
  29. 29. Couchbase導入後• 各サービスごとにMemcachedの起動が必要• Memcachedの運用(主に監視)が手間
  30. 30. Couchbase導入後• 各サービスごとにMemcachedの起動が必要• Memcachedの運用(主に監視)が手間 ↓監視対象サーバーがCouchbaseサーバーだけ で良くなった。
  31. 31. Couchbase導入後• 各サービスごとにMemcachedの起動が必要• Memcachedの運用(主に監視)が手間• 冗長構成が取りづらい• スケールがしづらい
  32. 32. Couchbase導入後•各サービスごとにMemcachedの起動が必要•Memcachedの運用(主に監視)が手間•冗長構成が取りづらい•スケールがしづらい ↓Couchbaseが得意!
  33. 33. Couchbase環境• Membase1.7.1から利用開始• アップデートを繰り返し現在バージョン1.8.0を 利用中• 今後2.0にバージョンアップ予定
  34. 34. Couchbase環境 LVS LVSCouchbase Couchbase Couchbase Couchbase
  35. 35. Couchbase環境サーバー• Couchbase1.8.0• メモリ16GB• SSD*2(RAID0)計:8node
  36. 36. 運用していて困ったこと
  37. 37. Couchbase1.8.0→1.8.1 アップデートテストを行ったところ、 Rebalanceがフリーズするトラブル■couchbase-server-1.8.0r-1↓アップデート■couchbase-server-1.8.1-937
  38. 38. 1. クラスタから1台を外す。2. Rebalance3. クラスタから外した1台を/etc/init.d/couchbase- server stopでデーモン停止4. 1.8.0→1.8.1へアップデート5. WebUIからAdd server6. RebalanceRebalanceでプログレスバーが先に進まない状態になってし まった。「0.0.3% complete」のように途中で止まってしまった。
  39. 39. 1. クラスタに存在するバケットを全て削除2. バケットを再作成3. もう一度アップデートを実行Rebalanceはフリーズせず、アップデート作業が成功した。
  40. 40. Couchbase1.8.0のクラスタとCouchbase2.0の新クラスタを同時並行稼働中1バケットずつCouchbase2.0へ移行中
  41. 41. 運用していて分かったこと
  42. 42. Memcached Type? Couchbase Type?最初どちらを使えば良いか分からなかった。。。主にDBキャッシュ目的だったので、Memcached Typeでバケットを作っていた。
  43. 43. 最初はMemcached Typeを利用・キャッシュ目的(永続性不要)・これまでMemcachedを使っていた⇒よってMemcached Typeでバケットを作成・運用
  44. 44. Memcached Typeだと ネットワーク障害の時古いデータがgetされる場合があるのでは?という 疑問が。
  45. 45. サーバー名 ステータス 格納Key&Valueキャッシュサーバー1 稼働 -キャッシュサーバー2 稼働 -キャッシュサーバー3 稼働 -キャッシュサーバー4 稼働 -
  46. 46. • Memcached Typeのバケットに KeyとValueをsetします。 Key Value Key1 12345
  47. 47. Escape character is ^].set key1 0 3600 512345STOREDget key1VALUE key1 0 512345END
  48. 48. サーバー名 ステータス 格納Key&Valueキャッシュサーバー1 稼働 -キャッシュサーバー2 稼働 -キャッシュサーバー3 稼働 key1=12345キャッシュサーバー4 稼働 -
  49. 49. ネットワーク障害で キャッシュサーバー3がダウンサーバー名 ステータス 格納Key&Valueキャッシュサーバー1 稼働 -キャッシュサーバー2 稼働 -キャッシュサーバー3 ネットワークダウン key1=12345キャッシュサーバー4 稼働 -
  50. 50. key1の値は取れなくなった。Escape character is ^].get key1END
  51. 51. キャッシュサーバー3がダウンした状態で同じKey, 違うValueをset(上書き想定) Key Value Key1 abcde
  52. 52. Escape character is ^].set key1 0 3600 5abcdeSTOREDget key1VALUE key1 0 5abcdeEND
  53. 53. サーバー名 ステータス 格納Key&Valueキャッシュサーバー1 稼働 -キャッシュサーバー2 稼働 key1=abcdeキャッシュサーバー3 ネットワークダウン key1=12345キャッシュサーバー4 稼働 -
  54. 54. キャッシュサーバー3がネットワークダウンから復帰
  55. 55. サーバー名 ステータス 格納Key&Valueキャッシュサーバー1 稼働 -キャッシュサーバー2 稼働 key1=abcde 新しいvalueキャッシュサーバー3 稼働 key1=12345 古いvalueキャッシュサーバー4 稼働 -
  56. 56. Escape character is ^].get key1VALUE key1 0 512345END
  57. 57. • サーバー台数:4台 key1はキャッシュサーバー3に• サーバー台数:3台 key1はキャッシュサーバー2にネットワーク障害からサーバー台数が4台に戻ると、Value格納(担当)サーバーがキャッシュサーバー3に戻 る為、古いデータがgetされる。
  58. 58. Couchbase Typeの バケットだったら
  59. 59. ネットワーク障害で キャッシュサーバー3がダウンサーバー名 ステータス 格納Key&Valueキャッシュサーバー1 稼働 -キャッシュサーバー2 稼働 -キャッシュサーバー3 ネットワークダウン key1=12345キャッシュサーバー4 稼働 -
  60. 60. Couchbaseモードのバケットだと、Trying 10.0.0.1...Connected to 10.0.0.1Escape character is ^].get key1SERVER_ERROR proxy write to downstream 10.0.0.3set key1 0 3600 5abcdeSERVER_ERROR proxy write to downstream 10.0.0.3
  61. 61. setもgetも以下のようにエラーが返ってきました。エラーを返すことでデータの整合性が保たれるようになってい る。バケットはCouchbase Typeで作成したほうが良さそう?
  62. 62. バケット設定の比較
  63. 63. Bucket Type Replication Auto FailoverMemcached Type - ONCouchbase Type 0(disable) ONCouchbase Type 1~3 ON
  64. 64. ※あくまで個人的な所感です• Memcached Type先程のネットワーク障害時に整合性の問題が発生するかも?• Couchbase Type Replication 0(disable)Memcached Typeと似ているが、ネットワーク障害時Auto FailoverがONになっていたとしてもレプリカがないので、応答 が出来ない。Rebalance後応答可。• Couchbase Type Replication 1~3Auto FailoverがONになっていると、Failover後レプリカを持つ サーバーが代わりに応答を返す。
  65. 65. ※あくまで個人的な所感です• Memcached Type先程のネットワーク障害時に整合性の問題が発生するかも?• Couchbase Type Replication 0(disable)Memcached Typeと似ているが、ネットワーク障害時 Auto FailoverがONになっていたとしてもレプリカがない ので、応答が出来ない。Rebalance後応答可。• Couchbase Type Replication 1~3Auto FailoverがONになっていると、Failover後レプリカ を持つサーバーが代わりに応答を返す。今はMemcached Typeを利用していますが、今後はこの設定のバケットへ切り替えを考えています。今後もベストな設定を求めて検証を続けていきます。
  66. 66. 最後に
  67. 67. Couchbaseはまさに求めていた ソフトウェアです。これからも検証を行いつつ使い続けます。 Thank you!Couchbase
  68. 68. ご清聴ありがとうございました!

×