Стабильный CI/CD — это не миф, от Nexus-Jenkins до Github Packages-Actions

В этой статье представлен обзор и выводы о том, почему миграция с собственного хостинга CI/CD на SaaS CI/CD — это правильный путь!

Давайте сначала разберемся в истории.

Инженеры-программисты из поколения X, поколения Millennials наверняка хотя бы раз в жизни работали с Jenkins (в те времена это был Hudson). Java Stack CI/CD развивался вокруг Jenkins. Большинство из нас хотя бы раз использовали Jenkins. И Artifactory позже Nexus прекрасно дополняют друг друга.

Как может выглядеть наша установка Jenkins и Nexus на собственном хостинге.

Jenkins в основном используется для CI/CD и в некоторых случаях как пакетный процессор. Для удовлетворения этого требования правильным выбором будут саморазмещающиеся экземпляры Jenkins, работающие на AWS или саморазмещающиеся pods на Kubernetes(K8S), в основном в конфигурации MASTER -> SLAVE (агенты).

Экземпляр Nexus также может быть размещен на AWS или в K8S.

Некоторые из многих проблем с этой конфигурацией и некоторые решения для устранения некоторых из них.

Проблема 1. Безопасность

  • Решение 1: Первый подход к обеспечению безопасности — использование VPN. Конечно, это обеспечивает безопасность за счет производительности и накладных расходов на поддержание экземпляра VPN.
  • Решение 2: Для преодоления проблем с Open VPN можно использовать сертификаты на стороне клиента. Эта настройка включает в себя написание небольшого кода, который создаст сертификат и отправит информацию в репозиторий сертификатов. Но поддержание сертификата является довольно мучительной задачей.

Проблема 2. Случайные перезапуски Jenkins, автоматические обновления

  • Решение: Отключение функции автоматического обновления.

Проблема 3. Устаревшие плагины

  • Решение: Сообщество Jenkins в наши дни не растет, как другие сообщества, поэтому некоторые плагины не поддерживаются и не работают с новыми версиями Jenkins. Поэтому имеет смысл придерживаться устаревших плагинов.

Проблема 4. Конвейерные сборки

  • Снова поддержка и написание Jenkinsfile без особой документации — это довольно сложно.

Проблема 5. Обслуживание Nexus — это кошмар

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

И последнее, но не менее важное: Jenkins может подвести в самый нужный момент. Поскольку большинство команд полагаются на Jenkins для CI/CD, эти проблемы могут расти в геометрической прогрессии, а их обслуживание отнимает у DevOps драгоценное время.

Чтобы облегчить всем жизнь, решением может стать переход на GitHub Actions и GitHub Packages!

Как может выглядеть CI/CD с помощью GitHub Action.

Преимуществом перехода на GitHub Action является использование YAML вместо различных способов определения задания в Jenkins. Эти файлы YAML хранятся в папке .github в соответствующем проекте, что дает право собственности на потоки владельцу проекта/модуля. Ниже приведены некоторые примеры рабочих процессов, которые можно определить.

Некоторые выводы после перехода на GitHub Actions and Packages.

  • Стабильный CI /CD — это не миф!
  • Теперь проект CI/CD поддерживается соответствующей командой, а не командой DevOps.
  • Сэкономлено много времени разработчиков на устранение проблем с Jenkins и Nexus.
  • Экономия ресурсов, так как вместо собственного хостинга используется экземпляр GitHub.
  • Экономия средств, поскольку самая базовая подписка на GitHub предоставляет доступ к Actions и Packages.
  • Стабильность и эффективность по сравнению с Jenkins и Nexus.
  • Большой рынок.
  • Большое сообщество разработчиков, все больше и больше бесплатных действий (например, Slack Notification и т.д.).
  • Очень короткое время миграции.

Заключение

Миграция на GitHub Actions and Packages может спасти от многих разочарований, связанных с комбинацией Jenkins-Nexus. Это даст вам возможность попробовать новейшие инструменты, а не использовать старые и устаревшие технологии. Этот процесс может быть не идеальным для всех, но он решает большинство проблем с Jenkins.

Как я уже говорил, стабильный CI/CD — это не миф!

Ссылки

  • Переход с Jenkins на GitHub Actions
  • Введение в GitHub Actions
  • Github Actions или Jenkins? Правильный выбор для вас
  • Уведомление из Slack
  • Торговая площадка GitHub
  • Фото Aleksejs Bergmanis с сайта Pexels

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *