Details

Title Разработка сервиса для автоматического развертывания отказоустойчивого GitLab: выпускная квалификационная работа магистра: направление 02.04.02 «Фундаментальная информатика и информационные технологии» ; образовательная программа 02.04.02_02 «Проектирование сложных информационных систем»
Creators Дац Павел
Scientific adviser Шошмина Ирина Владимировна
Organization Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Imprint Санкт-Петербург, 2024
Collection Выпускные квалификационные работы; Общая коллекция
Subjects программное обеспечение; автоматическое развертывание; высокая доступность; отказоустойчивость; software; automated deployment; high availability; fault tolerance
Document type Master graduation qualification work
File type PDF
Language Russian
Level of education Master
Speciality code (FGOS) 02.04.02
Speciality group (FGOS) 020000 - Компьютерные и информационные науки
DOI 10.18720/SPBPU/3/2024/vr/vr24-5908
Rights Доступ по паролю из сети Интернет (чтение)
Additionally New arrival
Record key ru\spstu\vkr\33264
Record create date 8/29/2024

Allowed Actions

Action 'Read' will be available if you login or access site from another network

Group Anonymous
Network Internet

Данная работа посвящена разработке сервиса для автоматического развертывания отказоустойчивого 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.

Network User group Action
ILC SPbPU Local Network All
Read
Internet Authorized users SPbPU
Read
Internet Anonymous

Access count: 5 
Last 30 days: 1

Detailed usage statistics