DevOps• Инженерам  10 апреля 2025 • 10 мин чтения

Jenkins – что это такое и зачем он нужен

Jenkins — это инструмент для автоматизации разработки и развертывания ПО, простыми словами — серверная система, которая помогает разработчикам быстрее и удобнее доставлять код в продакшн.

Почему нужна автоматизация?

В мире программирования постоянно приходится вносить изменения в код. Программисты добавляют функции, исправляют ошибки, тестируют обновления. Чтобы не делать это вручную, используются системы CI/CD (непрерывная интеграция и развертывание). Для таких задач создан Jenkins.

Для чего нужен Jenkins:

  • Автоматизация сборки. Разработчики загружают код в репозиторий (напр., GitHub), а Jenkins автоматически компилирует его.
  • Тестирование. Каждый новый кусочек кода можно сразу прогонять через тесты, чтобы избежать ошибок.
  • Развертывание. Готовое приложение можно сразу выкатывать на сервер, не тратя время на ручные операции.
  • Гибкость. Jenkins поддерживает тысячи плагинов, позволяющих настроить процесс под конкретные задачи.

Кто использует?

Jenkins востребован в командах разработчиков, DevOps-специалистами, тестировщиками и компаниями, которые хотят ускорить процесс выпуска продуктов. Особенно полезен в больших проектах, где работает много людей, и важно автоматизировать повторяющиеся задачи.

Основные преимущества:

Параметр

Описание

Открытый исходный код
Бесплатен, с активным сообществом
Гибкость
Можно адаптировать под любые задачи с помощью плагинов.
Автоматизация
Исключает рутину, уменьшает вероятность ошибок.
Поддержка разных языков
Работает с Java, Python, PHP, JavaScript и другими.
Интеграции
Подключается к Git, Docker, Kubernetes и другим инструментам DevOps.
Jenkins — это инструмент, автоматизирующий рутину разработки, сокращая время между написанием кода и его развертыванием. В следующих разделах мы разберём, как он работает и зачем нужен в процессах CI/CD.
Дарим демодоступ к обучению на 3 дня, чтобы вы познакомились с материалами и спикерами курса!
Начните бесплатно изучать Jenkins

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

Перед тем как глубже погрузиться в Jenkins, важно понять, что такое CI/CD и почему он играет столь важную роль в процессах разработки.

Что такое CI/CD?

CI/CD (Continuous Integration / Continuous Deployment) — это методология разработки ПО, которая помогает автоматизировать процессы тестирования, сборки, развертывания. Давайте разберёмся, что означает каждый из этих терминов.

  • Continuous Integration (CI) – непрерывная интеграция
Разработчики часто вносят изменения в код, все изменения нужно регулярно объединять в общий проект. CI позволяет автоматически проверять, не сломал ли новый код приложение, запуская тесты и сборку при любом изменении.

  • Continuous Delivery (CD) – непрерывная доставка
После успешной проверки изменений код автоматически подготавливается для выпуска. Вручную или автоматически его можно развернуть на тестовом или боевом сервере.

  • Continuous Deployment (CD) – непрерывное развертывание
Это следующий уровень автоматизации, когда новый код автоматически выкатывается в продакшн без участия человека.

Как CI/CD помогает командам разработки?

Раньше разработчики вручную проверяли и тестировали код, это занимало много времени, могло привести к ошибкам. CI/CD решает эту проблему:

  • Минимизирует ошибки — автоматическое тестирование предотвращает сбой в работе приложения.
  • Ускоряет разработку — код сразу проходит проверку, может быть развернут быстрее.
  • Повышает стабильность продукта — можно быстро откатываться к предыдущим версиям.
Автоматизирует рутину — инженеры тратят меньше времени на ручные проверки.

Роль Jenkins в CI/CD

Jenkins — популярный инструмент для реализации CI/CD. Все рутинные процессы он берет на себя:

  • Следит за изменениями в коде (например, в GitHub, GitLab).
  • Автоматически запускает тесты и сборку.
  • Разворачивает обновления на сервере.
  • Уведомляет команду о результатах.

Jenkins в CI/CD: примеры работы

Допустим, три программиста вносят изменения в код. Без автоматизации кто-то может случайно удалить важную часть функционала или загрузить код с ошибками. Jenkins решает эту проблему:

  1. Разработчик коммитит код в Git.
  2. Jenkins автоматически запускает тесты.
  3. Если тесты успешны — создается новая версия программы.
  4. Код разворачивается на тестовом сервере.
  5. При успешной проверке обновление выкатывается в продакшн.

