Buildkiteエージェント:制御されたCIパイプラインのための自己ホスト型ランナー
Buildkiteエージェントは、Buildkite Pty. Ltd.によって開発された軽量のオープンソースビルドランナーで、管理するインフラストラクチャ上で継続的インテグレーションジョブを実行します。中央集権的なWebダッシュボードからパイプラインステップを受け取り、ローカルマシンまたはコンテナ上でそれらのステップを実行し、ダッシュボードにログとアーティファクトを返します。このエージェントはクロスプラットフォーム実行とフックおよびメタデータを通じた拡張性をサポートしており、プライベートサーバー上で安全で監査可能なCIを必要とする開発者やDevOpsチームに適しています。
エージェントがオーケストレーションを実行から分離する方法
エージェントはハイブリッドCIモデルを実装しています:ホストされたコントロールプレーンが作業をスケジュールし、実行はあなたのホスト上で行われます。この設計は、パイプラインオーケストレーションがクラウドホストされていることを意味し、ビルドコマンド、シークレット処理、およびアーティファクトストレージはあなたのネットワーク内に留まるため、環境と機密データに対する制御が保持されます。ソースとシークレットをオンプレミスに保つ必要があるチームは、この業務の分割から利益を得ます。
ホスト上での同時ワークロードに対する動作
ビルド実行は、複数のエージェントインスタンスまたは1台のマシンでの同時ジョブを実行することによってスケールします;製品ドキュメントは、リソースが十分であれば単一のホスト上で複数のエージェントを実行できることに言及しています。この機能は、並列ジョブ実行を通じてパイプラインを加速しますが、同時にCPU、メモリ、およびディスクI/Oの要求をあなたのインフラストラクチャにシフトさせるため、重いワークロードに対してはキャパシティプランニングが必要です。
制限されたネットワークでの実行はどれほど安全か
エージェントはサービスAPIと通信し、ステータスを報告するためにアウトバウンドHTTPS接続を必要とし、インバウンドファイアウォールの開放は必要ありません。コードはオープンソースであり、エージェントはログとジョブステータスのみを送信するため、セキュリティに配慮したチームはソースを監査し、ホストされたダッシュボードを使用してパイプラインを管理しながら、自分たちの側でシークレットを保持できます。
操作するために必要な技術スキルのレベル
エージェントのインストールと運用にはシステム管理スキルが期待されます:WindowsインストールはMSI、PowerShellスクリプト、または手動バイナリを提供し、Docker環境用のコンテナ化されたデプロイメントも利用可能です。動作の拡張にはカスタムフックとメタデータが使用され、これにはスクリプト知識が必要です。大規模なランナーのフリートを運営する組織は、エージェントプロセスの構成管理と監視を計画する必要があります。
エージェントを運営すべき人と実用的な推奨事項
エージェントは、制御するインフラストラクチャ上でCI実行が必要なエンジニアリングチームや、リソースとスクリプトの専門知識を割り当てることができる運用グループにとって実用的な選択肢です。広範な展開の前にホストのキャパシティプランニングと構成管理を行うことを許可してください。推奨します。
高評価
- ハイブリッドモデルはプライベートインフラストラクチャ上でビルド実行を維持します
- オープンソースコードはコミュニティの監査と検査を可能にします
- ホストごとに複数のエージェントを実行して並列ジョブ処理を行うことができます
- コンテナ化されたビルド環境のネイティブサポート
低評価
- アウトバウンドHTTPSが必要なので、オフライン操作はできません。
- 同時ジョブが増えるとホストリソースの使用量が増加します
- 初期設定にはシステム管理とスクリプト作成のスキルが必要です
- オーケストレーションは完全にローカルではなく、クラウドホストされています。