Технический разбор · Инфраструктура

Архитектура приватного реестра: взгляд внутри.

Разбираем, как устроен приватный реестр PkgMirror: от детерминированной модели хранилища до глобального слоя кэширования на гранике сети. Без маркетинга — только инженерные детали.

Автор: Дмитрий Соколов, Principal Engineer Обновлено: 14 марта 2025 Чтение: 12 мин
Детализированная схема приватного реестра PkgMirror
v4.2 приватное ядро реестра
Статья

Как устроен приватный реестр

Приватный реестр — это не просто «коробка с пакетами». Это система, в которой каждая запись, подпись и запрос проходят через детерминированный путь. Ниже — как это работает на практике.

01 · Модель хранилища

Иерархия, а не плоский список

В отличие от публичных реестров, приватное ядро PkgMirror строится вокруг иерархической модели: организации → проекты → пакеты → версии. Это позволяет выстроить строгие границы доступа без компромиссов.

Каждый пакет идентифицируется не только по имени и версии, но и по хэшу содержимого (SHA-256). Это означает, что два артефакта с одинаковыми метаданными, но разным содержимым, физически не могут быть смешаны — система отвергает дубликат на уровне подписи.

Версионирование следует строгому semver, а откат к предыдущей версии занимает не более 180 мс в медиане, поскольку история хранится в локальном индексе узла.

Схема иерархической модели хранилища приватного реестра
Структура ядра

Три слоя детерминированности

Приватный реестр PkgMirror состоит из трёх взаимосвязанных слоёв. Каждый решает свою задачу — и ни один не дублирует функции другого.

01 · Хранилище

Изолированное VPC-ядро

Артефакты хранятся в выделенном VPC вашего региона с шифрованием на покое (AES-256) и в транзите. Доступ к ядру возможен только через модель Zero-Trust с короткоживущими токенами.

02 · Индекс

Локальный индекс версий

Каждый узел ведёт собственный индекс версий, что позволяет выполнять операции отката и поиска за миллисекунды без обращения к центральному хранилищу. Индекс синхронизируется через детерминированные снапшоты.

03 · Граничный кэш

Кэш на гранике сети

Слой кэширования на границе сети обслуживает повторные запросы зависимостей, сокращая время получения до 4 мс в медиане. Стратегия инвалидации детерминирована и не требует ручного вмешательства.

02 · Аудит и воспроизводимость

Каждый артефакт — со своей историей

Приватный реестр не просто хранит пакеты — он фиксирует полный жизненный цикл каждого артефакта: от момента публикации до развёртывания в продакшене.

Аудит ведётся на уровне подписи и хэша. Система фиксирует, кто опубликовал артефакт, с какого узла, и какой пайплайн его подписал. Воспроизводимость сборки гарантируется на уровне подписи: повторная сборка из того же исходного кода всегда выдаёт идентичный хэш.

В типовой enterprise-инфраструктуре PkgMirror обрабатывает более 12 миллионов артефактов в сутки, при этом медианное время hit граничного кэша составляет 4 мс. Для команд DevOps это означает, что инцидент из-за «битого» пакета становится практически невозможным.

Диаграмма жизненного цикла артефакта в приватном реестре
По теме

Смежные материалы

Продолжите разбор: от глобального кэширования до моделей доступа и детерминированного аудита.

Разбор · Кэш

Глобальный слой кэширования: как устроены 31 регион

Детальный разбор маршрутизации запросов между регионами и стратегии инвалидации кэша без ручного вмешательства. Дата: 28 февраля 2025.

Гид · Доступ

Модель Zero-Trust для приватных реестров

Как выстроить короткиеживущие токены и гранулярные права доступа в иерархии организация → проект → пакет. Дата: 9 марта 2025.

Практика · Аудит

Детерминированный аудит: воспроизводимость сборки на уровне хэша

Реальный кейс из инфраструктуры финтех-платформы: как аудит по подписи выявил расхождение в 0.003% артефактов. Дата: 20 февраля 2025.

Обсуждение

Поделийтесь опытом с приватными реестрами.

Как вы строите границы доступа и воспроизводимость в собственной инфраструктуре? Расскажите о своих решениях — команда PkgMirror читает каждый комментарий и отвечает в течение рабочего дня.