CI/CD делает процессы разработки быстрее, надежнее и удобнее для команды. Jenkins играет в этом центральную роль, контролирует и автоматизирует все этапы работы с кодом.

Освоить «CI/CD с Jenkins»  проще на реальных примерах. На курсе Слёрма много практики и никакой воды. Вы сможете намного ускорить цикл разработки и внедрить полезные инструменты.

Что такое Jenkins

История

Jenkins появился в 2004 году как часть проекта Hudson. Его создал Коске Кавагути (Kohsuke Kawaguchi), разработчик из компании Sun Microsystems. Hudson быстро стал популярным, но после поглощения Sun компанией Oracle возникли разногласия в управлении проектом. В 2011 году разработчики отделились и создали независимый форк — Jenkins.

Сегодня Jenkins используется тысячами компаний по всему миру.

Как работает Jenkins?

Jenkins действует как оркестратор, который управляет процессами сборки, тестирования, развертывания кода. Он получает команды, выполняет их и сообщает о результатах.

Принцип работы:

  1. Разработчик вносит изменения в код, затем отправляет их в репозиторий (Git, GitHub, GitLab, Bitbucket).
  2. Jenkins отслеживает изменения, автоматически запускает процесс сборки.
  3. Во время сборки выполняются тесты, проверяющие работоспособность кода.
  4. Если тесты пройдены успешно, код упаковывается в артефакт (напр., Docker-образ).
  5. 5. Jenkins развертывает обновление на тестовом или боевом сервере.

Требования к сети

  • Контроллер (Master) – основная часть системы, управляющая процессами.
  • Агенты (Agents) – исполняют задачи по сборке, тестированию, развертыванию.
  • Пайплайны (Pipelines) – последовательность шагов автоматизации.

Пример простого Jenkinsfile

Jenkins позволяет управлять процессами с помощью Jenkinsfile – специального сценария, описывающего шаги сборки. Например:
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git 'https://github.com/example/repo.git'
}
}
stage('Build') {
steps {
sh 'mvn clean install'
}
}
stage('Test') {
steps {
sh 'mvn test'
}
}
stage('Deploy') {
steps {
sh 'scp target/*.jar user@server:/deploy'
}
}
}
}

В этом примере Jenkins выполняет четыре этапа:

  • Checkout – скачивает код из репозитория.
  • Build – собирает проект с помощью Maven.
  • Test – запускает тесты.
  • Deploy – копирует собранный артефакт на сервер.

Почему Jenkins популярен?

Преимущество

Описание

Открытый исходный код
Бесплатен и развивается сообществом.
Масштабируемость
Можно настраивать под любые проекты.
Гибкость
Работает с Docker, Kubernetes, AWS и другими технологиями.
Большое количество плагинов
1800+ расширений для интеграции с любыми сервисами.

Сценарии применения Jenkins

Jenkins широко используется в IT-индустрии, чтобы автоматизировать различные процессы разработки. Рассмотрим основные сценарии его применения.Jenkins широко используется в IT-индустрии, чтобы автоматизировать различные процессы разработки. Рассмотрим основные сценарии его применения.

1. DevOps

Jenkins — неотъемлемая часть DevOps-процессов, поскольку он помогает автоматизировать весь жизненный цикл ПО.

  • CI/CD-пайплайн: автоматическое тестирование и развертывание кода.
  • Интеграция с Docker и Kubernetes: управление контейнерами и оркестрация.
  • Мониторинг и логирование: поддержка интеграции с Prometheus, Grafana, ELK.

Пример пайплайна для развертывания в Docker:

pipeline {
agent any
stages {
stage('Checkout') {
steps {
git 'https://github.com/example/repo.git'
}
}
stage('Build Image') {
steps {
sh 'docker build -t myapp:latest .'
}
}
stage('Push to Registry') {
steps {
sh 'docker push myrepo/myapp:latest'
}
}
stage('Deploy to Kubernetes') {
steps {
sh 'kubectl apply -f deployment.yaml'
}
}
}
}

2. Автоматизация тестирования

Jenkins автоматически запускает юнит-тесты, интеграционные тесты и тесты производительности, интегрируясь с инструментами вроде JUnit, Selenium, Gatling.

Пример конфигурации для запуска тестов Selenium:

