Trong khi làm việc với bộ nhớ cache của Xcode, một điều trở nên rõ ràng: đây thực sự là một vấn đề hạ tầng trong một hệ thống xây dựng bị phân mảnh sâu sắc. Chúng tôi ngay lập tức tập trung vào hạ tầng vì đó là lợi thế của chúng tôi. Nhưng khi chúng tôi đào sâu hơn, rõ ràng rằng chỉ riêng hạ tầng là không đủ. Chúng tôi cũng cần làm phần mềm theo cách khác. Các công ty đã làm điều này với Bazel trong nhiều năm, vậy điều gì có thể làm cho chúng tôi khác biệt? Khi nhìn xung quanh, hai mô hình đã xuất hiện và định hình suy nghĩ của chúng tôi. Đầu tiên, nhiều hệ thống xây dựng đang áp dụng khả năng lưu trữ. Tốc độ và khối lượng mà chúng tôi sản xuất mã ngày càng tăng, và việc lưu trữ không còn là tùy chọn. Nó là điều cần thiết. Thứ hai, không có sự chuẩn hóa. Sự phân mảnh hệ thống xây dựng sẽ dẫn đến sự phân mảnh dịch vụ. Một dịch vụ lưu trữ cho mỗi hệ thống xây dựng. Một hạ tầng cho mỗi công cụ. Những vấn đề tương tự được giải quyết lặp đi lặp lại theo những cách hơi khác nhau. Tại Tuist, chúng tôi có thể đã giải quyết điều này cho Xcode và coi như xong. Nhưng nếu chúng tôi xây dựng một cái gì đó cơ bản hơn thì sao? Nếu chúng tôi tạo ra một lớp hẹp giữa thế giới của các hệ thống xây dựng và thế giới của hạ tầng lưu trữ? Một lớp cho phép bất kỳ hệ thống xây dựng nào giao tiếp với bất kỳ backend lưu trữ nào, thay vì xây dựng thêm một giải pháp dọc nữa. Tôi đã bắt đầu mày mò với ý tưởng này, và tôi tin rằng đây là con đường phía trước. Chúng tôi đang xây dựng nền tảng cho hạ tầng hệ thống xây dựng như một dịch vụ. Không phải một dịch vụ cho mỗi hệ thống xây dựng. Một giải pháp hoạt động trên tất cả chúng. Một thứ mà chúng tôi phát triển, duy trì và cung cấp như một dịch vụ quản lý mà bất kỳ đội nào cũng có thể sử dụng bất kể công cụ xây dựng của họ là gì. Và vâng, chúng tôi chỉ mới bắt đầu với hạ tầng. Tầm nhìn của chúng tôi là đưa nó đến gần nhất có thể với nơi mà các nhà phát triển, tác nhân và các pipeline CI thực sự làm việc. Vấn đề phân mảnh trong ngành của chúng tôi là có thật, và chúng tôi đang xây dựng hạ tầng để giải quyết nó.