Каждая сборка программного обеспечения компонуется из пакетов с открытым исходным кодом, базовых образов и библиотек поверх вашего кода. Когда один из таких компонентов отсутствует или расходится с другими, сборка падает. При скорости работы агентов такие сбои умножаются, и ни одна команда не сможет устранять их вручную как исключения.
Расползание реестров от проекта к проекту только усугубляет ситуацию, поскольку правила хранения, лимиты хранилища и права на публикацию существуют отдельно внутри каждого проекта. Проектирование на уровне проектов работает, когда человек настраивает каждый реестр вручную, но дает сбой, когда агенты работают непрерывно на сотнях проектов.
Сегодня на мероприятии GitLab Transcend мы анонсировали GitLab Artifact Central: единый реестр уровня организации, заменяющий сотни реестров на уровне проектов. Теперь каждый запрос или публикация от человека или агента проходят через одну управляемую дверь, позволяя платформам команд собирать правильное ПО с первого раза.
Вот подробности о том, почему мы разработали Artifact Central и как это может помочь вашей команде.
Установите политику один раз, применяйте везде
В GitLab правила хранения, лимиты хранилища и разрешения на публикацию находятся внутри бесплатных реестров пакетов и контейнеров каждого проекта и настраиваются отдельно для каждого из них. GitLab Artifact Central поднимает эту задачу на уровень выше. Команды задают правила хранения, настройки квот и политики доступа один раз на уровне организации, вместо того чтобы воссоздавать их в каждом дочернем проекте.
Каждый репозиторий закрыт по умолчанию: пропуск — это членство в организации, а не само по себе предоставление доступа. Членство в организации само по себе не открывает ни единого репозитория, пока это не разрешено ролью. Мы создали четыре роли специально для артефактов: администратор (Admin), менеджер (Manager), участник (Contributor) и обозреватель (Viewer). Эти роли отделены от существующих ролей проектов в GitLab, поэтому предоставление кому-либо доступа к репозиторию никогда не затрагивает его привилегии в других местах.
Один URL для публикации, проксирования или того и другого
Вместо того чтобы изучать внутреннюю вики-страницу с объяснением, что и где находится, разработчики используют один URL для всего. GitLab Artifact Central реализует это с помощью трех типов репозиториев:
- Размещаемые (Hosted) — частные пакеты и образы, которые создают и публикуют ваши команды.
- Удаленные (Remote) — прокси перед внешним источником, таким как Docker Hub или Maven Central, с предварительной проверкой соединения до того, как что-либо начнет от него зависеть.
- Виртуальные (Virtual) — единая точка доступа, объединяющая размещаемые и удаленные репозитории. GitLab сначала проверяет размещаемый репозиторий, а затем обращается к удаленному источнику. Первый внешний запрос кэшируется, поэтому последующие запросы поступают напрямую из GitLab без повторного обращения в интернет.
Виртуальные репозитории наиболее важны для команд, сравнивающих GitLab с другими решениями для управления артефактами. Они предоставляют разработчикам привычный интерфейс с единой точкой доступа, избавляя их от необходимости думать о том, где именно хранится артефакт. Независимо от того, был ли он создан внутри компании или получен из внешнего реестра, разработчики запрашивают его одинаково. В период бета-тестирования Artifact Central поддерживает Maven, npm, Docker и OCI, а в дальнейшем планируется поддержка и других форматов.
Отслеживайте что угодно автоматически
Вот та часть, которую сложно воспроизвести за пределами GitLab. Каждый артефакт, публикуемый через GitLab Artifact Central, автоматически несет информацию о происхождении своей сборки (провенанс): какой конвейер его собрал, из какой ветки и какого коммита он поступил, кто запустил задачу. Поскольку это та же платформа, на которой выполнялась сборка, реестр уже все это знает.
Аутентификация работает точно так же. Для публикации и скачивания используется CI_JOB_TOKEN — идентификатор, который уже есть у ваших конвейеров как для людей, так и для агентов. Агент, публикующий или скачивающий данные через конвейеры CI, использует именно этот токен задачи, а не добавленную сбоку учетную службу с отдельными правами, которыми нужно управлять. В случае с автономным реестром отслеживание происхождения артефакта до его источника требует раздельного сопоставления идентификаторов в вашей CI-системе и реестре с помощью скрипта, который кто-то должен поддерживать. В Artifact Central конвейер, ветка, коммит и задача уже привязаны к самому артефакту.
Отвечайте на вопрос «что мы опубликовали?» за секунды
Artifact Central находится на той же платформе, что и ваш код, запросы на слияние и конвейеры, поэтому артефакты, публикуемые из CI, содержат информацию о своем происхождении: построивший их конвейер, коммит и данные автора публикации.
В дальнейшем мы планируем связать это в масштабах всей вашей организации с помощью GitLab Orbit, чтобы вопрос «какие из моих запущенных сервисов затронуты этой уязвимостью?» решался одним запросом с одним ответом, вместо ручного поиска по четырем или пяти инструментам.
Свяжите Artifact Central с Dependency Firewall
GitLab Dependency Firewall, отдельный продукт GitLab, который сейчас находится на стадии раннего доступа для клиентов с тарифами Premium и Ultimate, работает с Artifact Central «из коробки». С помощью Dependency Firewall вы можете останавливать рискованные пакеты еще до того, как они попадут в сборку. Вы добавляете его проверку в каждый конвейер с помощью CLI glab, поэтому охват обеспечивается для каждого конвейера независимо от того, какой пакетный менеджер используют ваши команды. В дальнейшем мы планируем обеспечить более тесную интеграцию между этими двумя возможностями, чтобы единая политика для всей вашей организации блокировала рискованные пакеты по уязвимости, лицензии или возрасту пакета сразу же при их запросе.
Два преимущества одного и того же реестра
Вот как это выглядит с точки зрения двух разных участников: разработчика, поставляющего код, и платформенной команды, следящей за тем, чтобы все работало как единое целое.
Разработчик публикует код из CI. Ваш конвейер публикует артефакт Maven, используя уже имеющийся у него токен задачи, без необходимости управлять какими-либо новыми секретами. Если тому же разработчику нужен внутренний пакет наряду с чем-то из Maven Central, он указывает один URL виртуального репозитория, а GitLab Artifact Central сам определяет, где именно хранится каждый из них.
Платформенная команда настраивает политику один раз. Вместо настройки правил для сотен отдельных проектов администратор задает квоты хранилища и правила доступа к репозиториям на уровне организации всего один раз — и каждый дочерний репозиторий наследует их. Когда кто-то спрашивает, сколько данных компания хранит и где именно, есть одна панель мониторинга с готовым ответом.
Миграция ваших артефактов
Большинство компаний начинают не с нуля, и резкий отказ от существующего реестра нереалистичен. С помощью GitLab Artifact Central вы можете добавить существующие репозитории в качестве удаленных за виртуальным репозиторием, чтобы разработчики указывали на один URL, а артефакты перемещались только тогда, когда сборка действительно запрашивает их. Нет необходимости в массовом копировании, окнах миграции на выходных или перемещении петабайтов данных по вашей сети.
Ваш старый реестр остается системой записи. Когда вы будете готовы, вы преобразуете этот удаленный репозиторий в размещаемый на Artifact Central. Ваша миграция пройдет безопаснее и постепенно.
Попробуйте Artifact Central бесплатно в бета-версии
GitLab Artifact Central доступна в бета-версии для GitLab.com уже сегодня, а поддержка GitLab Self-Managed планируется позднее в этом месяце. В период бета-тестирования плата не взимается, покупать ничего не нужно. Мы отслеживаем использование, чтобы сформировать ценовую политику к моменту общего доступа, и тогда же поделимся подробностями.
Помогите нам продолжать совершенствовать GitLab Artifact Central
Ничего из этого не было бы на текущем этапе без наших партнеров по дизайну, которые уже несколько недель используют Artifact Central в реальных рабочих процессах. Их отзывы уже повлияли на то, что выпускается сегодня, а ваши отзывы определят то, что появится в будущем.
Для участия в бета-тестировании Artifact Central не требуется приглашение — просто зарегистрируйтесь на нашем сайте, и член нашей команды свяжется с вами, чтобы помочь включить эту функцию для вашей учетной записи. Если у вас еще нет учетной записи GitLab, вы также можете
Мы с нетерпением ждем возможности увидеть, что вы создадите.
Посмотрите запись нашего мероприятия Transcend, чтобы увидеть демонстрации новых возможностей платформы и узнать, что требуется для того, чтобы перенести скорость агентного ИИ на весь жизненный цикл ПО.
Посмотрите запись нашего мероприятия Transcend, чтобы увидеть демонстрации новых возможностей платформы и узнать, что требуется для того, чтобы перенести скорость агентного ИИ на весь жизненный цикл ПО.





