Детальная информация

Название Разработка сервиса для автоматического развертывания отказоустойчивого GitLab: выпускная квалификационная работа магистра: направление 02.04.02 «Фундаментальная информатика и информационные технологии» ; образовательная программа 02.04.02_02 «Проектирование сложных информационных систем»
Авторы Дац Павел
Научный руководитель Шошмина Ирина Владимировна
Организация Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Выходные сведения Санкт-Петербург, 2024
Коллекция Выпускные квалификационные работы; Общая коллекция
Тематика программное обеспечение; автоматическое развертывание; высокая доступность; отказоустойчивость; software; automated deployment; high availability; fault tolerance
Тип документа Выпускная квалификационная работа магистра
Тип файла PDF
Язык Русский
Уровень высшего образования Магистратура
Код специальности ФГОС 02.04.02
Группа специальностей ФГОС 020000 - Компьютерные и информационные науки
DOI 10.18720/SPBPU/3/2024/vr/vr24-5908
Права доступа Доступ по паролю из сети Интернет (чтение)
Дополнительно Новинка
Ключ записи ru\spstu\vkr\33264
Дата создания записи 29.08.2024

Разрешенные действия

Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Группа Анонимные пользователи
Сеть Интернет

Данная работа посвящена разработке сервиса для автоматического развертывания отказоустойчивого Gitlab. В качестве задачи работы требовалось выбрать и настроить отказоустойчивую архитектуру для 3000 разработчиков и разработать сервис для ее автоматического развертывания. Такая архитектура необходима для поддержки бесперебойной работы разработчиков, а также для сокращения временных затрат на установку или переустановку отказоустойчивой архитектуры. В рамках работы были проанализированы различные подходящие архитектуры, такие как Bitbucket в связке с Jenkins, Gerrit в связке с Zuul и Gitlab Community Edition. Первая связка Bitbucket и Jenkins имеет достаточно много минусов, например: это два различных сервиса, которые должны подключаться друг к другу, из-за усложняется их поддержка по отдельности, частые обновления Jenkins приводили к несовместимости с Bitbucket, из-за чего приходилось обновлять и его версию, Jenkins имеет большое количество уязвимостей, которые устраняются достаточно долго. Gerrit и Zuul также имеют минусы, такие как невозможность подключить LDAP к Zuul без стороннего сервиса Keycloak. Gitlab в отличие от вышеописанных архитектур является одним сервисом, который поддерживает платные и бесплатные версии. После углубленного анализа и тестирования каждой из вышеописанных архитектур был выбран бесплатный Gitlab. Также в рамках работы на Python были разработаны дополнительные сервисы, доступные только в платной версии Gitlab, такие как сервис для автоматического слияния веток (Merge Bot) и сервис для автоматического отслеживания всех измененных файлов в каждом коммите разработчиков для принятия решения о необходимости проведения сборки.

This work is dedicated to the development of a service for automated deployment of a high availability Gitlab. The task of the work was to select and configure a high availability architecture for 3000 developers and develop a service for its automated deployment. Such architecture is necessary to support uninterrupted work of developers, as well as to reduce the time spent on installation or reinstallation of a high availability architecture. As a part of the work, various suitable architectures were analyzed, such as Bitbucket with Jenkins, Gerrit with Zuul, and Gitlab Community Edition. The first combination of Bitbucket and Jenkins has several drawbacks, for example: these are two different services that need to be connected to each other, which complicates their support separately, frequent updates of Jenkins led to incompatibility with Bitbucket, requiring updates to its version, Jenkins has a large number of vulnerabilities that take a long time to fix. Gerrit an Zuul also have drawbacks, such as the inability to connect LDAP to Zuul without the third-party Keycloak service. Unlike the above-mentioned architectures, Gitlab is a single service that supports both paid and free versions. After analysis and testing of each of the above architectures, the free Gitlab was chosen. Also, as part of the work, additional services were developed, available only in the pay version of Gitlab, in Python, such as a service for automatic branch merging (Merge Bot) and a service for automatic tracking of all changed files in each developer’s commit to make decision on the need for a build.

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все
Прочитать
Интернет Авторизованные пользователи СПбПУ
Прочитать
Интернет Анонимные пользователи

Количество обращений: 5 
За последние 30 дней: 1

Подробная статистика