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 | |
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 |
|
Internet | Authorized users SPbPU |
|
Internet | Anonymous |
|
Access count: 5
Last 30 days: 1