Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

突然の

Slide 7

Slide 7 text

FileSystem コード Web マスター ワーカー FileSystem コード コンテナ
 分けるならこう アプリケーション ジョブキュー・ワーカー

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

では増やしてみましょう

Slide 10

Slide 10 text

アプリ キュー・ ワーカー

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

キュー・ワーカーも 増やすならこう キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー アプリ アプリ アプリ アプリ ちょっとまって

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

アプリ アプリ アプリ アプリ キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー 必要な分だけ
 起動してほしいのでは

Slide 17

Slide 17 text

キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー アプリを変更したらキュー・ワーカーも
 イメージをリビルドしないといけない アプリ アプリ アプリ アプリ

Slide 18

Slide 18 text

ということで

Slide 19

Slide 19 text

We introduce Barbeque

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

アプリ Barbeque Barbeque アプリ Hako

Slide 22

Slide 22 text

アプリ Barbeque Barbeque アプリ Hako

Slide 23

Slide 23 text

アプリ Barbeque Barbeque アプリ Hako

Slide 24

Slide 24 text

アプリ Barbeque Barbeque アプリ Hako

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

アプリ アプリ Hako ワーカー ワーカー Barbeque Barbeque マスターとワーカーは
 別々に増やせる 必要な分だけ
 起動している

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

アプリ Barbeque Barbeque アプリ Hako ワーカー ワーカー デプロイも楽になって
 最高ですね?

Slide 33

Slide 33 text

Railsでの使い方

Slide 34

Slide 34 text

HFNCBSCFRVF@DMJFOU Gemfile

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

ActiveJob準拠で
 大変便利

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

そろそろみなさん 使いたくなってきた

Slide 44

Slide 44 text

https://github.com/cookpad/barbeque

Slide 45

Slide 45 text

Hakoが
 あるからこそできる

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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