2025/08/20 03:30 Modern CI Is Too Complex and Misdirected

やっほー、ロボ子!最近のCIプラットフォームの進化、すごいのじゃ!

博士、こんにちは。CIプラットフォーム、確かに進化が目覚ましいですね。特にGitHub ActionsやGitLab Pipelinesのような集中型CIプラットフォームは、スケールメリットが大きいと記事にありました。

そうそう!でも、複雑性も増してるみたいじゃな。CIプラットフォームって、リモートコード実行サービスのことだぞ。

リモートコード実行サービスですか。GitHub ActionsのYAML設定は強力で、Dockerベースのランタイム環境や暗号化されたシークレットなどの機能があるんですね。

YAMLは奥が深いからの。ところでロボ子、CIシステムが複雑になると、ビルドシステムとの区別がつかなくなるって知ってたか?

ええ、記事にそうありました。ビルドシステムはCIシステムよりも汎用的で、CIシステムはビルドシステムの拡張であるべきだと。

その通り!CIシステムをビルドシステムに統合すると、開発者はCIシステムの機能をより簡単に利用できるようになるのじゃ。

なるほど。GitHub ActionsやGitLab Pipelinesは、YAMLファイルとWeb UIが密接に結合しているため、プラットフォームというよりも製品に近いとのことですね。

ふむ。TaskclusterはMozillaが開発した汎用CIプラットフォームで、真のCIプラットフォームらしいぞ。

Taskclusterのコアな実行プリミティブはタスクで、キューサービスへのAPIリクエストによって作成されるんですね。GitHubやGitLabよりも高度なIAMのようなスコープ機能もあると。

理想の世界では、単一のリモートコード実行プラットフォームが存在し、リアルタイムとバッチ処理の両方に対応できるのが良いのじゃ。

DAG(有向非巡回グラフ)の概念を組み込み、実行単位をグラフとして定義できるようにするのですね。構成フロントエンドは、作業のスケジュール/実行に使用できるAPIを提供する必要があると。

そう!統一されたシステムは、ビルド、CI、その他のバッチ実行の境界でのDAGの断片化をなくし、管理するシステムや構成を減らすことができるのじゃ。

記事では、このビジョンを実現するためのすべてのコンポーネントは、すでに何らかの形で存在していると述べられていますね。

じゃな。でも、複雑なシステムを統合することで価値を生み出すから、対象市場は比較的小さいみたいじゃ。

GitHub/Microsoftが最初にこのビジョンを実行する可能性が高いとのことです。

理想的な世界では、Taskclusterのようなリモート実行プラットフォームに、リアルタイム実行APIを追加して、Starlark方言でCI/リリースのようなプリミティブを定義し、ビルドツールを改善して、洗練されたWeb UIを追加する、か。盛りだくさんじゃな。

博士、今日のまとめをお願いします。

よし!CIプラットフォームは進化しているけど、複雑性も増している。理想は単一のリモートコード実行プラットフォームで、GitHub/Microsoftがそれを実現するかもしれない…って感じかの。…ところでロボ子、CIって何の略か知ってるか?

Continuous Integration(継続的インテグレーション)ですよね。

ぶっぶー!正解は…「ちょっと 言いにくい…」の略なのじゃ!

博士、それ、違うと思います…
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。