非同期ジョブと仲良くする

 非同期ジョブと仲良くする

Cookpad Tech Kitchen #8 〜舞台裏を支える黒衣たち〜
https://cookpad.connpass.com/event/57029/
で発表した資料です。

Bcbc80799bc32840662a366768318a9b?s=128

Kobayashi

June 08, 2017
Tweet

Transcript

  1. 非同期ジョブと
 仲良くする KOBA789 (Hidekazu Kobayashi) at Cookpad

  2. KOBA789 インフラ部データ基盤グループ 2017新卒(大学やめて高卒) Node.jsの本を書いた思い出 分野を横断した仕事が好き

  3. Q. ジョブキュー・ワーカー
 何使ってますか

  4. 大正義 共有 FileSystem コード Web マスター ワーカー Sidekiqさん

  5. Sidekiqさん 大正義 FileSystem コード Web Master Worker よさそうじゃん?

  6. 突然の

  7. FileSystem コード Web マスター ワーカー FileSystem コード コンテナ
 分けるならこう アプリケーション

    ジョブキュー・ワーカー
  8. コンテナ
 分けるならこう アプリ キュー・ ワーカー

  9. では増やしてみましょう

  10. アプリ キュー・ ワーカー

  11. アプリ
 増やすならこう キュー・ ワーカー アプリ アプリ アプリ アプリ

  12. キュー・ワーカーも
 増やすならこう キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー

    アプリ アプリ アプリ アプリ
  13. キュー・ワーカーも 増やすならこう キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー

    アプリ アプリ アプリ アプリ ちょっとまって
  14. キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー アプリ アプリ

    アプリ アプリ スケール
 できなくない? Redis Clusterの
 面倒を見たいか?
  15. アプリ アプリ アプリ アプリ キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー

    キュー・ ワーカー マスター ワーカー FileSystem コード マスターがたくさん
 いるのは無駄では
  16. アプリ アプリ アプリ アプリ キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー

    キュー・ ワーカー 必要な分だけ
 起動してほしいのでは
  17. キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー アプリを変更したらキュー・ワーカーも
 イメージをリビルドしないといけない

    アプリ アプリ アプリ アプリ
  18. ということで

  19. We introduce Barbeque

  20. Barbeque Barbeque Hako ざっくり言うと Dockerコンテナの
 管理ツール

  21. アプリ Barbeque Barbeque アプリ Hako

  22. アプリ Barbeque Barbeque アプリ Hako

  23. アプリ Barbeque Barbeque アプリ Hako

  24. アプリ Barbeque Barbeque アプリ Hako

  25. アプリ Barbeque Barbeque アプリ ワーカー Hako

  26. アプリ Barbeque Barbeque アプリ Hako ワーカー

  27. アプリ Barbeque Barbeque アプリ ワーカー Hako

  28. アプリ Barbeque Barbeque アプリ ワーカー Hako ワーカー

  29. アプリ アプリ Hako ワーカー ワーカー Barbeque Barbeque マスターとワーカーは
 別々に増やせる 必要な分だけ


    起動している
  30. アプリ Barbeque Barbeque アプリ ワーカー Hako ワーカー 運用はAWSにおまかせ
 スケールもしてくれる

  31. Barbeque Barbeque Hako アプリ アプリ ワーカー ワーカー これらのコンテナは
 同じイメージから起動している 起動時のコマンドライン引数が違うだけ


    unicorn vs. rake barbeque:execute
  32. アプリ Barbeque Barbeque アプリ Hako ワーカー ワーカー デプロイも楽になって
 最高ですね?

  33. Railsでの使い方

  34. HFNCBSCFRVF@DMJFOU Gemfile

  35. #BSCFRVF$MJFOUDPOGJHVSFEP]DPOGJH] DPOGJHBQQMJDBUJPOBXFTPNF@BQQ DPOGJHEFGBVMU@RVFVFEFGBVMU DPOGJHFOEQPJOUIUUQTCBSCFRVFFYBNQMFDPN FOE config/initializers/barbeque.rb

  36. DMBTT4PNF+PC"QQMJDBUJPO+PC EFGQFSGPSN QBSBN QBSBN  EPTPNFUIJOHBXFTPNF SFRVJSFTBMPOHUJNF FOE FOE app/jobs/some_job.rb

  37. 4PNF+PCQFSGPSN@MBUFS QBSBN QBSBN 適当なところで

  38. ActiveJob準拠で
 大変便利

  39. その他の機能 • ローカルでのジョブ実行(開発用) • AWS SNS契機でのジョブ実行 • べんりなWeb UI

  40. None
  41. None
  42. None
  43. そろそろみなさん 使いたくなってきた

  44. https://github.com/cookpad/barbeque

  45. Hakoが
 あるからこそできる

  46. Hakoの利点を
 最大限に活用している

  47. 非同期ジョブ基盤は
 単体ではない

  48. Cookpadの
 非同期ジョブ基盤は
 インフラに統合されている