Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: LXXIV Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 11 февраля 2019 г.)

Наука: Технические науки

Секция: Технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Бабаев В.С. ИССЛЕДОВАНИЕ СОВРЕМЕННЫХ CI/CD ИНСТРУМЕНТОВ И ВНЕДРЕНИЕ ИХ В КРУПНЫЕ WEB-ПРОЕКТЫ НА ПРИМЕРЕ JENKINS // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. LXXIV междунар. студ. науч.-практ. конф. № 2(73). URL: https://sibac.info/archive/technic/2(73).pdf (дата обращения: 27.01.2022)
Проголосовать за статью
Конференция завершена
Эта статья набрала 1 голос
Дипломы участников
Диплом Выбор редакционной коллегии

ИССЛЕДОВАНИЕ СОВРЕМЕННЫХ CI/CD ИНСТРУМЕНТОВ И ВНЕДРЕНИЕ ИХ В КРУПНЫЕ WEB-ПРОЕКТЫ НА ПРИМЕРЕ JENKINS

Бабаев Владимир Сергеевич

магистрант 2 курса, кафедра автоматики НГТУ,

РФ, г. Новосибирск

Научный руководитель Гунько Андрей Васильевич

канд. технических наук, доцент НГТУ,

РФ, г. Новосибирск

Введение

В настоящее время CI/CD (Continuous Integration, Continuous Delivery) занимают неотъемлемую часть в IT компаниях. Набор инструментов CI/CD позволяет ускорить процесс разработки и снижает трудозатраты команды путем автоматизации. Continuous Integration(непрерывная интеграция) позволяет автоматизировать сборки проекта для быстрого выявления проблем. Тем самым предоставляя актуальную и готовую к тестам версию. Continuous Delivery (непрерывная доставка) реализует доставку обновлений для конечного пользователя. При частом использовании данной технологии можно легко поддерживать актуальную версию и проще отслеживать ошибки благодаря тому, что объем изменений небольшой.

Актуальной проблемой для исследования является возможность объединения функционала разнообразных платных и бесплатных инструментов CI/CD в одну систему.

Получение подобной системы предоставит возможность использования универсального сборщика кода.

Постановка задачи

Предметом разработки является скрипты для Jenkins.

Целью работы является исследование современных CI/CD инструментов и внедрение в крупные web-проекты на примере Jenkins, с обязательным условием использование системы Windows.

Поставлены следующие задачи:

  • обзор аналогичных методов и продуктов;
  • реализация в web-проекте;
  • тестирование в реальных условиях;
  • разработка итогового решения.

Сравнение инструментов CI/CD

Jenkins

Инструмент CI с открытым исходным кодом, написанный на Java и выпущенный под лицензией MIT. Первоначально являлся частью проекта Hudson, принадлежавшего компании Oracle. Впервые был выпущен 2 февраля 2011 года.

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

Jenkins pipeline(трубопровод) доступен в виде плагина с 2016 года. Использует язык Groovy, хранимый в удаленном репозитории или же в локальных файлах Jenkins. Основной минус Jenkins заключается в том, что возможность определять groovy-скрипты вне репозитория и использование определенных плагинов для реализации нужного функционала, затрудняют внедрение на других системах Jenkins.

GitLab CI

Инструмент CI, встроенный в GitLab, написанный на на Ruby and Go и выпущены под лицензией MIT. Изначально был выпущен как самостоятельный проект. В дальнейшем интегрирован в основное программное обеспечение GitLab в сентябре 2015 года.

Процесс CI/CD в GitLab CI определяется отдельным файлом в самом хранилище кода с использованием синтаксиса конфигурации YAML. Для выполнения задач используется изолированные виртуальные машины, называемые «GitLab CI runners». Они являются кроссплатформенными.

Главный минус GitLab CI заключается в том, что он привязан к GitLab, что не позволяет использовать другие репозитории. Плюсом является то, что для настройки среды CI/CD не требуется установка и изучение дополнительного инструментария. Нужно всего лишь включить несколько параметров в веб-интерфейсе, зарегистрировать «GitLab CI runner» и добавить файл с синтаксисом конфигурации YAML в репозиторий.

Buildbot

Инструмент CI, написанный на Python и выпускаемый под лицензией GPL. Выпущен в 2003 году в качестве альтернативы проекту Tinderbox в Mozilla. Первоначально являлся инструментом автоматизации тестирования сборки.

Основной минус и одновременно плюс в том, что конфигурация Buildbot полностью написана на Python, что значительно сложнее, чем в других системах, но в то же время это дает больше возможностей для разработки идеального рабочего процесса.

Drone

Современный инструмент CI/CD, основанный на pipeline, написан на Go и выпускаемый под лицензией Apache. Весь рабочий процесс основан на Docker контейнерах. Имеет встроенную поддержку для настройки сертификатов SSL с Let's Encrypt.

Как и в GitLab CI, для конфигурации задач используется синтаксис YAML в репозитории.

Как и в Jenkins, присутствует система плагинов, но представлена она в виде специальных контейнеров Docker, в которых предварительно сконфигурированы задачи для рабочего процесса. Это является несравненным плюсом. Но Docker-контейнеры не всегда удобно использовать на Windows системах.

Заключение

В ходе краткого сравнения, проведенного в данной статье, получено представление об итоговом инструменте: это полностью функционирующая система Continuous Integration, основанная только на открытом программном обеспечении, готовая к моментальной миграции в другие web-проекты и позволяющая множеству разработчиков без создания критических ситуаций доставлять свой код на web-сервер.

 

Список литературы:

  1. GitLab Continuous Integration (GitLab CI/CD) [Электронный ресурс] // Gitlab. – Режим доступа: https://docs.gitlab.com/ce/ci/  – Заглавие с экрана. – (Дата обращения: 02.12.2018).
  2. Jenkins Documentation [Электронный ресурс] // Jenkins. – Режим доступа: https://jenkins.io/doc/ – Заглавие с экрана. – (Дата обращения: 02.12.2018).
  3. Drone Documentation [Электронный ресурс] // Drone. – Режим доступа: https://docs.drone.io/ – Заглавие с экрана. – (Дата обращения: 02.12.2018).
  4. Buildbot Documentation [Электронный ресурс] // Buildbot. – Режим доступа: http://docs.buildbot.net/current/index.html – Заглавие с экрана. – (Дата обращения: 02.12.2018).
  5. Выстраиваем процесс разработки и CI pipeline, или как разработчику стать DevOps для QA [Электронный ресурс] // Хабрахабр. – Режим доступа: https://habr.com/post/330366/ – Заглавие с экрана. – (Дата обращения: 02.12.2018).
  6. Феншуйная автоматизация CI & CD с помощью Jenkins и Jira [Электронный ресурс] // Хабрахабр. – Режим доступа: https://habr.com/company/yamoney/blog/328092/ – Заглавие с экрана. – (Дата обращения: 02.12.2018).
Проголосовать за статью
Конференция завершена
Эта статья набрала 1 голос
Дипломы участников
Диплом Выбор редакционной коллегии

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

Форма обратной связи о взаимодействии с сайтом