Xcode キャッシュに取り組んでいる間、これは基本的に、非常に断片化されたビルド システムの状況におけるインフラストラクチャの問題であるということが明らかになりました。インフラは堀なので、すぐにインフラを倍増させました。しかし、深く掘り下げていくと、インフラだけでは十分ではないことが明らかになりました。ソフトウェアも別の方法で行う必要がありました。企業は何年も前から Bazel のためにこの取り組みを行ってきましたが、何が私たちと違うのでしょうか? 周りを見回すと、私たちの思考を形作る 2 つのパターンが浮かび上がりました。まず、より多くのビルドシステムがキャッシュ機能を採用しています。コードを生成する速度と量は増加し続けており、キャッシュはもはやオプションではありません。それは不可欠です。第二に、標準化がありません。ビルドシステムの断片化は、必然的にサービスの断片化につながります。ビルドシステムごとに1つのキャッシュサービス。ツールごとに 1 つのインフラストラクチャ。同じ問題が、わずかに異なる方法で何度も何度も解決されました。 Tuistでは、Xcodeでこれを解決して、その日を終わらせることができたでしょう。しかし、もっと基本的なものを構築したらどうなるでしょうか?ビルドシステムの世界とキャッシュインフラストラクチャの世界の間に狭い腰を作ったらどうなるでしょうか?さらに別の垂直ソリューションを構築するのではなく、任意のビルドシステムが任意のキャッシュバックエンドと通信できるようにするレイヤー。 私はこのアイデアをいじり始め、これが前進する道であると確信しています。私たちは、サービスとしてのシステムインフラストラクチャを構築するための基盤を構築しています。ビルド システムごとに 1 つのサービスはありません。それらすべてで機能する1つのソリューション。私たちが開発、保守、マネージドサービスとして提供するもので、ビルドツールに関係なく、どのチームでも使用できます。 そして、はい、私たちはインフラストラクチャを始めたばかりです。私たちのビジョンは、開発者、エージェント、CI パイプラインが実際に作業を行う場所にできるだけ近いエッジにすることです。私たちの業界における断片化の問題は現実のものであり、私たちはそれを解決するためのインフラストラクチャを構築しています。