ビルドストームを切り抜ける


著者: Samantha Frost

ビルドストームとは

終わりのない嵐――ビルドストーム――の世界へようこそ。 Jenkins® を使ったことがあれば、おそらくこの現象にはおなじみでしょう。ビルドストームとは、マルチブランチパイプラインまたは組織フォルダーにて、ブランチ、プルリクエスト、タグに対応する非常に多くのパイプラインが作成されている間にコントローラーを襲う、嵐のような現象です。作成されたパイプラインのビルドがいっせいにスケジュールされるため、 Jenkins インスタンスに過大な負荷がかかります。このように Jenkins に負荷が殺到することがビルドストームです。

ビルドストームが発生する典型的な状況

ビルドストームは次のような場合によく発生します。

  • 新しい環境を準備したとき
  • コントローラーを再作成したとき
  • コントローラーに新しいチームリポジトリを参加させたとき
  • ブランチ検出条件を更新したとき
  • 検出するマーカーファイルを変更したとき

この問題は、多数のブランチがある大規模なリポジトリを持つチームで特に問題になります。 規模が大きくなれば問題も大きくなり、頻繁にコードからコントローラーを提供する大組織に困難な課題をもたらします。

より適したビルド戦略を採用する

そんなときは CloudBees Continuous Integration (CloudBees CI) を導入してください。 CloudBees CI はビルドストームの中の灯台となり、ビルドを開始せずにリポジトリのベースラインを確立することでビルドストームを防ぐというビルド戦略を提供します。このビルド戦略により、リポジトリの調査を行って、その後通常どおりビルドをトリガーすることができます。

ビルドストームの問題を解決するこのプラグインは、 CloudBees Build Strategies という簡潔にして覚えやすい名称です。ビルド戦略プラグインを導入すると、 ‘initial index build prevention’ というビルド戦略が追加されます。これは何をするのでしょう?スキャンの動作を変更します。つまり、リポジトリをスキャンして、見つかったブランチ、プルリクエスト、タグに対応するパイプラインを作成しますが、作成されたパイプラインのビルドはしません。対応するブランチ、プルリクエスト、タグに SCM のイベントが発生するまで、パイプラインは非アクティブ状態のままです。

Jenkins または CloudBees CI の管理者を対象としたこの新しいビルド戦略を使用すると、管理者はマルチブランチプロジェクトまたは組織フォルダーを設定するとき、プロジェクトの作成後に Jenkins が自動的にビルドを実行するのを防ぐことができます。その後、 SCM イベントまたは手動でトリガーした場合にだけ、初回のジョブがビルドされます。

企業がビルドストームを切り抜けられるよう、 CloudBees CI はビルドストーム問題に対する実用的なソリューションを提供します。 ‘initial index build prevention’ 戦略によってビルドの荒波にも落ち着いて制御を維持し、効率的にビルドを管理してコントローラーの立ち往生を防ぐことができます。さあ、 Jenkins 管理者のみなさん、嵐に備えましょう。 CloudBees CI があれば、どんなビルドストームが来ようと切り抜けることができます。

詳細はこちらをご覧ください: Creating Multibranch Projects and Organization Folders with large repositories

(この記事は、CloudBees社 Blog 「Weathering Build Storms in the Enterprise」2023年9月14日の翻訳です。)