Что такое Jenkins и зачем нужен CI/CD

Рейтинг: 40.9% · 8 голосов
Подробный курс по Jenkins и CI/CD: установка и настройка, плагины и Configuration as Code, конвейеры (pipeline) и Jenkinsfile, declarative и scripted, агенты, Docker и Kubernetes, общие библиотеки на Groovy, безопасность и credentials, интеграции (SonarQube, артефакты), траблшутинг. Актуально на 2026.
Ответить
Аватара пользователя
Andrey_CICD
Сообщения: 47
Зарегистрирован: 11 май 2026, 05:31

Что такое Jenkins и зачем нужен CI/CD

Сообщение Andrey_CICD »

Оглавление курса (47)
  1. Что такое Jenkins и зачем нужен CI/CD (вы здесь)
  2. Jenkins в 2026: версии, экосистема и сравнение с GitLab CI и GitHub Actions
  3. Архитектура Jenkins: контроллер, агенты, узлы и исполнители
  4. Установка Jenkins: пакеты, Docker и Kubernetes
  5. Первичная настройка Jenkins: мастер, плагины, пользователи
  6. Плагины Jenkins: установка, обновление и ключевой набор
  7. Configuration as Code (JCasC): настройка Jenkins декларативно
  8. Конвейеры Jenkins и Jenkinsfile: pipeline as code
  9. Scripted против Declarative: два синтаксиса конвейера
  10. Структура конвейера: node, stage, steps и первый pipeline
  11. Генератор сниппетов, запуск конвейера и Replay
  12. Типы заданий Jenkins: Freestyle, Pipeline, Multibranch и Organization
  13. Декларативный конвейер: структура pipeline, agent, stages
  14. agent, environment и переменные в конвейере
  15. tools, options, parameters и triggers в декларативном конвейере
  16. stages, parallel и matrix: организация этапов
  17. Условное выполнение when и блок post
  18. Триггеры сборки: webhook от GitHub, SCM polling и расписание
  19. Параметры сборки и пользовательский ввод
  20. Управление потоком: timeout, retry, sleep и waitUntil
  21. Параллелизм и блокировки: parallel, lock, milestone
  22. Постобработка и уведомления о результате сборки
  23. Groovy для Jenkins: основы скриптового конвейера
  24. Скриптовый конвейер: логика, циклы и функции
  25. Общие библиотеки Jenkins: Shared Libraries
  26. Подключение и загрузка общих библиотек
  27. Шаги оболочки: sh, bat, powershell и коды возврата
  28. Переменные среды, withEnv и рабочие пространства
  29. Работа с файлами, артефактами и отпечатками
  30. Сборка проектов в конвейере: Maven, Gradle, npm
  31. Качество кода: SonarQube и покрытие тестами
  32. Управление артефактами: публикация в Nexus и Artifactory
  33. Docker в Jenkins: образы как агенты сборки
  34. Сборка и публикация Docker-образов из конвейера
  35. Jenkins в Kubernetes: динамические pod-агенты
  36. Развёртывание в Kubernetes из конвейера
  37. Безопасность Jenkins: аутентификация и матрица прав
  38. Учётные данные Jenkins: credentials в конвейере
  39. Безопасность сценариев: Groovy sandbox и Vault
  40. Уведомления и отчёты: email, Slack, Telegram, HTML
  41. Blue Ocean и интерфейс Jenkins в 2026
  42. Автоматизация Jenkins: CLI, REST API и script console
  43. Поиск и устранение неисправностей: читаем логи конвейера
  44. Типичные ошибки конвейера: сериализация и неутверждённый код
  45. Эксплуатация Jenkins: бэкап, обновление, масштабирование
  46. Конвертация и миграция: от Freestyle к Jenkinsfile
  47. Итог: сквозной CI/CD конвейер и Jenkins против альтернатив в 2026