pipeline {
agent any
stages {
stage('Run Selenium Tests') {
steps {
sh 'python3 -m pytest tests/'
}
}
}
}

  • Обеспечивает контроль качества кода.
  • Позволяет автоматически проверять работоспособность новых функций.
  • Уменьшает вероятность ошибок при развертывании.

3. Управление сборками

Jenkins может управлять процессами сборки ПО с использованием инструментов Maven, Gradle, NPM.

Пример пайплайна для сборки Java-приложения:

pipeline {
agent any
stages {
stage('Checkout') {
steps {
git 'https://github.com/example/java-app.git'
}
}
stage('Build') {
steps {
sh 'mvn clean package'
}
}
stage('Archive') {
steps {
archiveArtifacts artifacts: 'target/*.jar', fingerprint: true
}
}
}
}

  • Автоматизирует компиляцию и сборку проекта.
  • Сохраняет артефакты для последующего развертывания.
  • Позволяет легко откатываться к предыдущим версиям.

Вывод

Jenkins — универсальный инструмент, который можно адаптировать под любые задачи автоматизации. Он помогает DevOps-инженерам, тестировщикам и разработчикам ускорять выпуск новых версий ПО.
Освойте Jenkins - запускайте CI/CD как профессионал!
На курсе CI/CD с Jenkins от Слёрм вы научитесь автоматизировать процесс интеграции и поставки.

Установка

Установка Kafka на Ubuntu — один из самых стабильных и удобных способов для локальной разработки. Здесь меньше ограничений, чем в Windows, а управление сервисами можно полностью автоматизировать через systemd.

1. Установка Jenkins на Windows

  1. Скачайте установочный файл с официального сайта:
https://www.jenkins.io/download/

2. Запустите установщик и следуйте инструкциям.
3. После установки запустите сервис Jenkins через services.msc.
4. Откройте браузер и перейдите по адресу:

>
> http://localhost:8080
>

5. Введите временный пароль из файла:

>
> C:\Program Files\Jenkins\secrets\initialAdminPassword
>

6. Выберите рекомендуемые плагины и создайте администратора.

2. Установка Jenkins на Linux (Ubuntu/Debian)

1. Обновите список пакетов и установите Java:

>
> sudo apt update && sudo apt install -y openjdk-11-jdk
>

2. Добавьте и установите репозиторий Jenkins:

>
> wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
> echo "deb http://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list
> sudo apt update && sudo apt install -y jenkins
>

3. Запустите сервис:

>
> sudo systemctl start jenkins
>

4. Проверьте, что Jenkins работает:

>
> sudo systemctl status jenkins
>

5. Откройте браузер, перейдите по адресу:

>
> http://localhost:8080
>

6. Найдите временный пароль в файле:

>
> sudo cat /var/lib/jenkins/secrets/initialAdminPassword
>

7. Завершите настройку через веб-интерфейс.

3. Установка Jenkins через Docker

Если вы хотите быстро развернуть Jenkins в контейнере, используйте Docker:

1. Установите Docker (если он ещё не установлен):

>
> sudo apt update && sudo apt install -y docker.io
>

2. Запустите контейнер Jenkins:

>
> docker run -d -p 8080:8080 -p 50000:50000 --name jenkins jenkins/jenkins:lts
>

3. Проверьте логи для получения пароля:

>
> docker logs jenkins
>

4. Откройте браузер:

>
> http://localhost:8080
>

Первичная настройка Jenkins

После установки Jenkins предложит установить плагины и создать администратора:

  • Установите рекомендованные плагины — они понадобятся для базовой работы.
  • Создайте учётную запись администратора — введите логин и пароль.
  • Настройте пути для сборок — укажите рабочую директорию.

После этого Jenkins готов к работе!

Заключение

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

  1. Что такое Jenkins и зачем он нужен — это система для автоматизации процессов разработки.
  2. Как Jenkins вписывается в CI/CD — автоматизирует тестирование, сборку, развертывание кода.
  3. Основные сценарии использования — активно применяется в DevOps, тестировании, управлении сборками.
  4. Как установить — мы рассмотрели установку на Windows, Linux и Docker.

Что дальше?

Если вы хотите освоить Jenkins и научиться применять его в реальных проектах, мы рекомендуем пройти «подробный курс».

Изучите Jenkins в деталях — Слёрм поможет вам стать специалистом в области автоматизации DevOps.

Начните автоматизировать разработку уже сегодня!

Статью подготовили

Редакция Слёрма
Понравилась статья? Будем рады вашему лайку и репосту — вдруг кому-то тоже пригодится:)
Оцените статью

Читайте также: