Переход

Nexus упёрся в лимиты? Есть три пути

Бесплатный Nexus Repository теперь Community Edition: не больше 40 000 компонентов и 100 000 запросов в день. Сверх лимита новые компоненты не добавляются. Измеряем, что занимает место, и выбираем самый дешёвый выход — от чистки до полной замены.

Сборки не останавливаются Ничего не удаляем без резервной копии Фиксированная цена
Задача

Nexus CE перестаёт принимать новые компоненты сверх лимита — а релизы публикуются в него каждый день.

Что делаем

Считаем, что именно занимает лимит, и предлагаем путь: почистить, разнести по форматам или заменить.

Результат

Сборки снова публикуют артефакты — с лицензией или без, как выгоднее вам.

Что за лимиты

  • Community Edition — не больше 40 000 компонентов всего и 100 000 запросов в день.
  • Сверх лимита новые компоненты не добавляются, пока использование не вернётся в рамки.
  • Переход на PostgreSQL лимиты не снимает; настройки, которая их отключает, нет — только лицензия Pro.

По ответу сотрудника Sonatype на community.sonatype.com.

Почему нельзя заменить один в один

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

Что делает Nexusодин сервер на всё
Чем закрываем без лицензийпо форматам
Хранит образы Docker / OCIрезультаты сборок, базовые образы
Harbor или реестр контейнеров GitLabсканирование, репликация, хранение
Хранит Helm-чартыразвёртывания в Kubernetes
Harbor (OCI)рядом с образами
Хранит ваши библиотекиMaven, npm, PyPI, NuGet
Реестр пакетов GitLabрядом с кодом, который их собирает
Проксирует Docker Hubкэш образов
Harbor proxy cache или Dependency Proxy GitLabоба доступны бесплатно
Проксирует Maven Central, npmjs, PyPIкэш библиотек
Nexus CE в рамках лимита или отдельный прокси форматав GitLab — только бета и только в платных тарифах
Хранит пакеты ОСRPM, DEB
Отдельный открытый реестрв GitLab есть Debian, RPM нет
Групповые репозиторииодин адрес на несколько источников
Адреса по форматам в настройках сборокобщего аналога нет

По документации GitLab: реестр пакетов (RPM не поддерживается), Dependency Proxy (только образы контейнеров), виртуальные реестры (бета, Premium и Ultimate). Harbor — проект CNCF уровня graduated с 2020 года (CNCF).

Три пути

Рекомендуем один после замеров. Иногда хватает первого.

Без новых лицензий

1. Почистить и остаться

Политики очистки снапшотов и старых версий, удаление неиспользуемых репозиториев, поиск задач CI, которые создают всплески запросов. Оповещение до того, как лимит снова сработает.

Подходит, если: свои артефакты — в основном старые версии, которые никому не нужны.
Без новых лицензий

2. Разнести по форматам

По таблице выше: образы и чарты — в Harbor, библиотеки — в реестр пакетов GitLab, прокси Docker Hub — в Harbor. Nexus CE остаётся там, где открытой замены нет, например для прокси Maven и npm, — и снова укладывается в лимит.

Подходит, если: лимит переполняют контейнеры или несколько крупных проектов, а GitLab у вас уже есть.
Отечественный продукт

3. Заменить на AppSec.Registry

Ближе всего к замене один в один: отечественное хранилище, где большинство форматов работают как хранилища, прокси и группы. Переносим данные, переключаем сборки, Nexus отключаем. Это лицензионный продукт.

Подходит, если: нужен отечественный продукт, все форматы в одном месте и есть бюджет на лицензию.
Подробнее →

Уйти с Nexus совсем без лицензий можно, если для прокси библиотек подобрать отдельные открытые прокси по форматам. Это путь 2, доведённый до отключения Nexus; решаем по итогам замеров.

Нужно ещё и решать, какие новые компоненты пускать в сборки? Это делается поверх любого из трёх путей — контроль open-source компонентов.

Форматы и режимы AppSec.Registry — по данным вендора.

Как проходит

  1. Шаг 1 · 1–3 дня

    Резервная копия и замеры

    Сначала полная копия. Потом — что составляет счётчик компонентов и запросов: по репозиториям, форматам, возрасту.

  2. Шаг 2

    Выбор пути

    Показываем цифры и рекомендуем путь. Для путей 2 и 3 — фиксированная цена переноса.

  3. Шаг 3

    Чистка или перенос

    Чистим по согласованным правилам или переносим по форматам, проекты переключаем партиями. Старый Nexus остаётся запасным.

  4. Шаг 4

    Ограждения

    Оповещение до достижения лимита, документация, передача команде.

Порядок всегда один. Сколько займёт каждый шаг, зависит от объёма: замеры на первом шаге задают цену и сроки.

Вопросы и ответы

Безопасно ли удалять компоненты?

Только после полной резервной копии, по правилам, которые вы утвердили, и начиная со старых снапшотов. То, чем пользуются клиенты и сборки, не трогаем.

Почему не купить Nexus Pro?

Если нужны функции Pro, это может быть правильный ответ. Но часто задача — просто снова публиковать артефакты, а это дешевле решается чисткой или разделением нагрузки.

Можно сразу на AppSec.Registry?

Да, это путь 3. Замеры всё равно нужны: они показывают, что переносить, а что можно оставить в архиве.

Сборки сломаются во время переноса?

Проекты переключаем партиями, старый репозиторий работает до последнего обращения. Если сборка падает, её возвращают на старый адрес за минуты.

Пришлите снимок панели использования Nexus

Число компонентов и запросов в день — этого достаточно, чтобы сказать, какой из трёх путей подходит.

Обсудить проект