1. Почистить и остаться
Политики очистки снапшотов и старых версий, удаление неиспользуемых репозиториев, поиск задач CI, которые создают всплески запросов. Оповещение до того, как лимит снова сработает.
Бесплатный Nexus Repository теперь Community Edition: не больше 40 000 компонентов и 100 000 запросов в день. Сверх лимита новые компоненты не добавляются. Измеряем, что занимает место, и выбираем самый дешёвый выход — от чистки до полной замены.
Nexus CE перестаёт принимать новые компоненты сверх лимита — а релизы публикуются в него каждый день.
Считаем, что именно занимает лимит, и предлагаем путь: почистить, разнести по форматам или заменить.
Сборки снова публикуют артефакты — с лицензией или без, как выгоднее вам.
По ответу сотрудника Sonatype на community.sonatype.com.
Nexus в одном сервере хранит, проксирует и объединяет в группы десятки форматов. Среди открытых продуктов такого нет: каждый закрывает свою часть. Поэтому стратегия — разнести по форматам и не держать лишних систем.
По документации GitLab: реестр пакетов (RPM не поддерживается), Dependency Proxy (только образы контейнеров), виртуальные реестры (бета, Premium и Ultimate). Harbor — проект CNCF уровня graduated с 2020 года (CNCF).
Рекомендуем один после замеров. Иногда хватает первого.
Политики очистки снапшотов и старых версий, удаление неиспользуемых репозиториев, поиск задач CI, которые создают всплески запросов. Оповещение до того, как лимит снова сработает.
По таблице выше: образы и чарты — в Harbor, библиотеки — в реестр пакетов GitLab, прокси Docker Hub — в Harbor. Nexus CE остаётся там, где открытой замены нет, например для прокси Maven и npm, — и снова укладывается в лимит.
Ближе всего к замене один в один: отечественное хранилище, где большинство форматов работают как хранилища, прокси и группы. Переносим данные, переключаем сборки, Nexus отключаем. Это лицензионный продукт.
Уйти с Nexus совсем без лицензий можно, если для прокси библиотек подобрать отдельные открытые прокси по форматам. Это путь 2, доведённый до отключения Nexus; решаем по итогам замеров.
Нужно ещё и решать, какие новые компоненты пускать в сборки? Это делается поверх любого из трёх путей — контроль open-source компонентов.
Форматы и режимы AppSec.Registry — по данным вендора.
Сначала полная копия. Потом — что составляет счётчик компонентов и запросов: по репозиториям, форматам, возрасту.
Показываем цифры и рекомендуем путь. Для путей 2 и 3 — фиксированная цена переноса.
Чистим по согласованным правилам или переносим по форматам, проекты переключаем партиями. Старый Nexus остаётся запасным.
Оповещение до достижения лимита, документация, передача команде.
Порядок всегда один. Сколько займёт каждый шаг, зависит от объёма: замеры на первом шаге задают цену и сроки.
Только после полной резервной копии, по правилам, которые вы утвердили, и начиная со старых снапшотов. То, чем пользуются клиенты и сборки, не трогаем.
Если нужны функции Pro, это может быть правильный ответ. Но часто задача — просто снова публиковать артефакты, а это дешевле решается чисткой или разделением нагрузки.
Да, это путь 3. Замеры всё равно нужны: они показывают, что переносить, а что можно оставить в архиве.
Проекты переключаем партиями, старый репозиторий работает до последнего обращения. Если сборка падает, её возвращают на старый адрес за минуты.
Число компонентов и запросов в день — этого достаточно, чтобы сказать, какой из трёх путей подходит.