Представь типичную картину. Пятница, вечер, релиз. Кто-то из команды собирает проект руками на своём ноутбуке, заливает архив на сервер по SSH, перезапускает сервис и уходит домой. В понедельник выясняется, что в сборку не попал один коммит, тесты никто не гонял, а на проде лежит версия, которую невозможно воспроизвести. Знакомо? Именно эту боль и убирает CI/CD, а одним из главных инструментов для него уже больше десяти лет остаётся Jenkins.

В этом вводном уроке разберёмся: что такое Jenkins простыми словами, зачем вообще нужен подход CI/CD, что Jenkins реально делает под капотом, откуда он взялся и какое место занимает в 2026 году рядом с GitLab CI и GitHub Actions. Кода тут будет немного - это концептуальная глава, фундамент под остальной курс. Но один маленький Jenkinsfile в конце мы всё-таки посмотрим, чтобы ты увидел, к чему мы идём.

Что такое Jenkins простыми словами

Если совсем коротко, Jenkins - это open-source сервер автоматизации, написанный на Java. Он бесплатный, ставится у тебя (on-premise или в облаке) и умеет по сигналу запускать любую последовательность действий: собрать проект, прогнать тесты, упаковать артефакт, выкатить на сервер, отправить уведомление в чат. Ты описываешь, что должно произойти, а Jenkins честно это выполняет - каждый раз одинаково, без человеческого фактора.

Когда спрашивают, что такое jenkins, проще всего представить его как очень дисциплинированного робота-сборщика. Ему всё равно, пятница сейчас или ночь, устал он или нет. Пришёл новый коммит в git - робот проснулся, собрал, проверил, доложил о результате. В этом и есть суть: Jenkins это про то, чтобы вынуть рутину из рук людей и отдать машине.

Технически Jenkins состоит из двух типов узлов. Контроллер (controller) - это мозг: веб-интерфейс, планировщик задач, хранилище конфигурации и истории сборок. Агенты (agent) - это руки: отдельные машины или контейнеры, на которых реально выполняется работа. Раньше эти роли называли master и slave, но это устаревшая терминология - сейчас правильно говорить контроллер и агент. Маленький проект может жить на одном контроллере, большой - раскидывает нагрузку на десятки эфемерных агентов, поднимающихся в Kubernetes на время сборки. До такой схемы мы дойдём в отдельном уроке курса.

Изображение

Зачем нужен CI/CD и при чём тут jenkins ci cd

CI/CD - это две связанные практики. Расшифруем без воды.

CI (Continuous Integration, непрерывная интеграция) - это привычка вливать изменения в общую ветку часто, маленькими порциями, и на каждое вливание автоматически собирать проект и гонять тесты. Идея в том, что чем мельче и чаще интеграции, тем раньше ты ловишь конфликт или сломанный тест. Не раз в месяц перед релизом, когда сто коммитов схлестнулись и непонятно, чей именно сломал сборку, а сразу - на конкретном коммите.

CD прячет за собой сразу два понятия. Continuous Delivery (непрерывная доставка) - это когда любая прошедшая проверки сборка в любой момент готова к выкатке, а нажатие кнопки деплоя остаётся за человеком. Continuous Deployment (непрерывное развёртывание) идёт дальше: успешная сборка уезжает на прод вообще без ручного вмешательства.

Зачем всё это? Ради быстрой обратной связи. Сломал что-то - узнал об этом через пять минут от Jenkins, а не через две недели от пользователя. Связка ci cd jenkins превращает релиз из стрессового события в скучную рутину, которая случается по десять раз в день и никого не пугает. А ещё это воспроизводимость: сборка идёт по описанному в коде сценарию, одинаково у всех, и ты всегда знаешь, что именно лежит на проде.

Что именно делает Jenkins: триггеры, сборка, тесты, деплой

Рабочий цикл устроен предсказуемо. Сначала срабатывает триггер - событие, запускающее работу. Чаще всего это push в репозиторий: git-хостинг дёргает webhook, и Jenkins стартует. Бывают триггеры по расписанию (cron), по завершению другой задачи или просто по кнопке вручную.

