Встроенные DevOps: репозиторий артефактов Nexus и аналитика качества SonarQube
Анализ качества, управление зависимостями и распространение артефактов в каждом развертывании с помощью специального репозитория Nexus и интеграции качества кода SonarQube. Один клик с панели установки.
#nexus
#sonarqube
#devops
#ci/cd
#code quality
VDS Panel Ekibi
Ürünü geliştiren ekip
~8 dk
okuma
Технический
kategori
Когда дело доходит до «инфраструктуры Enterprise DevOps», большинство команд думают, что такие инструменты, как Jenkins, JIRA, Bitbucket, Nexus, SonarQube, настраиваются, лицензируются и обслуживаются отдельно. Стоимость SaaS $500-2000 в месяц или 5-6 разных серверов, которые вы настроите и будете управлять самостоятельно.
Модуль systemServices VDS Panel позволяет установить эту инфраструктуру с одной панели одним щелчком мыши. В этой статье мы объясним, что делают Nexus и SonarQube, как их установить вместе с панелью и как они интегрируются в ваши проекты.
Bir bakışta
~2 мин.
Время установки Нексуса
~3 мин.
Время установки SonarQube
$0
Дополнительный лицензионный сбор
авто
Интеграция сборки
Менеджер репозитория Nexus
Nexus — это специальный репозиторий артефактов для управления зависимостями. Он имеет три основные функции:
1. Кэш прокси
Ваша команда запрашивает общедоступные репозитории, такие как Maven Central, реестр npm и PyPI, и загружает пакеты через Интернет при каждой сборке. Команда из 10 человек скачивает один и тот же пакет сотни раз. Nexus работает как прокси-кеш: при первой загрузке он сохраняется на локальном диске, а последующие запросы быстро обслуживаются из того же кеша.
2. Частный репозиторий
Вы не загружаете свои собственные разработанные JAR-файлы (общие библиотеки, корпоративные платформы) в npm/Maven. Nexus размещает ваши собственные пакеты в качестве частного репозитория.
3. Управление релизами
Пакеты моментальных снимков (для разработки) и релизов (стабильных) хранятся в отдельных репозиториях. Он автоматически переносится в соответствующий репозиторий с помощью команды P0.
Классический
НЕТ Нексуса
Каждая сборка зависит от Интернета
Сбой сборки в случае сбоя Maven Central
Общий JAR = ручной SCP
Версия зависимости не проверена
Сложности корпоративного прокси
Настройка панели
Нексус ДА
Кэшированные пакеты загружаются быстрее
Возможна автономная сборка
автоматический push с развертыванием mvn
Управление версиями на стороне репозитория
Совместимость с брандмауэром
Качество кода SonarQube
SonarQube статически анализирует ваш код:
Ошибки: возможные ошибки во время выполнения (нулевой указатель, утечка ресурсов и т. д.).
Код пахнет: места, требующие рефакторинга (дублирующийся код, высокая цикломатическая сложность).
Тестовое покрытие: какие линии были протестированы.
Технический долг: расчетное время рефакторинга в часах.
30+
языковая поддержка
Java, JavaScript, TypeScript, Python, Go, C#, Ruby, PHP, Kotlin, Swift, Rust и другие.
При каждом нажатии панель отправляет ваш код в SonarQube. Вы можете просмотреть отчет из интерфейса панели или из собственного пользовательского интерфейса SonarQube.
Установка через панель
Сколько часов занимает классическая установка?
Установка Nexus вручную: извлеките образ Docker, установите том, конфигурацию порта, сброс пароля администратора, определение репозитория, обратный прокси-сервер nginx, SSL… Примерно 1-2 часа. SonarQube похож. С панели VDS Panel: всего ~5 минут.
Монтаж панели в три этапа:
Перейдите на вкладку «Службы» каталога системных служб в главном меню Panel.
Нажмите «Установить» в поле «Nexus». Панель создаст контейнер Docker в фоновом режиме, установит том, настроит обратный прокси-сервер nginx, импортирует сертификат SSL, сгенерирует пароль администратора по умолчанию.
Повторите то же самое для SonarQube, отдельный том, отдельный домен (например, P0).
Обе порции готовы примерно через 5 минут.
Интеграция с Maven
Файл P0 или P1 вашего проекта автоматически обновляется. Панель:
Р0
Пароли хранятся в секретном хранилище панели, в файл в открытом виде не записываются.
Интеграция Gradle
P0 для проектов Gradle:
П1
Панель автоматически внедряет окружения P0 и P1 во время сборки.
Интеграция сканера SonarQube
В конце каждой сборки на панели запускается сканер SonarQube:
П2
Токен автоматически генерируется панелью. Заключение:
Отчет о качестве проекта в панели управления SonarQube.
Сводная информация на главном экране панели (количество критических ошибок, процент покрытия)
Результаты в виде комментариев к запросу на включение (если интеграция с GitHub активна)
##QualityGate
SonarQube позволяет вам определить Качество: сборки, не соответствующие определенным критериям, считаются неудачными. Пример:
Критическая ошибка: 0
Ошибка высокой степени серьезности: < 5.
Покрытие тестами: > 60%
Дублированные строки: < 3%
Рейтинг ремонтопригодности: А
Panel может остановить развертывание в случае сбоя Quality Gate. Плохой код не поступает в производство.
Постепенное принятие
Если в существующем проекте уровень покрытия составляет 30 %, вы не можете сразу же повысить уровень качества до 60 %. В то время как контроль качества требует 80% покрытия для «нового кода», он может быть менее строгим для «в целом». Комиссия поддерживает эту стратегическую установку.
Хранение и стоимость
Данные Nexus и SonarQube в объемах панели:
Кэш Nexus: ~5-20 ГБ (в зависимости от пакетов)
База данных SonarQube: ~1-5 ГБ (в зависимости от количества проектов)
Резервное копирование ежедневно
Срок хранения 30 дней
Никаких дополнительных затрат; Он использует существующий диск VPS.
Другие встроенные сервисы
Панельная системаДругие инструменты в каталоге услуг:
RabbitMQ, очередь сообщений
MinIO, объектное хранилище, совместимое с S3.
pgAdmin, веб-интерфейс PostgreSQL.
phpMyAdmin, веб-интерфейс MySQL.
Mongo Express, веб-интерфейс MongoDB.
Redis Commander, веб-интерфейс Redis.
Все по той же логике: устанавливай в один клик, пусть этим управляет панель.
Заключение
Теперь можно запускать инфраструктуру Enterprise DevOps за счет бюджета небольших команд. Важные сервисы, такие как Nexus и SonarQube, которые обычно требуют отдельной установки, можно установить одним щелчком мыши с помощью модуля systemServices панели VDS. Каждая сборка обеспечивает автоматический анализ качества и отправку артефактов — стандартные методы DevOps, которые повышают доверие к вашей команде.
Современный опыт развертывания на вашем собственном сервере, всего в одном сообщении.
Позвольте нам понять ваш сценарий использования и подготовить для вас соответствующую лицензию и план установки. Наше среднее время ответа составляет менее 24 часов.