DevOps

Jenkins

Jenkins це відкритий автоматизаційний сервер для CI/CD із величезною екосистемою плагінів і пайплайнами як код.

Що це

Jenkins виріс із проєкту Hudson, який створив Косуке Каваґуті, і з 2011 року розвивається під іменем Jenkins. Це один із найстаріших і найпоширеніших серверів CI. Він працює на Java, ставиться на власні сервери й керується через веб-інтерфейс.

Пайплайни описують у Jenkinsfile (Groovy-подібна мова, декларативний чи скриптовий синтаксис). Збірки виконують agents (вузли), а функціональність розширюють плагінами: їх понад тисячу, від Git і Docker до Kubernetes і Slack.

Сила Jenkins у гнучкості та повному контролі, слабкість у ручному супроводі: оновлення, плагіни та безпеку треба підтримувати самому.

Коли брати

  • Потрібен повний контроль над CI на власній інфраструктурі.
  • Є складні, нестандартні пайплайни чи легасі-інтеграції.
  • Вже є великий парк Jenkins у компанії.

Коли не варто

  • Починаєте новий проєкт на GitHub чи GitLab: вбудований CI простіший.
  • Немає часу підтримувати сервер, плагіни та їхні оновлення.

Ключові поняття

Jenkinsfile
Опис пайплайна як код, що лежить у репозиторії поруч із проєктом.
Controller / agent
Controller керує пайплайнами, agents виконують збірки на окремих вузлах.
Plugin
Розширення, що додає інтеграції та можливості в Jenkins.
Declarative pipeline
Структурований синтаксис pipeline з stages і steps, простіший за скриптовий Groovy.

Приклад

Декларативний Jenkinsfile: агент у Docker, три етапи та дія при помилці.

Питання на співбесіді

  1. 1. Що таке Jenkinsfile?

    Це файл у репозиторії, що описує пайплайн як код. Він може бути декларативним (структуровані stages) чи скриптовим (Groovy). Так пайплайн версіонується разом із кодом.

  2. 2. Навіщо потрібні agents?

    Controller лише керує, а збірки виконують agents на окремих машинах чи в контейнерах. Це дозволяє розподілити навантаження й мати різні середовища збірки.

  3. 3. Які головні мінуси Jenkins?

    Вимагає адміністрування, залежить від плагінів із різною якістю, а оновлення й безпека лежать на вас. Через це нові проєкти часто обирають вбудований CI платформи.

Логотипи належать їхнім власникам і використані лише для ідентифікації. Іконки: Simple Icons (CC0), Devicon (MIT).

Розділи платформи