by shigemk2

当面は技術的なことしか書かない

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

  • sidekiq
    • web マスター ワーカー コード(共有ファイルシステム)
    • https://github.com/mperham/sidekiq
    • docker
      • アプリ キュー/ワーカー
      • docker増やせばはこいつらは増やせる
      • 増やせば増やすほどredis clusterの面倒をみないといけない
    • ワーカーとマスターの数は別々でいてほしい
    • キューワーカー
    • アプリを変更したらキューワーカーもイメージをリビルドしないといけない
  • 新しいジョブキューシステムとしてのbarbeque
    • https://github.com/cookpad/barbeque
    • アプリがジョブを起動して、barbequeがhakoにワーカーを増やすよう命令する
    • マスターとワーカーは別々に増やせる
    • コンテナは同じイメージから起動している
    • 起動時のコマンドライン引数が違うだけ
    • dockerfileも1枚だけでデプロイも楽になる
  • gem 'barbeque-client'
    • activejob準拠
    • rails向けのgem
  • ローカルでのジョブ実行
  • SNS契機でのジョブ実装
  • UI
  • ジョブの実行履歴/メトリクス

  • Hakoがないと困る

  • Hakoをフル活用した非同期ジョブ基盤

    • 柔軟なジョブの起動ができる
    • 単体だけでは動かない
  • 仲良くすること

  • インフラに統合されている
    • 実行環境が別ホストになっていたりすると運用コストがめんどい