Cookpad Tech Kitchen #8 〜舞台裏を支える黒衣たち〜 https://cookpad.connpass.com/event/57029/ で発表した資料です。
非同期ジョブと 仲良くするKOBA789(Hidekazu Kobayashi)at Cookpad
View Slide
KOBA789インフラ部データ基盤グループ2017新卒(大学やめて高卒)Node.jsの本を書いた思い出分野を横断した仕事が好き
Q. ジョブキュー・ワーカー 何使ってますか
大正義 共有 FileSystemコードWeb マスター ワーカーSidekiqさん
Sidekiqさん大正義 FileSystemコードWeb Master Workerよさそうじゃん?
突然の
FileSystemコードWeb マスター ワーカーFileSystemコードコンテナ 分けるならこうアプリケーション ジョブキュー・ワーカー
コンテナ 分けるならこうアプリキュー・ワーカー
では増やしてみましょう
アプリキュー・ワーカー
アプリ 増やすならこうキュー・ワーカーアプリアプリアプリアプリ
キュー・ワーカーも 増やすならこうキュー・ワーカーキュー・ワーカーキュー・ワーカーキュー・ワーカーアプリアプリアプリアプリ
キュー・ワーカーも増やすならこうキュー・ワーカーキュー・ワーカーキュー・ワーカーキュー・ワーカーアプリアプリアプリアプリちょっとまって
キュー・ワーカーキュー・ワーカーキュー・ワーカーキュー・ワーカーアプリアプリアプリアプリスケール できなくない?Redis Clusterの 面倒を見たいか?
アプリアプリアプリアプリキュー・ワーカーキュー・ワーカーキュー・ワーカーキュー・ワーカーマスター ワーカーFileSystemコードマスターがたくさん いるのは無駄では
アプリアプリアプリアプリキュー・ワーカーキュー・ワーカーキュー・ワーカーキュー・ワーカー必要な分だけ 起動してほしいのでは
キュー・ワーカーキュー・ワーカーキュー・ワーカーキュー・ワーカーアプリを変更したらキュー・ワーカーも イメージをリビルドしないといけないアプリアプリアプリアプリ
ということで
We introduceBarbeque
BarbequeBarbequeHakoざっくり言うとDockerコンテナの 管理ツール
アプリBarbequeBarbequeアプリHako
アプリBarbequeBarbequeアプリ ワーカーHako
アプリBarbequeBarbequeアプリHakoワーカー
アプリBarbequeBarbequeアプリ ワーカーHakoワーカー
アプリアプリHakoワーカーワーカーBarbequeBarbequeマスターとワーカーは 別々に増やせる必要な分だけ 起動している
アプリBarbequeBarbequeアプリ ワーカーHakoワーカー運用はAWSにおまかせ スケールもしてくれる
BarbequeBarbequeHakoアプリアプリ ワーカーワーカーこれらのコンテナは 同じイメージから起動している起動時のコマンドライン引数が違うだけ unicorn vs. rake barbeque:execute
アプリBarbequeBarbequeアプリHakoワーカーワーカーデプロイも楽になって 最高ですね?
Railsでの使い方
[email protected]Gemfile
#BSCFRVF$MJFOUDPOGJHVSFEP]DPOGJH][email protected][email protected]DPOGJHFOEQPJOUIUUQTCBSCFRVFFYBNQMFDPNFOEconfig/initializers/barbeque.rb
DMBTT4PNF+PC"QQMJDBUJPO+PCEFGQFSGPSN QBSBN QBSBNEPTPNFUIJOHBXFTPNFSFRVJSFTBMPOHUJNFFOEFOEapp/jobs/some_job.rb
[email protected] QBSBN QBSBN適当なところで
ActiveJob準拠で 大変便利
その他の機能• ローカルでのジョブ実行(開発用)• AWS SNS契機でのジョブ実行• べんりなWeb UI
そろそろみなさん使いたくなってきた
https://github.com/cookpad/barbeque
Hakoが あるからこそできる
Hakoの利点を 最大限に活用している
非同期ジョブ基盤は 単体ではない
Cookpadの 非同期ジョブ基盤は インフラに統合されている