O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Próximos SlideShares
Gunosy Beer Bash #05 pairs
Gunosy Beer Bash #05 pairs
Carregando em…3
×
121 de 250

会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

115

Compartilhar

Baixar para ler offline

2015年2月7日 「dots. Summit 2015 - ドッツサミット -」でのセッション資料です。
http://eventdots.jp/eventreport/309318

会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

  1. 1. Copyright © 2009-2015 eureka, inc. All rights reserved. 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 Takuma Morikawa / Eureka, Inc.
  2. 2. Copyright © 2009-2015 eureka, inc. All rights reserved. 訂正 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤
  3. 3. Copyright © 2009-2015 eureka, inc. All rights reserved. 訂正 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ↓ + 1 0 0 , 0 0 0
  4. 4. Copyright © 2009-2015 eureka, inc. All rights reserved. 訂正 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ↓ + 1 0 0 , 0 0 0 会員数190万人のマッチングサービスpairsの 急成長を支える技術基盤
  5. 5. Copyright © 2009-2015 eureka, inc. All rights reserved. 1. エウレカについて 2. サービスのスケール∼pairs編∼ 3. そして伝説へ… もくじ
  6. 6. Copyright © 2009-2015 eureka, inc. All rights reserved. 1. エウレカについて 2. サービスのスケール∼pairs編∼ 3. そして伝説へ… もくじ
  7. 7. エウレカについて About eureka
  8. 8. Copyright © 2009-2015 eureka, inc. All rights reserved. で、あんた誰? ・pairsのサーバーサイド全般を担当 ・エウレカは2014年2月から ・お雑煮が好きです
  9. 9. pairsについて About pairs
  10. 10. F a c e b o o k の ソ ー シ ャ ル グ ラ フ を 活 用 し た O n l i n e D a t i n g サ ー ビ ス
  11. 11. 【pairsのシステム特性】 現在、月間10億PV・スクリーンビュー超 ・多対多のSNSなので、ユーザーの登録数に対して、指数関数的に 負荷が上がる ⇒  今日は余裕でも、明日はそうじゃないかも… ・ゲーム並のキャンペーン展開 => キャンペーンの種類によって負荷のアップダウンが激しい ・接点0からはじまるコミュニケーションを提供するサービスなの で、デリケートな配慮が必要 => 不具合はもちろんちょっとした仕様やUXの配慮の足りなさが、 クリティカルになる
  12. 12. Copyright © 2009-2015 eureka, inc. All rights reserved. 1. エウレカについて 2. サービスのスケール∼pairs編∼ 3. そして伝説へ… もくじ
  13. 13. サービスのスケール Scale of service
  14. 14. Copyright © 2009-2015 eureka, inc. All rights reserved. 私が入ってちょうど一年くらい経ちました。 (2014年2月∼)
  15. 15. Copyright © 2009-2015 eureka, inc. All rights reserved. 入った頃について、少し昔話をします。
  16. 16. Copyright © 2009-2015 eureka, inc. All rights reserved. あのころのわたし
  17. 17. Copyright © 2009-2015 eureka, inc. All rights reserved. あのころのわたし (半年間の FPS 出来事は長いので省略)
  18. 18. Copyright © 2009-2015 eureka, inc. All rights reserved. あのころのわたし年表 8月(PHPがイヤで)前の会社を退職 9月 無職を謳歌する 10月 無職を謳歌する 11月 現金資産が目減りを始める 12月 現金資産がそこをついてくる... 1月 give me chocolate
  19. 19. Copyright © 2009-2015 eureka, inc. All rights reserved. あのころのわたし年表 8月(PHPがイヤで)前の会社を退職 9月 無職を謳歌する 10月 無職を謳歌する 11月 現金資産が目減りを始める 12月 現金資産がそこをついてくる... 1月 give me chocolate 2月 わけあって、エウレカへJOIN! ←New!
  20. 20. Copyright © 2009-2015 eureka, inc. All rights reserved. pairsの事例を用いて、サービスの拡大と ともに、どのようにシステムをスケールし ていったか、ざっくりとお話します。 サービスのスケール
  21. 21. Copyright © 2009-2015 eureka, inc. All rights reserved. 4つのプチストーリー 1) はじめてのリリース編 2) リニューアル編 3) RDB使えますか編 4) FIFO or LIFO編
  22. 22. Copyright © 2009-2015 eureka, inc. All rights reserved. ∼ はじめてのリリース ∼ 第壱話
  23. 23. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース ʕº̫͡ºʔ(私=森川)        (ボス)ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  24. 24. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 入社日(2月) ʕº̫͡ºʔ< 「よろしくお願いいたします。」
  25. 25. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 入社日(2月) ʕº̫͡ºʔ< 「よろしくお願いいたします。」 「緊張しないでくださいね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「席はここです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  26. 26. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 入社日 ʕº̫͡ºʔ< o00(FPS以外のことをするのは久しぶりだな...)
  27. 27. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 入社日 ʕº̫͡ºʔ< o00(FPS以外のことをするのは久しぶりだな...) ʕº̫͡ºʔ< o00(キーボード無しで人と会話できるだろうか...)
  28. 28. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 入社日 「...というわけでこんな感じで修正お願いします」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  29. 29. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 入社日 「...というわけでこんな感じで修正お願いします」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< 「かしこまりました。」
  30. 30. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 入社日 ʕº̫͡ºʔ< o00(...)
  31. 31. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 入社日 ʕº̫͡ºʔ< o00(...) ʕº̫͡ºʔ< o00(またPHPか...)
  32. 32. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして ʕº̫͡ºʔ< (カタカタカタ..)
  33. 33. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして ʕº̫͡ºʔ< (カタカタカタ..) ʕº̫͡ºʔ< (git push [enter]  ターン!! ) ←打 音
  34. 34. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして ʕº̫͡ºʔ< (カタカタカタ..) ʕº̫͡ºʔ< (git push [enter]  ターン!! ) ʕº̫͡ºʔ< (しばしドヤ顔。) ←打 音
  35. 35. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして ʕº̫͡ºʔ< 「修正終わりました」
  36. 36. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして ʕº̫͡ºʔ< 「修正終わりました」 「お、ありがとう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  37. 37. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「では...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  38. 38. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「では...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「今からリリースしちゃいます」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  39. 39. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「では...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「今からリリースしちゃいます」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< o00(ええ!さすがC向けサービス。サイクルが早い..)
  40. 40. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  41. 41. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「一日の売上もX万円ありますから」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  42. 42. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「一日の売上もX万円ありますから」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「軽微なバグも影響が大きいんですよ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  43. 43. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「一日の売上もX万円ありますから」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「軽微なバグも影響が大きいんですよ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「新規の滞在時間低下は売上に影響ありますし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  44. 44. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「一日の売上もX万円ありますから」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「軽微なバグも影響が大きいんですよ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「新規の滞在時間低下は売上に影響ありますし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「既存のDAUが下がると...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  45. 45. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「一日の売上もX万円ありますから」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「軽微なバグも影響が大きいんですよ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「新規の滞在時間低下は売上に影響ありますし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「既存のDAUが下がると...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< o00(なんか、わからんけどすごい...)
  46. 46. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「森川さんにはリリースも担当してもらいたいので」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  47. 47. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「森川さんにはリリースも担当してもらいたいので」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「ちゃんと手順見てて下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  48. 48. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「森川さんにはリリースも担当してもらいたいので」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「ちゃんと手順見てて下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< o00(おお...緊張してきた...)
  49. 49. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「まあ、簡単なんで!」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  50. 50. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「まあ、簡単なんで!」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「まずWebサーバーに入ります...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  51. 51. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「まあ、簡単なんで!」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「まずWebサーバーに入ります...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ ssh srv-01」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  52. 52. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「まあ、簡単なんで!」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「まずWebサーバーに入ります...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ ssh srv-01」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< o00(メモメモ...✍)
  53. 53. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「そして公開ディレクトリに移動します」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  54. 54. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「そして公開ディレクトリに移動します」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ cd /path/to っと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  55. 55. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「そして公開ディレクトリに移動します」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ cd /path/to っと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ<「ふむふむ…」
  56. 56. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「そこでおもむろに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  57. 57. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「そこでおもむろに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ git pull」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  58. 58. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「そこでおもむろに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ git pull」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「ターン!(エンターキーを叩きつける)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  59. 59. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「そこでおもむろに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ git pull」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「ターン!(エンターキーを叩きつける)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< o00(えっ)
  60. 60. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「remote counting objects...」> bash 「create mode 100644 controller/user.php (100%)」> bash
  61. 61. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「remote counting objects...」> bash 「create mode 100644 controller/user.php (100%)」> bash ʕº̫͡ºʔ< o00(あ...)
  62. 62. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「さて...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  63. 63. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「さて...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「これで、リリースは終わりです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  64. 64. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「さて...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「これで、リリースは終わりです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ( ิ ω ิ ) o00(ぽかーん)
  65. 65. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「あっ! あとはapp.confを編集して...と」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  66. 66. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「あっ! あとはapp.confを編集して...と」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ vi app.conf」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  67. 67. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「あっ! あとはapp.confを編集して...と」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ vi app.conf」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ( ิ ω ิ )<「e?」
  68. 68. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「ここと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  69. 69. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「ここと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「この部分を書き換えて下さい。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  70. 70. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「ここと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「この部分を書き換えて下さい。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「ま、1,2行だけなんで」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  71. 71. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「ここと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「この部分を書き換えて下さい。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「ま、1,2行だけなんで」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ( ิ ω ิ )<「」
  72. 72. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「2台目も同様に行います」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  73. 73. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「2台目も同様に行います」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「git pull [enter](ターン)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  74. 74. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「書き換えを忘れないようにしないとですね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  75. 75. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「書き換えを忘れないようにしないとですね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ( ิ ω ิ )<「あ、あの」
  76. 76. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「なんですか?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  77. 77. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「なんですか?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ( ิ ω ิ )<「ロールバックはどうするんですか...?」
  78. 78. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  79. 79. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ (ちっ…git初心者かよ…)> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  80. 80. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ (ちっ…git初心者かよ…)> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ (gitさんのスゴサ、教えてやるか…)> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  81. 81. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「git checkout」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  82. 82. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「git checkout」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「あるじゃないですかぁ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  83. 83. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「git checkout」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「あるじゃないですかぁ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「git reset --hard HEAD^ でもいいですよ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  84. 84. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「ただし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  85. 85. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「ただし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「設定ファイルの書き換えは忘れないで下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  86. 86. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「ただし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「設定ファイルの書き換えは忘れないで下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ( ิ ω ิ )<「お、おう...」
  87. 87. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 正直
  88. 88. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ しんどい
  89. 89. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: pairs@2014-02 この時のpairsは…
  90. 90. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: pairs@2014-02 ■ pairsの登録者数 ・80万人 ■ pairsの売上 ・1週間の売上=年収のx倍くらい
  91. 91. Copyright © 2009-2015 eureka, inc. All rights reserved. 2014年2月頃の開発体制
  92. 92. Copyright © 2009-2015 eureka, inc. All rights reserved. 2014年2月頃の開発体制 一般的…?
  93. 93. Copyright © 2009-2015 eureka, inc. All rights reserved. ・AWSを使用したPHP x MySQL -  非VPCの全てフラットな構成 ・デプロイ -  $ git pull ・ロールバック -  $ git checkout 2014年2月頃のpairs
  94. 94. Copyright © 2009-2015 eureka, inc. All rights reserved. ・AWSを使用したPHP x MySQL -  非VPCの全てフラットな構成 ・デプロイ -  $ git pull ・ロールバック -  $ git checkout 2014年2月頃のpairs やっぱしんどい…
  95. 95. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「…」 はじめてのリリースを終えて…
  96. 96. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「…」 ʕº̫͡ºʔ<「また…」 はじめてのリリースを終えて…
  97. 97. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「…」 ʕº̫͡ºʔ<「また…」 ʕº̫͡ºʔ<「PHPか…」 はじめてのリリースを終えて…
  98. 98. Copyright © 2009-2015 eureka, inc. All rights reserved. ∼ はじめてのリリース ∼ 完 第壱話
  99. 99. Copyright © 2009-2015 eureka, inc. All rights reserved. ∼ リニューアル ∼ 第弐話
  100. 100. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル: 入社一ヶ月くらいのある日 「突然ですが」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  101. 101. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル: 入社一ヶ月くらいのある日 「突然ですが」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「諸事情により、UIを全部変えます」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  102. 102. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル: 入社一ヶ月くらいのある日 「突然ですが」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「諸事情により、UIを全部変えます」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「なのでPHP、JS、インフラ全てお願いします」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  103. 103. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル: 入社一ヶ月くらいのある日 「突然ですが」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「諸事情により、UIを全部変えます」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「なのでPHP、JS、インフラ全てお願いします」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< o00(クレイジー...)
  104. 104. Copyright © 2009-2015 eureka, inc. All rights reserved. 説明しよう! リニューアル
  105. 105. Copyright © 2009-2015 eureka, inc. All rights reserved. pairsのインフラとは リニューアル
  106. 106. Copyright © 2009-2015 eureka, inc. All rights reserved. AWSのコンポーネントを フル活用した リニューアル
  107. 107. Copyright © 2009-2015 eureka, inc. All rights reserved. こんな感じである! リニューアル
  108. 108. Copyright © 2009-2015 eureka, inc. All rights reserved. ■ Web(App)  ・EC2 2台 ■ データベース  ・RDS(MySQL)2台 ■ キャッシュ  ・ElastiCache(Memcache)2台 当時のpairsメインシステム(簡易版)
  109. 109. Copyright © 2009-2015 eureka, inc. All rights reserved. じゃん! リニューアル
  110. 110. Copyright © 2009-2015 eureka, inc. All rights reserved. あれ… リニューアル
  111. 111. Copyright © 2009-2015 eureka, inc. All rights reserved. なんだこれ... 全開放...? MPやん どこにログ保存してるんだ ユーザー管理したいんだけど スケーラビリティが...
  112. 112. Copyright © 2009-2015 eureka, inc. All rights reserved. なんだこれ... 全開放...? MPやん どこにログ保存してるんだ ユーザー管理したいんだけど スケーラビリティが... しんどい
  113. 113. Copyright © 2009-2015 eureka, inc. All rights reserved. でも リニューアル
  114. 114. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアルでは ダウンタイムが取れるので リニューアル
  115. 115. Copyright © 2009-2015 eureka, inc. All rights reserved. 1から作りなおしました リニューアル
  116. 116. Copyright © 2009-2015 eureka, inc. All rights reserved. システム構成図
  117. 117. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル前 (簡略版)
  118. 118. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  119. 119. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  120. 120. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  121. 121. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版) 堅牢なセキュリティ!
  122. 122. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版) 堅牢なセキュリティ! 詳細な権限設定!
  123. 123. Copyright © 2009-2015 eureka, inc. All rights reserved. VPC(AWS仮想プライベートクラウド) EC2-Classic VPC内 サブネット 共有 専用 アプリ間接続 インターネット経由 プライベート N/W設計 全開放 オンプレなみ セキュリティ SGのみ SG+Subnetごとの ACL&private NW
  124. 124. Copyright © 2009-2015 eureka, inc. All rights reserved. VPC化@pairs ・EC2-Classicな構成で稼働していた ・VPCに既存のサーバーは追加できない => VPCの中にECを新規で作成 ※ 最近は移行ツールができている模様…
  125. 125. Copyright © 2009-2015 eureka, inc. All rights reserved. VPC化@あたし ・はじめてのVPC(VPC歴 1日) ・AWS歴 20日くらい ・もちろん、かなりはまる - NetworkACLのレスポンスとか…
  126. 126. Copyright © 2009-2015 eureka, inc. All rights reserved. IAM(権限管理) ・アプリケーションに詳細なAWS権限を付与できる - VPCじゃなくても元々できるやつ ・サーバーに詳細なAWS権限を付与できる - ステージングか ら本番へのアクセス不可とか - 擬似本番はR e a d だけ 許可とか
  127. 127. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  128. 128. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版) 柔軟なログ収集!
  129. 129. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版) 柔軟なログ収集! そしてデータ可視化!
  130. 130. Copyright © 2009-2015 eureka, inc. All rights reserved. 導入の経緯 a) アプリケーションの高速化を行いたい - 担当者が応答速 度を集計するのが手間 - 集計結果もチェ ックしなければならない b) ログのロストを防ぎたい - 気軽に Web の作成・追加・削除を実行し たい - 証跡を残す(事件や犯罪のログになり得 る)
  131. 131. Copyright © 2009-2015 eureka, inc. All rights reserved. fluentdによるログ収集 ・いい感じにログ収集してくれます - 再送機能 - パフォーマンス - 豊富なプラグイン -> S3への保存も簡単 -> ElasticSearchへの送信も簡単
  132. 132. Copyright © 2009-2015 eureka, inc. All rights reserved. ElasticSearch ・全文検索エンジン ・luceneクエリ使える ・REST APIとJSONでいい感じに操作できる
  133. 133. Copyright © 2009-2015 eureka, inc. All rights reserved. kibana ・いい感じにグラフ化できるダッシュボード ・ElasticSearchを裏側で利用
  134. 134. Copyright © 2009-2015 eureka, inc. All rights reserved. 連携図
  135. 135. Copyright © 2009-2015 eureka, inc. All rights reserved. 導入の結果 a) アプリケーションの高速化を行いたい  => 応 答速度の可視化  => 正 社員以外にも集計が可能になった  => ト ータルで1 秒以上の改善を実行できた ʕº̫͡ºʔo00(アプリのテキストログの集計もしたい…)
  136. 136. Copyright © 2009-2015 eureka, inc. All rights reserved. ブログ記事 http://eure.jp/blog/fluentd_elasticsearch_kibana/ kibanaとElasticSearchによる可視化
  137. 137. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  138. 138. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  139. 139. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版) 内部から死活監視!
  140. 140. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版) 外部からパフォーマンス監視! 内部から死活監視!
  141. 141. Copyright © 2009-2015 eureka, inc. All rights reserved. 監視システム Zabbix ・様々なデータを監視できる -  分間アクセス数・ロック数・登録者数 ・しきい値を超えたらアラート -  メール・チャット・電話 etc... ・しきい値を超えたらアクション実行 -  Apache再起動・DBクエリ抽出
  142. 142. Copyright © 2009-2015 eureka, inc. All rights reserved. 監視システム NewRelic ・手軽 ・一般的なサーバーの監視 ・アプリケーションの監視 -  様々な言語に対応 -  応答速度の内訳を可視化できる ・DB/キャッシュ/アプリ/レンダリング -  アプリエラー率も補足可能
  143. 143. Copyright © 2009-2015 eureka, inc. All rights reserved. 監視システム NewRelic ・手軽 ・一般的なサーバーの監視 ・アプリケーションの監視 -  様々な言語に対応 -  応答速度の内訳を可視化できる ・DB/キャッシュ/アプリ/レンダリング -  アプリエラー率も補足可能
  144. 144. Copyright © 2009-2015 eureka, inc. All rights reserved. 監視システム NewRelic ・サーバー監視サービスのインストール => 4行 1.  rpm -Uvh http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm 2.  yum install newrelic-sysmond 3.  nrsysmond-config --set license_key=<ライセンスキー> 4.  /etc/init.d/newrelic-sysmond start
  145. 145. Copyright © 2009-2015 eureka, inc. All rights reserved. 監視システム NewRelic ・アプリ監視サービスのインストール => 4行 ※ PHPの実行を解析するため、性能が劣化します。 1.  yum install newrelic-php5 2.  newrelic-install install 3.  echo “newrelic.license=<ライセンスキー>” >> /etc/php.d/newrelic.ini 4.  /etc/init.d/httpd restart
  146. 146. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  147. 147. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  148. 148. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版) そして一貫したデプロイ!
  149. 149. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版) そして一貫したデプロイ! Forever Git Pull!
  150. 150. Copyright © 2009-2015 eureka, inc. All rights reserved. Capistranoによるデプロイ ・デプロイ&ロールバック! ・全て/特定 のサーバーに対して同一作業 ・意外に色々できます -  緊 急 メ ン テ 対 応 -  リ ア ル タ イ ム ロ グ 監 視 -  メ ー ル レ ポ ー テ ィ ン グ
  151. 151. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新機能リリース∼ 1) Capistranoでデプロイする
  152. 152. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新機能リリース∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(バグ混入)
  153. 153. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新機能リリース∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(バグ混入) 3) PHPのNoticeエラー上昇! 
  154. 154. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新機能リリース∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(バグ混入) 3) PHPのNoticeエラー上昇!  4) NewRelicからSlackへ通知
  155. 155. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新機能リリース∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(バグ混入) 3) PHPのNoticeエラー上昇!  4) NewRelicからSlackへ通知 5) (通知でiPhoneが振動する)
  156. 156. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新機能リリース∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(バグ混入) 3) PHPのNoticeエラー上昇!  4) NewRelicからSlackへ通知 5) (通知でiPhoneが振動する) 6) 起きる(むくり ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  157. 157. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新キャンペーン∼ 1) Capistranoでデプロイする
  158. 158. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新キャンペーン∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(負荷のかかるキャンペーン開始)
  159. 159. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新キャンペーン∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(負荷のかかるキャンペーン開始) 3) DBコネクション・ロック待ち上昇 
  160. 160. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新キャンペーン∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(負荷のかかるキャンペーン開始) 3) DBコネクション・ロック待ち上昇  4) NewRelicからSlackへ通知
  161. 161. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新キャンペーン∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(負荷のかかるキャンペーン開始) 3) DBコネクション・ロック待ち上昇  4) NewRelicからSlackへ通知 5) (通知でiPhoneが振動する)
  162. 162. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新キャンペーン∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(負荷のかかるキャンペーン開始) 3) DBコネクション・ロック待ち上昇  4) NewRelicからSlackへ通知 5) (通知でiPhoneが振動する) 6) 起きる(むくり ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  163. 163. Copyright © 2009-2015 eureka, inc. All rights reserved. Slack ・チャットツール ・美しさ × IRCの使いやすさ ・API操作
  164. 164. Copyright © 2009-2015 eureka, inc. All rights reserved. Slack 監視用チャンネル
  165. 165. Copyright © 2009-2015 eureka, inc. All rights reserved. Slack 監視用チャンネル
  166. 166. Copyright © 2009-2015 eureka, inc. All rights reserved. Slack 監視用チャンネル
  167. 167. Copyright © 2009-2015 eureka, inc. All rights reserved. 総評 ʕº̫͡ºʔ<「VPC化は早めにやってよかった」 ʕº̫͡ºʔ<「ログシステムは少し持て余し気味」 ʕº̫͡ºʔ<「NewRelic抜きでデプロイはもはや怖い」 ʕº̫͡ºʔ<「Capistranoはたまに失敗してかわいい」 ʕº̫͡ºʔ<「Slack便利」
  168. 168. Copyright © 2009-2015 eureka, inc. All rights reserved. ∼ リニューアル ∼ 完 第弐話
  169. 169. Copyright © 2009-2015 eureka, inc. All rights reserved. ∼ RDB使えますか∼ 第参話
  170. 170. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「UIリニューアルも終わり、一段落したね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  171. 171. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「UIリニューアルも終わり、一段落したね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「あとは私がバイオレンスな気分にならぬよう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  172. 172. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「UIリニューアルも終わり、一段落したね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「あとは私がバイオレンスな気分にならぬよう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「DBマスターの負荷を下げるだけですね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  173. 173. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「UIリニューアルも終わり、一段落したね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「あとは私がバイオレンスな気分にならぬよう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「DBマスターの負荷を下げるだけですね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ<「そ、そうですね...」
  174. 174. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「私の見立てでは”足あと機能”が怪しいです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  175. 175. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「私の見立てでは”足あと機能”が怪しいです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「台風が過ぎ去る前に"カタ"をつけてください」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  176. 176. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「私の見立てでは”足あと機能”が怪しいです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「台風が過ぎ去る前に"カタ"をつけてください」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「さもなくば私が"台風の目"となります」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  177. 177. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「私の見立てでは”足あと機能”が怪しいです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「台風が過ぎ去る前に"カタ"をつけてください」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「さもなくば私が"台風の目"となります」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ<「そ、そうですか...」
  178. 178. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「私の見立てでは”足あと機能”が怪しいです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「台風が過ぎ去る前に"カタ"をつけてください」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「さもなくば私が"台風の目"となります」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ<「そ、そうですか...」 ʕº̫͡ºʔo00( …)
  179. 179. Copyright © 2009-2015 eureka, inc. All rights reserved. 説明しよう! RDB使えますか
  180. 180. Copyright © 2009-2015 eureka, inc. All rights reserved. この時pairsは RDB使えますか
  181. 181. Copyright © 2009-2015 eureka, inc. All rights reserved. DBマスターの 負荷が問題で RDB使えますか
  182. 182. Copyright © 2009-2015 eureka, inc. All rights reserved. 非常に困っていた RDB使えますか
  183. 183. Copyright © 2009-2015 eureka, inc. All rights reserved. ・単一サーバ/テーブルに負荷がかかる設計 - 初期のDB設計のまま - シャーディングできず ・スレーブに検索クエリを移し終えていた ・マスターは限界までスケールアップ済み ・/(^o^)\ RDB使えますか
  184. 184. Copyright © 2009-2015 eureka, inc. All rights reserved. よろしい、ならば… 非RDBだ! RDB使えますか
  185. 185. Copyright © 2009-2015 eureka, inc. All rights reserved. 新たなデータストアを探して ・ファイルに保存 ・R e d i s ・MongoDB ・C a s s a n d r a (+ xxx万円給料上げて欲しい ) => p e r l製の掲示板の時代に逆戻り! => かわいい。でも今回は様々な要因で除外 => かわいい。でも運用面倒 => こわい。
  186. 186. Copyright © 2009-2015 eureka, inc. All rights reserved. そこで… RDB使えますか
  187. 187. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  188. 188. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  189. 189. Copyright © 2009-2015 eureka, inc. All rights reserved. DynamoDB RDB使えますか
  190. 190. Copyright © 2009-2015 eureka, inc. All rights reserved. ・簡単にスケールする書き込み負荷 ・運用の手間なし ・見た目はこわいけど根は優しい (・社内のカップルアプリCouplesでも利用事例あり) DynamoDB
  191. 191. Copyright © 2009-2015 eureka, inc. All rights reserved. ・ちょっとわかりづらい ・JOINするようなデータ集計は難しい ・厳密なトランザクションは難しい ・AWSから離れられなくなるリスク… DynamoDBのダークサイド
  192. 192. Copyright © 2009-2015 eureka, inc. All rights reserved. DynamoDBにした結果… RDB使えますか
  193. 193. Copyright © 2009-2015 eureka, inc. All rights reserved. DynamoDBにした結果… RDB使えますか 負荷85-95% 負荷75%以下に
  194. 194. Copyright © 2009-2015 eureka, inc. All rights reserved. ・足あと機能 ・行動ログ ・通知フラグ関連 DynamoDB化の例
  195. 195. Copyright © 2009-2015 eureka, inc. All rights reserved. メール・プッシュ管理 / お知らせ / つぶやき / ベストマッチ / 投稿フィルタ / キャンペーン管理 / 写真リクエスト DynamoDB化の予定
  196. 196. Copyright © 2009-2015 eureka, inc. All rights reserved. ・単一ユーザーで完結するデータ取得は向いている ・RDBのような集計クエリが使えない - リアルタイム集計はちょっとN Gプレイ - バッチ処理での解析はできる - ただしプログラムを書く必要あり DynamoDBをつかってみて
  197. 197. Copyright © 2009-2015 eureka, inc. All rights reserved. 「やはり”足あと機能”でしたね。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ DynamoDBをつかってみて
  198. 198. Copyright © 2009-2015 eureka, inc. All rights reserved. 「やはり”足あと機能”でしたね。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ<「はい。そう思ってました。」 DynamoDBをつかってみて
  199. 199. Copyright © 2009-2015 eureka, inc. All rights reserved. 「やはり”足あと機能”でしたね。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ<「はい。そう思ってました。」 ʕº̫͡ºʔo00(本当にそうだったとは…) DynamoDBをつかってみて
  200. 200. Copyright © 2009-2015 eureka, inc. All rights reserved. ∼ RDB使えますか∼ 完 第参話
  201. 201. Copyright © 2009-2015 eureka, inc. All rights reserved. ∼ FIFO or LIFO ∼ 第四話
  202. 202. Copyright © 2009-2015 eureka, inc. All rights reserved. 「Dynamoのついでに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ FIFO
  203. 203. Copyright © 2009-2015 eureka, inc. All rights reserved. 「Dynamoのついでに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「キュー化もしときましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ FIFO
  204. 204. Copyright © 2009-2015 eureka, inc. All rights reserved. 「Dynamoのついでに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「キュー化もしときましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< o00(ついで…?) FIFO
  205. 205. Copyright © 2009-2015 eureka, inc. All rights reserved. 「Dynamoのついでに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「キュー化もしときましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< o00(ついで…?) ʕº̫͡ºʔ< 「わかりました。何使ってもいいですか?」 FIFO
  206. 206. Copyright © 2009-2015 eureka, inc. All rights reserved. 「SQS使って下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ FIFO
  207. 207. Copyright © 2009-2015 eureka, inc. All rights reserved. 「SQS使って下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< 「直接SQSで大丈夫ですかね…?」 FIFO
  208. 208. Copyright © 2009-2015 eureka, inc. All rights reserved. 「SQSを」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ FIFO
  209. 209. Copyright © 2009-2015 eureka, inc. All rights reserved. 「SQSを」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「信じましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ FIFO
  210. 210. Copyright © 2009-2015 eureka, inc. All rights reserved. ・AWSのメッセージキューサービス ・MQサーバーの運用をしなくてよい ・要件によっては多少注意が必要 ・厳密なFIFOにはならない ・指定件数取りたい場合は要工夫 SQS
  211. 211. Copyright © 2009-2015 eureka, inc. All rights reserved. ・パフォーマンス / 耐障害性  - ローカルでキューイングした方が良いのでは?  - TCP接続のコストって大丈夫?  - SQSが落ちたらどうしよう SQSを考える
  212. 212. Copyright © 2009-2015 eureka, inc. All rights reserved. わたしは、 ボスSQSを信じました。 SQS
  213. 213. Copyright © 2009-2015 eureka, inc. All rights reserved. その結果… SQS
  214. 214. Copyright © 2009-2015 eureka, inc. All rights reserved. 余裕で捌きました 6万リクエスト / 1h SQS
  215. 215. Copyright © 2009-2015 eureka, inc. All rights reserved. ・半年以上落ちることもなく安定して動いています ・パフォーマンスも安定しており、スループット課 金ではないので、コストを気にしないでもOK ・最悪ロストしてよいデータだけ入れる SQS後
  216. 216. Copyright © 2009-2015 eureka, inc. All rights reserved. ∼ FIFO or LIFO ∼ 完 第四話
  217. 217. Copyright © 2009-2015 eureka, inc. All rights reserved. 1. エウレカについて 2. サービスのスケール∼pairs編∼ 3. そして伝説へ… もくじ
  218. 218. Copyright © 2009-2015 eureka, inc. All rights reserved. 「このコードは愛せない」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  219. 219. Copyright © 2009-2015 eureka, inc. All rights reserved. 「このコードは愛せない」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「このスキーマは愛せない」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  220. 220. Copyright © 2009-2015 eureka, inc. All rights reserved. 「このコードは愛せない」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「このスキーマは愛せない」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「愛が欲しい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  221. 221. Copyright © 2009-2015 eureka, inc. All rights reserved. 「時に、森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  222. 222. Copyright © 2009-2015 eureka, inc. All rights reserved. 「時に、森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ<「はい、なんでしょうか」 10月頃のある日
  223. 223. Copyright © 2009-2015 eureka, inc. All rights reserved. 「時に、森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ<「はい、なんでしょうか」 ʕº̫͡ºʔ< o00(やべーな、この人...) 10月頃のある日
  224. 224. Copyright © 2009-2015 eureka, inc. All rights reserved. 「問題です。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  225. 225. Copyright © 2009-2015 eureka, inc. All rights reserved. 「問題です。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「次のうち、もっとも愛くるしいのは」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  226. 226. Copyright © 2009-2015 eureka, inc. All rights reserved. 「問題です。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「次のうち、もっとも愛くるしいのは」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「どいつ?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  227. 227. Copyright © 2009-2015 eureka, inc. All rights reserved. 「Ruby」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  228. 228. Copyright © 2009-2015 eureka, inc. All rights reserved. 「Ruby」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「scala」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  229. 229. Copyright © 2009-2015 eureka, inc. All rights reserved. 「Ruby」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「scala」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「golang」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  230. 230. Copyright © 2009-2015 eureka, inc. All rights reserved. 「Ruby」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「scala」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「golang」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「erlang」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  231. 231. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「それはもちろん」 10月頃のある日
  232. 232. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「それはもちろん」 ʕº̫͡ºʔ<「日本人だったらやっぱり」 10月頃のある日
  233. 233. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「それはもちろん」 ʕº̫͡ºʔ<「日本人だったらやっぱり」 ʕº̫͡ºʔ<「JavaScriptですよね。」 10月頃のある日
  234. 234. Copyright © 2009-2015 eureka, inc. All rights reserved. 「(俺嫌いなんだよな...)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  235. 235. Copyright © 2009-2015 eureka, inc. All rights reserved. 「(俺嫌いなんだよな...)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  236. 236. Copyright © 2009-2015 eureka, inc. All rights reserved. 「(俺嫌いなんだよな...)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「未来を見ましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  237. 237. Copyright © 2009-2015 eureka, inc. All rights reserved. 「(俺嫌いなんだよな...)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「未来を見ましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「今はその時期じゃないでしょう...!」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  238. 238. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「確かに...」 10月頃のある日
  239. 239. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「確かに...」 ʕº̫͡ºʔ<「分かりました...」 10月頃のある日
  240. 240. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「確かに...」 ʕº̫͡ºʔ<「分かりました...」 ʕº̫͡ºʔ<「じゃあ⃝⃝で。」 10月頃のある日
  241. 241. え?俺?
  242. 242. 鋭意、開発中!!
  243. 243. To be continued…

×