Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
非同期ジョブと仲良くする
KOBA789
June 08, 2017
Technology
4
1.2k
非同期ジョブと仲良くする
Cookpad Tech Kitchen #8 〜舞台裏を支える黒衣たち〜
https://cookpad.connpass.com/event/57029/
で発表した資料です。
KOBA789
June 08, 2017
Tweet
Share
More Decks by KOBA789
See All by KOBA789
メガネとBluetooth Low Energyでお喋りする
koba789
0
970
Rustでon-diskなB+Treeを作ったときの細かな話
koba789
10
940
音の出るCPUを作っている途中
koba789
5
3.8k
自宅サーバーでbottlerocketを動かしてk8sクラスタを組む
koba789
0
880
へんなOSを自宅で使う
koba789
0
75
Keyboard Firmware in Rust
koba789
0
440
Rust本番投入をあきらめるためのガイドライン
koba789
3
6.3k
Rubyの会社でRustを書くということ
koba789
3
2.4k
Rustで正規表現エンジンっぽいのをアレした話
koba789
0
170
Other Decks in Technology
See All in Technology
msal.jsのあれこれ
takas0522
0
1.2k
New Features in C# 10/11
chack411
0
430
tfcon-2022-cpp
cpp
5
4.2k
インフラエンジニアBooks 30分でわかる「Dockerコンテナ開発・環境構築の基本」
cyberblack28
9
5.9k
一人から始めるプロダクトSRE / How to start SRE in a product team, all by yourself
vtryo
3
1.8k
Adopting Kafka for the #1 job site in the world
ymyzk
1
230
Okta Identity Engineってどうよ?
tatsumin39
0
270
ニフティでSRE推進活動を始めて取り組んできたこと
niftycorp
2
120
Accelerating ZOZOTOWN Modernization with Istio
yokawasa
0
210
様々な現場のPower Platform ~小さなエンジニアの奮闘記~
hyodol2513
0
1.6k
動画配信技術について
yaminoma
0
180
Babylon.js で簡単 WebXR
yuhara0928
1
270
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
181
15k
Build The Right Thing And Hit Your Dates
maggiecrowley
19
1.1k
What's new in Ruby 2.0
geeforr
336
30k
Fireside Chat
paigeccino
11
1.2k
Building a Scalable Design System with Sketch
lauravandoore
447
30k
Fashionably flexible responsive web design (full day workshop)
malarkey
396
62k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
314
19k
The Web Native Designer (August 2011)
paulrobertlloyd
74
1.9k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
349
27k
We Have a Design System, Now What?
morganepeng
35
2.9k
Three Pipe Problems
jasonvnalue
89
8.6k
How GitHub (no longer) Works
holman
296
140k
Transcript
非同期ジョブと 仲良くする KOBA789 (Hidekazu Kobayashi) at Cookpad
KOBA789 インフラ部データ基盤グループ 2017新卒(大学やめて高卒) Node.jsの本を書いた思い出 分野を横断した仕事が好き
Q. ジョブキュー・ワーカー 何使ってますか
大正義 共有 FileSystem コード Web マスター ワーカー Sidekiqさん
Sidekiqさん 大正義 FileSystem コード Web Master Worker よさそうじゃん?
突然の
FileSystem コード Web マスター ワーカー FileSystem コード コンテナ 分けるならこう アプリケーション
ジョブキュー・ワーカー
コンテナ 分けるならこう アプリ キュー・ ワーカー
では増やしてみましょう
アプリ キュー・ ワーカー
アプリ 増やすならこう キュー・ ワーカー アプリ アプリ アプリ アプリ
キュー・ワーカーも 増やすならこう キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー
アプリ アプリ アプリ アプリ
キュー・ワーカーも 増やすならこう キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー
アプリ アプリ アプリ アプリ ちょっとまって
キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー アプリ アプリ
アプリ アプリ スケール できなくない? Redis Clusterの 面倒を見たいか?
アプリ アプリ アプリ アプリ キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー
キュー・ ワーカー マスター ワーカー FileSystem コード マスターがたくさん いるのは無駄では
アプリ アプリ アプリ アプリ キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー
キュー・ ワーカー 必要な分だけ 起動してほしいのでは
キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー キュー・ ワーカー アプリを変更したらキュー・ワーカーも イメージをリビルドしないといけない
アプリ アプリ アプリ アプリ
ということで
We introduce Barbeque
Barbeque Barbeque Hako ざっくり言うと Dockerコンテナの 管理ツール
アプリ Barbeque Barbeque アプリ Hako
アプリ Barbeque Barbeque アプリ Hako
アプリ Barbeque Barbeque アプリ Hako
アプリ Barbeque Barbeque アプリ Hako
アプリ Barbeque Barbeque アプリ ワーカー Hako
アプリ Barbeque Barbeque アプリ Hako ワーカー
アプリ Barbeque Barbeque アプリ ワーカー Hako
アプリ Barbeque Barbeque アプリ ワーカー Hako ワーカー
アプリ アプリ Hako ワーカー ワーカー Barbeque Barbeque マスターとワーカーは 別々に増やせる 必要な分だけ
起動している
アプリ Barbeque Barbeque アプリ ワーカー Hako ワーカー 運用はAWSにおまかせ スケールもしてくれる
Barbeque Barbeque Hako アプリ アプリ ワーカー ワーカー これらのコンテナは 同じイメージから起動している 起動時のコマンドライン引数が違うだけ
unicorn vs. rake barbeque:execute
アプリ Barbeque Barbeque アプリ Hako ワーカー ワーカー デプロイも楽になって 最高ですね?
Railsでの使い方
HFNCBSCFRVF@DMJFOU Gemfile
#BSCFRVF$MJFOUDPOGJHVSFEP]DPOGJH] DPOGJHBQQMJDBUJPOBXFTPNF@BQQ DPOGJHEFGBVMU@RVFVFEFGBVMU DPOGJHFOEQPJOUIUUQTCBSCFRVFFYBNQMFDPN FOE config/initializers/barbeque.rb
DMBTT4PNF+PC"QQMJDBUJPO+PC EFGQFSGPSN QBSBN QBSBN EPTPNFUIJOHBXFTPNF SFRVJSFTBMPOHUJNF FOE FOE app/jobs/some_job.rb
4PNF+PCQFSGPSN@MBUFS QBSBN QBSBN 適当なところで
ActiveJob準拠で 大変便利
その他の機能 • ローカルでのジョブ実行(開発用) • AWS SNS契機でのジョブ実行 • べんりなWeb UI
None
None
None
そろそろみなさん 使いたくなってきた
https://github.com/cookpad/barbeque
Hakoが あるからこそできる
Hakoの利点を 最大限に活用している
非同期ジョブ基盤は 単体ではない
Cookpadの 非同期ジョブ基盤は インフラに統合されている