Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jenkins Day Japan 2022 - モンスターストライクとJenkins

Jenkins Day Japan 2022 - モンスターストライクとJenkins

本資料は、2022年11月に開催された『Jenkins Day Japan 2022』における「モンスターストライクとJenkins」の講演資料です。

MIXI ENGINEERS

December 06, 2022
Tweet

More Decks by MIXI ENGINEERS

Other Decks in Technology

Transcript

  1. Jenkins はサーバーチームのメンバー以外も使っている マスターデータのインポート(実行は Slack Bot から) マスターデータの静的解析(GitHub Webhook から) マスターデータの翻訳(海外版)

    しかし Web UIからできる設定を、サーバーメンバー以外にはやってほしくない 課題:Jenkins の細かいアクセス制御をしたい 18
  2. 1. 独自 apt パッケージのPRがマージされるのを Slack Bot が検知 2. ビルドのジョブが終わるのを Jenkins

    の Web API を定期的に呼んで待つ 3. ビルドが終わったら Slack に通知し Add Reaction を待つ 4. Add Reaction されたらリリースのジョブを Jenkins の Web API から実行 解決:Slack Bot でジョブの終了を待つ 23
  3. Amber という OSS を利用する リポジトリには Amber で生成した公開鍵と暗号化した秘匿情報を保存 Jenkins には Amber

    で生成した秘密鍵だけを保存 リポジトリと秘密鍵が揃う場合(ジョブ)でだけ、元の秘匿情報を利用できる 解決:Amber の導入 https://github.com/fpco/amber 25
  4. モンストサーバーチームでは Jenkins を自前運用して利用している テストの実行やデータインポート、IaC の適用などで利用している コントローラーは GKE 上で動作させて、Helm を使って構成管理 エージェントは

    GCE 上で動作させて、Packer と Ansible を使って構成管理 生じた課題は主に、自作ツールやOSSを利用して Jenkins の外から解決している ジョブが時期によって滞留するので、エージェントのオートスケーラーを自作 細かいアクセス制御をするために自作ゼロトラストプロキシを利用 Slack から Manual Approval をするために Slack Bot を自作 リポジトリ毎に秘匿情報を管理するために Amber という OSS を導入 まとめ 26