Дальше Jenkins выполняет пайплайн - описанную тобой цепочку шагов. Типичный набор:
  • забрать свежий код из git (checkout);
  • собрать проект (компиляция, сборка образа, упаковка артефакта);
  • прогнать тесты - юнит, интеграционные, линтеры;
  • опубликовать артефакт в реестр или хранилище;
  • выкатить на нужное окружение - stage, потом prod;
  • сообщить результат команде в Slack, Telegram или почтой.
И ключевой момент 2026 года: всё это описывается кодом в файле Jenkinsfile, который лежит прямо в репозитории рядом с проектом. Это называется pipeline as code - конвейер как код. Он версионируется вместе с проектом, проходит ревью, откатывается. Вот как выглядит минимальный рабочий declarative-пайплайн, чтобы ты понимал масштаб:

Код: Выделить всё

pipeline {
    agent any

    stages {
        stage('Checkout') {
            steps {
                checkout scm
            }
        }
        stage('Build') {
            steps {
                sh './gradlew clean build -x test'
            }
        }
        stage('Test') {
            steps {
                sh './gradlew test'
            }
            post {
                always {
                    junit 'build/test-results/test/*.xml'
                }
            }
        }
        stage('Deploy') {
            when {
                branch 'main'
            }
            steps {
                sh './deploy.sh staging'
            }
        }
    }

    post {
        failure {
            echo 'Сборка упала - чиним'
        }
    }
}
Не пугайся синтаксиса, разбирать его построчно мы будем дальше в курсе. Сейчас важно увидеть структуру: блоки stage идут сверху вниз, в каждом - конкретные шаги, а условие when пускает деплой только из ветки main. Это и есть тот самый declarative pipeline, ставший стандартом.

Краткая история: Hudson, Jenkins, Jenkins 2

Чтобы понимать, почему пайплайны - это так важно, нужна щепотка истории. Проект родился в 2004 году под именем Hudson внутри Sun Microsystems. После того как Oracle поглотила Sun, сообщество разругалось с новым владельцем из-за прав на торговую марку и в 2011 году форкнуло проект под именем Jenkins. Hudson тихо умер, Jenkins расцвёл.

До 2016 года Jenkins был кликательным: задачи (job) настраивались мышкой через веб-формы, а сложную логику костыляли цепочками отдельных job. Это плохо версионировалось и быстро превращалось в хаос. Переломным стал Jenkins 2 (2016): он сделал пайплайны как код первоклассной возможностью. Появился Jenkinsfile, появился declarative-синтаксис чуть позже - и центр тяжести сместился с мышки на код в репозитории. Именно к этой главной фиче Jenkins 2 мы и будем возвращаться весь курс.

Кстати про Blue Ocean - графический редактор пайплайнов из той же эпохи. В книгах 2018-2019 годов его расхваливают, но в 2026 строить на нём ничего не стоит: проект давно в режиме поддержки, новых фич не получает, только редкие заплатки по безопасности. Считай его наследием. Современный UI Jenkins вырос и без него.

Место Jenkins в 2026: стандарт энтерпрайза рядом с GitLab CI и GitHub Actions

Расставим точки честно, без фанатизма. За годы рядом с Jenkins выросли сильные конкуренты. GitHub Actions - дефолт для всего, что живёт на GitHub, особенно для стартапов и open-source. GitLab CI - встроенный CI прямо в GitLab, очень удобный, если вся разработка уже там, и быстро растущий в энтерпрайзе. Оба - YAML-конфиг в репозитории, минимум возни с инфраструктурой.

При этом Jenkins никуда не делся. По свежим данным 2026 года он остаётся костяком CI/CD примерно в 80% компаний из Fortune 500 - там, где сложные пайплайны, строгие требования к данным и многолетние вложения в инфраструктуру. Да, его доля среди новых проектов снижается год к году, и нередко в одной компании уживаются оба подхода: новые микросервисы на GitHub Actions, тяжёлые легаси-конвейеры на Jenkins. Главные козыри Jenkins - полный контроль (он крутится на твоём железе, данные не уходят наружу), огромная экосистема плагинов под что угодно и гибкость, которой не всегда хватает облачным конкурентам.

