Того самого инструмента, который почти каждый программист использует для сохранения кода и отслеживания изменений. Причина - масштаб. Их ИИ вносит более 30 тысяч изменений в код ежедневно и выполняет около 25 миллионов скачиваний кода в день. При использовании
Git это создавало бы более 600 петабайт трафика ежедневно. Поэтому за пять месяцев компания разработала собственную замену.
Почему Git перестал справляться:
Git - децентрализованная система. Каждый клон - это полный репозиторий, который может работать офлайн. Для большинства проектов это правильный дизайн. Но их монорепозиторий перестал вписываться в эту модель.
История основной ветки занимает почти 100 ГБ. Сжатая рабочая копия - больше 25 ГБ. Ежедневно выполняется порядка 25 миллионов проверок кода для CI. Если скачивать все наивно, это было бы более 600 ПБ трафика в день.
Git предлагает инструменты для работы с частью репозитория: shallow clones, sparse checkouts. Компания использовала их все. На пике они поддерживали несколько сотен внутренних
Git-зеркал. Это давало время, но с ростом числа слияний становилось сложнее.
Что заметили в Anthropic:
Они использовали
Git как централизованную систему с одной авторитетной копией. Но почти все клиенты - это агенты и задачи, которые всегда онлайн. Свойства, которые делают
Git отличным для распределенной работы, наоборот мешали масштабированию.
Возник вопрос: если проектировать контроль версий с учетом того, что агенты всегда онлайн, как это будет выглядеть?
Что пришло на смену Git:
Так появилась
Scion - внутренняя система контроля версий.
- Клиенты всегда онлайн. Git предполагает работу офлайн и полную копию репозитория. Scion проектировался вокруг сервера, который всегда доступен.
- Асимметрия клиент-сервер. В Git каждый клиент может быть полноценным сервером. В Scion сервер отвечает на вопросы об истории, создает коммиты, выполняет слияния. Клиент хранит ограниченный кэш и раскладывает файлы на диске.
- Все горизонтально масштабируется. Данные репозитория распределены, каждый компонент масштабируется независимо. Нет полностью материализованной копии репозитория, даже на сервере.
- Коммиты дешевые и инкрементальные. Каждый коммит, rebase или слияние происходит на сервере. Стоимость создания коммита зависит от размера изменения, а не от размера репозитория.
- Рабочая копия необязательна. Многие операции могут выполняться через API без выгрузки файлов на диск.
Как это работает:
В
Scion единица работы - это changeset, запись в журнале. Он хранит список измененных файлов и указатели на содержимое. Changeset создаются на сервере и сразу доступны везде.
Дополнительные структуры данных - история файла, blame, граф коммитов - вычисляются из changeset. Это позволяет добавлять новые типы данных, не меняя клиент.
Серверы
Scion горизонтально масштабируются. Данные адресуются по содержимому, поэтому любой сервер может их кэшировать. Клиент общается с демоном, который хранит объекты для всей ноды. Демон обращается к региональным кэшам, а те - к авторитетным серверам.
Каждый уровень кэша имеет попадание выше 99%. Инфраструктура
Scion теперь в 200 раз меньше по CPU и памяти, чем предыдущая инфраструктура с
Git-зеркалами. CI и исследовательские задачи выгружают код в сотни раз быстрее - секунды вместо минут.
Что это дало:
Команда из семи человек построила
Scion и
Antique - инструмент код-ревью и еще полдюжины связанных систем. Все за пять месяцев. При этом объем кода, сливаемого в день, вырос в 10 раз.
Инженеры все еще ценны, но их работа меняется. Все, кто работал над системой, теперь оценивают
Claude как более сильного в написании кода. Но инженеры дали понимание высокоуровневых компонентов и компромиссов. Очень часто их роль сводилась к тому, чтобы сказать
Claude «нет».
Вывод:
Scion - не замена
Git для всех. Она имеет смысл только для действительно огромных монорепозиториев, где либо десятки тысяч инженеров, либо рои агентов, пишущих код.
Anthropic не ожидает, что другие компании столкнутся с этим завтра. Но через 6–12 месяцев такие проблемы могут стать распространенными. Поэтому компания делится своим опытом, чтобы другие могли применить лучшие идеи
Scion к
Git, не отказываясь от привычной модели.