CI/CDツールを比較するときは、使える機能の数より、既存の開発環境で必要な工程を動かし、保守できるかを確認しましょう。ソースコードの置き場所、実行するOS、社内ネットワークへの接続、本番へ操作できる権限が判断材料になります。
この記事では製品ランキングや価格表ではなく、候補の違いを同じ条件で確認する方法を整理します。個別製品の料金・プランは変わるため、実際の選定時の契約条件と対応づけてください。
制御する仕組みと実行する場所を分ける
パイプラインを管理するサービスと、実際にビルドやテストを実行するrunnerなどの環境を分けて考えます。同じサービスを使っていても、提供された実行環境を使う場合と、自社が用意した環境を使う場合では管理範囲が異なります。
たとえばGitHubのself-hosted runnerは、利用者が配備・管理する実行環境です。ハードウェアやOS、ソフトウェア構成の自由度がある一方、OSや他のソフトウェアを更新する責任も利用者側にあります。GitHub「Self-hosted runners」
「自社環境を使える」ことを利点だけで評価せず、誰が更新と復旧を担当するかまで比較項目へ入れます。
自社運用で引き受ける作業を比較する
次の表を候補ごとに埋めます。機能の有無だけでなく、設定・保守の担当と根拠資料を残す方法です。
| 比較項目 | 確認する内容 |
|---|---|
| 実行環境 | OS、CPU構成、必要ソフト、同時実行数 |
| 接続 | 外部・社内への通信、利用できない接続先 |
| 保守 | OS更新、runner更新、障害時の代替 |
| 分離 | 実行ごとの初期化、作業ファイルの残存 |
| 成果物 | 保存期間、容量、取得と移行の方法 |
| 記録 | 失敗箇所、実行者、採用した版の確認方法 |
GitHubの公式説明では、self-hosted runnerは実行のたびにクリーンな環境である必要はないとされています。これは前回の作業ファイルが必ず残るという断定ではなく、初期化の方法を自社で確認する必要があるという判断材料です。
承認と権限を実際の条件で確認する
本番へ進む前の承認、操作できるブランチ、秘密情報を渡すタイミングを確認します。試験用の処理と本番操作が同じ権限を持つ必要があるかも整理してください。
GitHub environmentの例では、保護ルール、承認、デプロイできるブランチなどの条件があります。ただし、利用できる保護機能はプランや公開・非公開の区分で異なります。GitHub「Managing environments for deployment」
比較表には「承認機能あり」だけでなく、自社が利用する契約で使えるか、承認前に何が実行されるかを記入します。他製品を比較する際も、同じ問いをその製品の公式資料と試行結果で確認します。
同じ小さな工程で試行する
架空の検討例として、同じコードを取得し、ビルドし、テスト結果と配布物を保存する工程を各候補で試します。成功時だけでなく、テスト失敗や接続不可のときに、担当者が原因を追えるかも確認します。
| 試行で記録するもの | 読み方 |
|---|---|
| 待ち時間と実行時間 | 混雑や初期化と処理自体を分ける |
| 設定作業 | 初回だけか変更のたびに必要かを分ける |
| 失敗の調査 | ログで特定できたことと追加作業を残す |
| 保守の担当 | 個人だけが理解する作業を明確にする |
これは試行方法の提案で、当社が実施した性能比較ではありません。実行したことのない候補を、速度や使いやすさの点数で埋めないでください。
価格と移行の負担を最後に合わせる
費用は、利用者数、実行量、保存量、必要なプランなど、確認できた課金単位に分けます。自社runnerを使うなら、機器・クラウドの費用と保守時間も別に整理します。「ツールの利用料」と「運用全体の費用」を混同しません。
現在の定義や成果物を別の基盤へ移す場合の作業も確認します。専用の記法や外部連携をどこまで使うかで、移行時に見直す範囲は変わります。
必要な工程を先に整理したい場合はCI/CDパイプラインの設計へ戻り、比較結果は設計判断を残すADRに採用理由と残る条件をまとめると、後から見直しやすくなります。