Из важного для актуальности: современный Jenkins требует свежей Java. Линия LTS начала 2026 года (ветка 2.541.x) работает на Java 17, при этом это последний LTS с поддержкой Java 11, а еженедельные сборки уже подняли планку до Java 21. Так что разворачивая Jenkins сегодня, ставь Java 17 как минимум, а лучше сразу Java 21 - дальше требования только растут. И ещё две вещи из 2026, которых нет в книге 2018 года и которые мы разберём отдельно: JCasC (Configuration as Code - настройка всего Jenkins одним yaml-файлом, без кликанья мышкой) и эфемерные агенты в Kubernetes, поднимающиеся под каждую сборку и исчезающие после неё.

Мини-лаба: что повторить руками

Кода тут пока минимум, лаба - на размышление и подготовку:
  • Возьми последний релиз своего проекта (или любого знакомого) и честно выпиши по шагам, что делается руками: собрать, протестировать, выложить. Это твой будущий пайплайн.
  • Отметь, на каком из шагов чаще всего что-то ломается или забывается. Эти места CI/CD закроет первыми.
  • Зайди на jenkins.io, найди раздел загрузок и посмотри, какая сейчас актуальная LTS-версия и какая Java ей нужна. Сверь с тем, что написано выше.
  • Открой Jenkinsfile из примера и для себя проговори словами, что делает каждый stage. Если получилось - базовую идею declarative pipeline ты уже ухватил.
Контрольные вопросы
  • Чем отличается Continuous Integration от Continuous Delivery и Continuous Deployment?
  • Какие два типа узлов есть в архитектуре Jenkins и за что отвечает каждый? Как они назывались раньше?
  • Что такое Jenkinsfile и почему подход pipeline as code лучше настройки задач мышкой?
  • Почему в 2026 году Jenkins всё ещё силён в энтерпрайзе, хотя GitHub Actions и GitLab CI отъедают долю?
Итог

Jenkins - это бесплатный сервер автоматизации на Java, который берёт на себя сборку, тесты и доставку кода, убирая ручную рутину и давая команде быструю обратную связь. CI/CD - это практика частых интеграций и готовых к выкатке сборок, а Jenkins - один из главных движков для неё. Ключевая фишка современного Jenkins 2 - пайплайны как код в файле Jenkinsfile, и именно их мы будем подробно собирать дальше. В следующем уроке ставим Jenkins и запускаем первую сборку своими руками.
👍3 ❤️1 🔥 😄 🤔1
Аватара пользователя
kubenerd
Сообщения: 1
Зарегистрирован: 14 май 2026, 02:52

Re: Что такое Jenkins и зачем нужен CI/CD

Сообщение kubenerd »

Наконец-то дошло, в чем разница между Continuous Delivery и Continuous Deployment, везде их в кучу валят. Спасибо что развели на пальцах.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
todd2g
Сообщения: 1
Зарегистрирован: 22 май 2026, 17:35

Re: Что такое Jenkins и зачем нужен CI/CD

Сообщение todd2g »

Вопрос по версиям: у нас на работе до сих пор крутится Jenkins на Java 11, нормально что пора переезжать на 17 или можно еще подождать? Не хочется сломать прод.
👍2 ❤️ 🔥 😄 🤔1
Ответить
Следующая глава →
Jenkins в 2026: версии, экосистема и сравнение с GitLab CI и GitHub Actions

Все главы курса «Jenkins: конвейеры CI/CD от основ до продакшена»

Поделиться темой: ✈ Telegram VK
Похожие запросы: что такое jenkins простыми словамикак установить jenkins на linux и в dockerпервичная настройка jenkins после установкикакие плагины jenkins нужны новичкукак настроить агенты jenkins для сборкиcicd для начинающих с чего начать на jenkins

Вернуться в «Jenkins: конвейеры CI/CD от основ до продакшена»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость