Руководство · Миграция и оптимизация

Пошаговое руководство по переходу и настройке.

Практический маршрут: как перенести инфраструктуру пакетов с JFrog на PkgMirror, ускорить сборки и решить типовые проблемы без остановки вашего pipeline.

Версия 4.2 · обновлено 14 марта 2025 ≈ 18 мин чтения 3 раздела
Шаг 0 · Подготовка

Перед тем, как начинать

Миграция проходит без остановки сборки. PkgMirror подключается как дополнительный узел и начинает кэширование с первого запроса.

Соберите инвентарь: список репозиториев, объём артефактов и текущие токены доступа. Для большинства команд это занимает один-два рабочих дня. Ниже — три последовательных раздела, каждый из которых можно выполнить независимо.

Записи с планом миграции и заметками по настройке PkgMirror
Раздел 01 · Миграция

Переход с JFrog Artifactory

Пошаговый маршрут от инвентаризации до полного переключения. Обычно занимает 5–9 рабочих дней для типового enterprise-кластера.

01 / Инвентаризация

Аудит репозиториев и токенов

Сформируйте список локальных и виртуальных репозиториев, объём хранящихся артефактов и перечень действующих токенов. PkgMirror CLI (pkgmirror audit) экспортирует это в JSON за один проход.

02 / Подключение

Параллельный запуск узла

Разверните узел PkgMirror в вашем VPC и подключите его рядом с JFrog. Настройте прозрачное проксирование npm, Maven и PyPI — конфигурация в pipeline не меняется.

03 / Синхронизация

Копирование приватных артефактов

Запустите pkgmirror sync --from artifactory. Процесс воспроизводим и идиотопotent: повторный запуск добирает только новые версии. Подписи и хэши проверяются на каждом шаге.

04 / Валидация

Сравнение хэшей и версий

Инструмент pkgmirror verify сравнивает SHA-256 каждого артефакта между двумя системами. Отчёт с расхождениями (если они есть) выгружается в CSV для проверки командой.

05 / Переключение

Обновление URL в pipeline

Замените endpoint на узел PkgMirror в конфигурации CI/CD. Рекомендуются два этапа: сначала для новых репозиториев, затем для легаси. Откат — одна строка в конфиге.

06 / Декомиссия

Выгрузка и удаление JFrog

После 30 дней стабильной эксплуатации выгрузите архив артефактов и отключите подписку. PkgMirror хранит полную историю версий и подписей, поэтому данные не теряются.

Раздел 02 · Оптимизация

Ускорение сборок без потери надёжности

После миграции типичный enterprise-кластер сокращает время сборки на 30–45%. Ниже — три конкретных приёма, которые дают основной эффект.

Приём 01 · Лесенка кэша

Трёхуровневая иерархия кэширования

Не ставьте всё в один кэш. Разделите артефакты по частоте доступа и объёму.

Первый уровень — локальный кэш агента сборки (до 10 ГБ, TTL 24 ч). Второй — региональный узел PkgMirror (до 500 ГБ, TTL 72 ч). Третий — глобальный слой на гранике сети. Такой расклад даёт медианное время hit 4 мс и снижает нагрузку на исходные источники на 80%.

Начните с профиля вашего трафика: pkgmirror profile --days 30 покажет, какие пакеты действительно горячие, а какие можно держать только в глобальном слое.

Записи с расчётом иерархии кэша и профилем нагрузки
02 / Предварительная загрузка

Prefetch перед сборкой

Параллельно с запуском CI-задачи вызовите pkgmirror prefetch --manifest lockfile. К моменту старта сборки все зависимости уже в локальном кэше — время первого запроса падает с секунд до миллисекунд.

03 / Детерминированные сборки

Заморозка хэшей артефактов

Включите --lock-sha256 в манифесте: PkgMirror фиксирует точные хэши всех зависимостей. Повторная сборка всегда воспроизводит идентичный результат — ключ для отладки регрессий.

04 / Инвалидация по событию

Детерминированная стратегия инвалидации

Кэш инвалидируется только при публикации новой версии пакета, а не по таймеру. Это устраняет «дрейф» между сборками и убирает ручное управление TTL.

−38% Среднее время сборки
4 мс Медианное время hit
80% Снижение нагрузки на источники
0 Изменений в pipeline
Раздел 03 · Диагностика

Типовые проблемы и решения

Пять ситуаций, с которыми чаще всего сталкиваются команды в первые две недели после миграции. Для каждого — конкретная команда и ожидаемое поведение.

Токен не был перенесён. Выгрузите его из JFrog (jfrog rt token), импортируйте в PkgMirror (pkgmirror auth import) и обновите переменную окружения в CI. После этого ошибка исчезает с первого же запроса.

Обычно означает, что артефакт был пересобран в JFrog без обновления версии. Запустите pkgmirror verify --diff и сравните отчёт. Если расхождение в одном файле — пересоберите пакет с фиксированным хэшем и повторите синхронизацию.

Проверьте локальный кэш агента: pkgmirror cache status. Если размер меньше 2 ГБ, увеличьте лимит в pkgmirror.conf до 10 ГБ. Также убедитесь, что prefetch включён — без него первый запрос идёт в региональный узел, что добавляет 20–40 мс.

Проверьте, что узел PkgMirror видит публикацию новой версии. Запустите pkgmirror events tail — в логе должны появляться записи типа invalidate pkg@version. Если их нет, проверьте подписку на события в настройках региона.

Скорее всего, пакет был опубликован после последнего запуска sync. Выполните pkgmirror sync --since last-run — команда добирает только новые версии. Для полного аудита используйте pkgmirror audit --full.

Продолжить работу

Готовы к следующему шагу?

Запустите pkgmirror audit на своём кластере и получите отчёт с планом миграции за 10 минут. Без установки, без изменений в pipeline.