Site icon IT Education Center Blog – блог навчального центру DevOps – ITEDU by NETFORCE Group

Що таке Jenkins?

Jenkins — це безоплатний та один із найпопулярніших open-source інструментів для автоматизації процесів розробки та розгортання ПЗ. Він повністю базується на Java і використовується для налаштування безперервної інтеграції (CI) та безперервного розгортання (CD).

Історія появи Jenkins

У 2004 році Косуке Кавагуті, інженер з компанії Sun Microsystems, прагнув поліпшити процес створення коду та виправлення багів й створив сервер автоматизації Hudson.

У 2011 році, Oracle (яка придбала Sun Microsystems) мали суперечності зі спільнотою відкритих кодів на цьому проєкті. Оскільки Oracle мала інші плани для розвитку Hudson, команда під керівництвом Кавагуті вирішила зробити форк і створити новий проєкт, який отримав назву Jenkins. 

Коли Jenkins відокремився, він почав швидко здобувати популярність серед розробників і продовжує робити це зараз. Відкритий код і наявність великої спільноти стали основними чинниками успіху. Jenkins став одним із найпопулярніших інструментів для CI/CD.

Основні функції Jenkins

  1. Безперервна інтеграція (CI)
    Jenkins автоматично перевіряє код. Запускає збірку і тести після кожної зміни, щоб знайти помилки.
  2. Безперервне розгортання (CD)
    Автоматично розгортає нові версії програм у потрібних середовищах.
  3. Масштабування через агентів
    Розподіляє завдання між кількома комп’ютерами для швидшої роботи.
  4. Інтеграція з іншими інструментами
    Інструмент підключається до різних сервісів і платформ.
  5. Пайплайни
    Jenkins створює автоматизовані етапи для збирання, тестування та деплою програм.
  6. Моніторинг і сповіщення
    Показує статус збірки та повідомляє, якщо щось пішло не так.
  7. Гнучкість налаштувань
    Є можливість зберігати налаштування у вигляді скриптів і використовувати їх знову.
  8. Безпека та доступ
    Можна налаштовувати доступи до документів для окремих осіб.

Як працює Jenkins?

Jenkins працює як сервер автоматизації на Windows, macOS, Unix і, найчастіше, на Linux. Для його запуску потрібна Java (Oracle JRE або OpenJDK) версії 8 або новішої. Найпоширеніший спосіб розгортання — запуск як Java-сервлет на сервері Jetty, хоча можна використовувати й Apache Tomcat або інші сервери додатків. Його можна інсталювати через .war-файл, пакет для відповідної ОС, Homebrew, Docker-образ або навіть з вихідного коду.

Коли Jenkins запускається вперше, він автоматично створює адміністративний акаунт з унікальним паролем, який потрібно ввести для початкового налаштування. Всі конфігурації та дані зберігаються у локальному сховищі у вигляді звичайних текстових файлів. Основний файл конфігурації — Jenkinsfile, який визначає етапи виконання процесів. Він використовує синтаксис, схожий на JSON, де кожен крок оформлений у фігурних дужках і описаний відповідною командою. Його можна написати вручну або створити через графічний інтерфейс.

Коли розробник додає зміни до репозиторію, Jenkins автоматично завантажує оновлений код, забирає його, запускає тести та виконує необхідні процеси. Перед тим як випустити оновлення в продакшн, код може бути протестований у спеціальному середовищі (UAT). Якщо всі перевірки проходять успішно, зміни зливаються в основну гілку, і Jenkins автоматично розгортає оновлення без ручного втручання.

Типи інсталяцій Jenkins

Інструмент можна встановити різними способами, залежно від масштабу та потреб проєкту.

Найпопулярніші кейси використання Jenkins

Ось декілька відомих організацій, які використовують Jenkins:

IBM: глобальна технологічна компанія, що застосовує інструмент для автоматизації своїх процесів розробки та забезпечення якості.

Cognizant Technology Solutions: провідна IT-компанія, яка використовує Jenkins для оптимізації своїх CI/CD-процесів.

JPMorgan Chase Bank, N.A.: один з найбільших банків у світі, що впровадив Jenkins для автоматизації фінансових додатків та сервісів.

CGI: міжнародна IT-консалтингова компанія, що використовує інструмент для автоматизації процесів розробки та тестування.

Visa: платіжна система світового масштабу, що застосовує Jenkins для підтримки та розвитку своїх платіжних сервісів.

Northrop Grumman: американська аерокосмічна та оборонна компанія, яка використовує Jenkins для автоматизації розробки складних систем.

Переваги для DevOps

  1. Інструмент самостійно запускає збірку, тестування та розгортання після змін у коді, що прискорює випуск оновлень і зменшує ризик людських помилок.
  2. Jenkins підтримує інтеграцію з різними інструментами. Якщо тобі потрібна автоматизація, то він працює з Git, GitHub, GitLab, Bitbucket та Jira. Для контейнеризації та оркестрування застосовуй Docker, Kubernetes чи OpenShift. У конфігураційному менеджменті інтегрується з Ansible, Terraform, Puppet, а для тестування та контролю якості – Selenium, JUnit і SonarQube.
  3. Завдяки розподіленій архітектурі можна запускати завдання на різних вузлах, що забезпечує швидке виконання навіть для великих команд.
  4. Використання Jenkinsfile та декларативних пайплайнів дає змогу легко змінювати налаштування, зберігати їх у репозиторії разом з кодом і переносити між різними середовищами.
  5. Jenkins може автоматично запускати тести після кожного оновлення коду.

Популярні плагіни Jenkins

Корисні посилання:

Dobrianska Olena
Exit mobile version