Статья:

АНАЛИТИЧЕСКИЙ ОБЗОР СИСТЕМЫ НЕПРЕРЫВНОЙ ИНТЕГРАЦИИ CI/CD

Конференция: LXXII Студенческая международная научно-практическая конференция «Технические и математические науки. Студенческий научный форум»

Секция: Технические науки

Выходные данные
Наумкина С.О., Флоринская М.К. АНАЛИТИЧЕСКИЙ ОБЗОР СИСТЕМЫ НЕПРЕРЫВНОЙ ИНТЕГРАЦИИ CI/CD // Технические и математические науки. Студенческий научный форум: электр. сб. ст. по мат. LXXII междунар. студ. науч.-практ. конф. № 5(72). URL: https://nauchforum.ru/archive/SNF_tech/5(72).pdf (дата обращения: 26.11.2024)
Лауреаты определены. Конференция завершена
Эта статья набрала 1 голос
Мне нравится
Дипломы
лауреатов
Сертификаты
участников
Дипломы
лауреатов
Сертификаты
участников
на печатьскачать .pdfподелиться

АНАЛИТИЧЕСКИЙ ОБЗОР СИСТЕМЫ НЕПРЕРЫВНОЙ ИНТЕГРАЦИИ CI/CD

Наумкина Софья Олеговна
студент, МИРЭА - Российский технологический университет, РФ, г. Москва
Флоринская Мария Константиновна
студент, МИРЭА - Российский технологический университет, РФ, г. Москва
Петрова Анна Александровна
научный руководитель, преподаватель, МИРЭА - Российский технологический университет, РФ, г. Москва

 

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

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

Автоматизированное тестирование и интеграция кода на регулярной основе помогают выявлять и устранять конфликты и ошибки в коде, а также предотвращать попадание проблем в продукцию. Кроме того, использование инструментов CI/CD способствует улучшению коммуникации и сотрудничества в команде разработчиков, тестировщиков и операционных специалистов, обеспечивая доступ к актуальной версии кода и результатам тестирования. Автоматизированное тестирование позволяет проводить тесты быстро и эффективно, автоматически проверяя функциональность и производительность кода. Интеграция кода на регулярной основе позволяет обнаруживать и исправлять конфликты в коде, которые могут возникать при одновременной работе нескольких разработчиков над одним проектом.

Мониторинг производительности и тестирование в начале разработки помогают выявлять и устранять проблемы с производительностью, что позволяет принимать меры по их исправлению и повышению качества разрабатываемых продуктов. Это важный этап в разработке, который позволяет обнаружить и устранить проблемы с производительностью еще до того, как они станут критическими. Мониторинг производительности позволяет отслеживать работу приложения в реальном времени и выявлять узкие места, где производительность может быть улучшена.

В современном программном обеспечении непрерывная интеграция (CI) и непрерывное развертывание (CD) являются неотъемлемыми практиками. Среди многочисленных систем CI/CD Jenkins и GitLab CI/CD выделяются как два наиболее популярных выбора.

Jenkins — это система CI/CD с открытым исходным кодом, известная своей высокой настраиваемостью и обширным сообществом. Его гибкость позволяет адаптировать его к уникальным потребностям каждой команды разработки. Множество плагинов расширяет функциональность Jenkins, охватывая широкий спектр задач CI/CD. Jenkins предоставляет возможность автоматизировать процессы развертывания и тестирования приложений. Он интегрируется с репозиториями кода и выполняет заданные шаги автоматически при каждом изменении кода. Это позволяет обнаруживать и исправлять ошибки, а также проверять производительность приложения на ранних стадиях разработки. Благодаря своей гибкости и настраиваемости, Jenkins может быть адаптирован к уникальным потребностям каждой команды разработки. Кроме того, Jenkins имеет обширное сообщество пользователей и разработчиков, которое активно создает и поддерживает плагины для расширения функциональности системы. Эти плагины позволяют решать различные задачи CI/CD и удовлетворять потребности команды разработки.

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

Хотя оба инструмента автоматизируют процессы CI/CD, GitLab CI/CD предлагает более комплексное решение. Он не только охватывает основные функции CI/CD, но и включает в себя инструменты управления кодом, контроля версий и отслеживания ошибок. Это делает GitLab CI/CD идеальным выбором для команд, стремящихся к единому решению для всей разработки программного обеспечения. Jenkins доступен как для облачного размещения, так и для самостоятельного развертывания на выделенном сервере. GitLab CI/CD, с другой стороны, предлагает более гибкие варианты развертывания. Он поддерживает облачное размещение, самостоятельное развертывание и локальное развертывание, предоставляя командам возможность выбора решения, наилучшим образом соответствующего их требованиям.

Оба инструмента интегрируются с различными сторонними инструментами разработки. Jenkins выделяется большим сообществом плагинов, что делает его идеальным выбором для команд с уникальными требованиями к интеграции. GitLab CI/CD, благодаря своей интеграции с платформой GitLab, предлагает тесную интеграцию с популярными инструментами, такими как Jira, Slack и Kubernetes. Как Jenkins, так и GitLab CI/CD являются мощными системами CI/CD. Jenkins предлагает гибкость и конфигурируемость, в то время как GitLab CI/CD обеспечивает более комплексное решение, интегрированное с другими инструментами GitLab. При выборе между ними команды должны учитывать свои уникальные требования к автоматизации CI/CD, интеграции и развертыванию.

Выбор системы CI/CD зависит от индивидуальных требований и предпочтений. GitLab CI/CD предлагает комплексное решение, включающее управление кодом, контроль версий и отслеживание ошибок, что делает его идеальным для команд, которым требуется единая платформа для всего процесса разработки. Jenkins лучше подходит для команд, которым требуется гибкое решение, адаптированное к их уникальным потребностям.

Таким образом, использование инструментов CI/CD является важным для повышения эффективности проектов и решения проблем с производительностью. Они позволяют автоматизировать процессы развертывания и тестирования, сокращать время разработки, обеспечивать непрерывную интеграцию, повышать качество и надежность приложений, улучшать коммуникацию и сотрудничество в команде, а также преодолевать проблемы, связанные с производительностью.

 

Список литературы:
1. Arachchi S., Perera I. Continuous integration and continuous delivery pipeline automation for agile software project management // 2018 Moratuwa Engineering Research Conference (MERCon). 2018. С. 156-161. 
2. Что такое CI/CD? Разбираемся с непрерывной интеграцией и непрерывной поставкой [Электронный ресурс]. URL: https://habr.com/ru/companies/otus/articles/515078/ (дата обращения: 06.05.24).
3. About GitLab [Электронный ресурс] URL: https://about.gitlab.com/ (дата обращения: 06.05.2024).
4. Berguerand M. Gitlab Intégration Continue avec «On Target Testing». Haute Ecole d'Ingénierie, 2019.