CI/CDプラットフォームとは? pipelineを実行するシステム
CI/CDプラットフォームは、server、runner、pipelineのconfig、統合をまとめて、ソフトウェアをbuild、test、deployする完全なシステムです。
個々の部品 (build server、エージェント、config形式) は、プラットフォームに組み立てられて初めて有用になります。CI/CDプラットフォームはそのパッケージ全体です。pipelineを定義する場所、それを実行するcompute、結果のストレージ、そしてリポジトリ、registry、deploy先との統合です。プラットフォームを選ぶことが、デリバリープロセス全体の動き方を形づくります。
プラットフォームに含まれるもの
- pipelineを定義する手段 (config形式) 。
- runをスケジュールし追跡するserver。
- jobを実行するrunnerまたはエージェント。
- ログ、artifact、履歴のストレージ。
- ソース管理とdeploy先との統合。
プラットフォームの例
GitHub Actions、GitLab CI/CD、CircleCI、Jenkins、Azure Pipelinesは、いずれもCI/CDプラットフォームです。config構文、ホスティングモデル、エコシステムは異なりますが、それぞれ同じ核を提供します。pipelineを定義し、実行し、観測することです。
簡単な例
GitHub Actionsでは、プラットフォームとは .github/workflows のconfig、それを実行するrunner、runを表示するActionsのUI、そしてGitHubリポジトリとの緊密な統合であり、すべてが1つのシステムです。
ホスト型 vs 自己管理型プラットフォーム
ホスト型プラットフォームはインフラをあなたの代わりに運用し、自己管理型は自分で運用します。多くのチームは、利便性とcomputeへの制御のバランスを取るため、ホスト型のコントロールプレーンと自前のrunnerを併用します。
プラットフォームとrunnerの選択
プラットフォームのデフォルトrunnerは、常に最速でも最安でもありません。多くのプラットフォームは、同じworkflowに差し込めるマネージドrunner (Latchkeyなど) の持ち込みを許します。これらは起動が速く使用量を計測するため、プラットフォームは保ったまま、その下のcomputeを改善できます。
重要なポイント
- CI/CDプラットフォームは、config、server、runner、ストレージ、統合をまとめます。
- GitHub Actions、GitLab CI、CircleCI、Jenkinsが一般的な例です。
- 多くの場合、プラットフォームは保ったまま、より速いマネージドrunnerに差し替えられます。