Цифровой элемент
10 минут на чтение Отправь статью на почту?

Переезд на собственное хранилище репозиториев GitLab

В чем преимущества приватного Git репозитория? Что отличает GitLab, как установить площадку, ускорить конфигурацию и правильно настроить опции. О тонкостях gitlab переезда, а также о платформах-аналогах – в нашем материале.
Подписаться
53

Содержание

Причина смены ресурса

После введения санкций в 2022 году IT-компании России потеряли возможность работать со многими иностранными программными продуктами. В списке тех, кто свернул деятельность на нашей территории, такие гиганты, как Microsoft, Cisco, IBM, Adobe, Oracle, Autodesk, Figma, Intel, Google Cloud многие другие.

Также среди «отказников» – австралийская Atlassian с ее популярными сервисами: Jira и Bitbucket. В связи с этим российским разработчикам пришлось искать альтернативы облачных хостингов Git (сервис распределенного управления версиями кода). Один из возможных вариантов для размещения хранилищ – GitLab. Но здесь тоже не все так просто: в начале марта текущего года администрация ресурса намеревалась закрыть его для россиян, но ограничилась тем, что приостановила новый бизнес в России и Беларуси. С октября 2022 года будут введены дополнительные ограничения для всех пользователей. Как платформа работает сегодня, и какими альтернативными сервисами можно воспользоваться, если GitLab полностью прекратит работу в нашей стране, как это случилось с GitHub (принадлежит Microsoft).

Что такое GitLab

Задача GitLab и других аналогичных приложений – предоставить необходимый функционал для разработчиков, чтобы они могли совместно создавать программы с открытым исходным кодом. Над одним проектом могут работать удаленно неограниченное количество программистов из любых точек мира.

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

Git повышает производительность работы – весь цикл создания программного обеспечения идет непрерывно. Сервис включает обязательный функционал: программисты могут совместно писать коды, проверять и загружать их в репозитории, тестировать производительность, система обеспечивает безопасность продукта и т.д. Распределенная архитектура платформы напоминает дерево, где каждая группа разрабатывает свою ветку кода, а потом они объединяются в итоговый вариант (главную ветвь).

Программа GitLab создана в 2011 году выходцами из Украины, системщиками Дмитрием Запорожцем и Валерием Сизовым, как альтернатива GitHub. Ресурс был заявлен как open-source проект (приложение с открытым исходным кодом). В 2013 году, с подключением к команде голландского бизнесмена Сида Сибранджи, GitLab стала коммерческой площадкой. По информации, предоставленной компанией, число зарегистрированных клиентов на август 2021 года насчитывало более 30 млн человек, тех, кто активно пользуется сервисом по лицензии – более 1 миллиона. В штате – свыше 1400 сотрудников, работающих дистанционно по всему миру (65 стран и регионов).

Пользователи могут работать в GitLab по двум моделям:

  1. Самоуправляемая модель. Участники устанавливают программное обеспечение в собственном или гибридном облачном хранилище.
  2. SaaS модель. Работа с ПО через общедоступное облако, которым управляет GitLab. Хранилище размещается на облачной площадке Google.

И в том и другом варианте можно работать бесплатно и на коммерческой основе. GitLab предлагает три тарифа – свободный и два платных: Premium (19 $ за одного человека в месяц) и Ultimate (99 $ в месяц за пользователя).

Платформа GitLab.png
Платформа GitLab

Сразу отметим, что самоуправляемые программы, независимо от тарифного плана, не ограничены по объемам хранения и передачи данных.

У приложений с общедоступной базой хранения (Saas форма) есть лимиты и они зависят от выбранного тарифа. Так, при некоммерческом использовании – предоставляемый размер памяти – 5 Гб, в платных вариантах – от 50 до 250 Гб. Показатели CI/CD (непрерывные интеграция и доставка) варьируются от 400 минут в месяц (бесплатное пользование) до 50 тысяч минут в месяц в плане Ultimate. Для общедоступных проектов, созданных после 17 июля 2021 года, GitLab увеличил количество минут конвейера (CI/CD) в месяц: до 50 тысяч минут (бесплатно), 1 250 000 минут (Premium), 6 250 000 минут (Ultimate). Существует целый ряд различий между коммерческими и бесплатными предложениями. Подробнее о тарифах GitLab можно узнать на сайте компании. Для практического ознакомления со всеми возможностями площадки воспользуйтесь бесплатным тестовым периодом на 30 дней.

Возможности GitLab

Назовем основной функционал и инструменты:

  • Планирование и управление. Gitlab поддерживает различные типы группового взаимодействия, независимо от применяемого клиентом метода разработки: Waterfall, DevOps или др. Учитываются потребности как небольших сообществ, так и крупных предприятий. Гибкие механизмы планирования и руководства проектами поддерживают сквозную видимость, чтобы разработчики могли выстраивать, координировать и отслеживать взаимодействие на протяжении всего периода: от идеи до производства.

Механизмы: двухфакторная аутентификация, гранулярный доступ к объектам, поддержание токенов и SSO, объединение с пользовательскими каталогами, аналитика действий специалистов, отслеживание проблем и контроль за их реализацией, учет временных затрат и многое другое.

  • Создание. GitLab проводит консолидацию (объединение) исходного кода из различных рабочих вариаций. Ресурс поддерживает и управляет Git, не прерывая ход разработки. Применяемые инструменты: график коммитов (снимки файлов на тот или иной момент времени), запросы на объединение веток создания кода (merge-реквесты), редактирование, синхронизация версий с исходным параметром и т.д.
  • Тестирование/проверка. Благодаря поэтапной разработке кода (код-ревью), проверке и отслеживанию качества, программисты быстро находят ошибки и оперативно их исправляют, индивидуально настраивают варианты оценки качества. Система тестирует код в автоматическом режиме, назначает изменения для каждой версии.

В помощь – встроенные CI/CD, просмотр пайплайнов (документов с визуализацией всех этапов разработки), визуализация HTML-артефактов, предоставление отчетов по качеству кода, юнит-тестированию (тесты отдельных модулей исходного варианта), тесты на юзабилити (удобство взаимодействия с интерфейсом сайта), нагрузочное тестирование.

  • Сборка/Упаковка. GitLab обеспечивает безопасное хранение кастомных (сделанных по индивидуальным требованиям) образов контейнеров Docker. Примечательно, что для скачивания и загрузок образов не понадобятся дополнительные ресурсы, эта опция внедрена по умолчанию. Какие механизмы применяются: поддержка репозиториев C/C++, Composer (PHP), Maven (Java), NuGet, NPM и др.; работа с Docker, управление репозиторием через API и вебхуки (отправка уведомлений о событиях), кастомных контейнерных хранилищ и др.
  • Релизы. Технологии CI/CD эффективно автоматизируют сборку, автоматическое тестирование и установку релизов (обновленных вариаций программы). Благодаря этому на формирование релиза требуется минимум времени. Инструменты: запуск CI/CD в различных ОС (Windows, Mac, Linux), канареечный релиз (показ релиза небольшому числу участников), обеспечение безопасности пайплайнов, координация взаимодействия релизов (отслеживание, ассоциация с этапами, контроль доступа к окружению) и т.д.
  • Конфигурирование/ совокупность настроек программы. GitLab автоматизирует весь ход разработки приложения. Готовые шаблоны моделей не требуют сложных регулировок – на этапах сборки и развертывания надо просто добавить специфику приложения. Для изготовления можно использовать сервис c настроенными шаблонами GitLab CE Virtual Appliance. Механизмы: управление Kubernetes, ChatOps, бессерверные вычисления (serverless computing) через Knative.
  • Мониторинг. Клиенты GitLab могут отслеживать временные затраты на каждом этапе, контролировать эффективность работы, отсматривать метрики, анализировать влияние измененных кодов на производительность среды.

Более подробно о возможностях платформы можно узнать на сайте GitLab.

Этапы перехода

Расскажем об опыте gitlab переезда компании Winfox. Решение о смене сервера было принято после того, как в рамках введенных антироссийских санкций австралийская компания Atlassian закрыла облачное хранилище Bitbucket. Российский разработчик был вынужден искать доступные аналоги и выбрал GitLab CE. Выбор был обоснован наличием у сервиса необходимого функционала:

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

Установка GitLab на корпоративном сервере

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

Требования к серверу. Требуется не менее 8 Гб оперативной памяти, двухъядерный процессор с большим дисковым хранилищем. Попытки экономии скажутся негативным образом, если не сразу, то в дальнейшем.

Наличие домена или поддомена необходимо изначально.

Установка GitLab в Ubuntu. Для этого используйте инструкцию.

Инструкция по установке GitLab в Ubuntu
Инструкция по установке GitLab в Ubuntu, источник digitalocean.com.png

Https в ExternalURL. В обязательном порядке ставьте Https в ExternalURL (url-адрес, доступный внешним клиентам). Если поставить сразу при установке, то в будущем это избавит вас от проблем.

Настройки операционной системы. Если локали (набор параметров, включающий символы, язык, страну, часовой пояс и др.) на Linux не настроены должным образом, то возможно появление ошибок во время установления . А именно, вы не сможете поднять базу данных Postgres с локалью UTF-8.

Конфигурация

Главное в конфигурировании – по максимуму сократить время для полного возобновления работ на новом ресурсе.

Открытая регистрация. Если на главной странице оставить регистрацию открытой, это ускорит запись всех участников. При этом учет по определенному доменному имени e-mail следует ограничить. После того, как все члены команды получили одобрение и доступ, можно закрыть открытую регистрацию.

Импорт репозиториев

GitLab предоставляет детальную инструкцию, как импортировать репозитории из Bitbucket. Большая часть хранилищ переносится автоматически, но иногда возникают сложности с репозиториями в именах которых есть нижнее подчеркивание («_»). Символ заменяется пробелом и система не может их импортировать. В таком случае имя придется вводить вручную. Также следите, чтобы все репозитории копировались в полном объеме, если будет неполное копирование, то придется переносить ветки вручную. Эти моменты тормозят импортирование.

Инструкция по импортированию проекта в GitLab.png
Инструкция по импортированию проекта из Bitbucket в GitLab

Настройка вебхуков и других интеграций

После того, как были импортированы репозитории, необходимо настроить вебхуки (механизмы отправки данных о событиях в системе) и прочие интеграции.

Группировка вебхуков. Вначале надо правильно сгруппировать вебхуки – у одних команд они объединяются по проектам, у других – по платформам и стеку (языку программирования). Также группируются репозитории, после чего путь к ним меняется. Именно поэтому до группировки вебхуков не стоит раздавать доступы и скидывать url репозиториев другим участникам. В противном случае им придется заново менять у себя урлы.

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

Настройка вебхуков. Они используются для информирования в каналах дискорда (местах на общем сервере с ограниченным числом участников) о коммитах (изменениях), пушах (уведомлениях), merge-реквестах (запросах на слияние двух веток). Таким же образом настраиваются вебхуки для репозиториев. Примечательно, что в GitLab CE для настройки вебхуков не нужна дополнительная прослойка, как в Bitbucket Cloud. Весь функционал есть в коробочном решении.

Настройка пайплайнов – один из наиболее трудоемких и длительных процессов. Пайплайн визуализирует всю операцию по разработке: от идеи до конечного продукта. Пайплайн – это некий программный конвейер с непрерывным поэтапным производством. Чтобы настроить задачи для сборки, тестирования и упаковки кода, затем развернуть готовую сборку в облачное хранилище и т.д., понадобится до семи дней.

Дополнительные функции. Можно добавить несколько полезных опций:

  • Настроить уведомление руководства обо всех событиях в репозиториях через письма.
  • Провести интеграцию с Sentry – приложением для отслеживания и исправления сбоев в веб-приложениях в режиме реального времени и автоматическим введением их в GitLab.
  • Заводить информацию об инцидентах (ошибки, сбои) через почту.

Главные плюсы GitLab

Главные плюсы gitlab переезда – экономичность и расширенные возможности индивидуализации (кастомизации) приложения.

  • В чем экономия? Мощный сервер на GitLab обходится дешевле в полтора раза, чем Bitbucket Cloud. Причем, чем больше команда разработчиков, тем ощутимее разница.
  • В чем преимущества кастомизации? GitLab гибко настраивается под каждого пользователя в любой опции: от простой настройки до прописывания сложных интеграционных слоев.

Карта переезда на GitLab

Согласно опыту gitlab-переезда компании Winfox, чтобы продублировать весь функционал прежнего хранилища, включая настройку вебхуков и интеграции, понадобится 1-2 недели. Для возобновления работы всех участников команды на новых репозиториях будет затрачено в лучшем случае 2-3 часа, но более реальный тайминг – 5-6 часов.

Платформы-аналоги GitLab

Рассмотрим пять сервисов, которые можно использовать в качестве аналогов.

GitFlic

Платформа GitFlic.png
Платформа GitFlic

Сервис GitFlic создан российскими программистами для разработки и дальнейшего сопровождения исходного программного кода. На облаке можно размещать open-source и приватные приложения. Доступ к личным проектам только по приглашению, подключение – через криптографический идентификатор (SSH-ключ) для защиты от взломов. Хранение данных – в отечественных дата-центрах с уровнем надежности Tier 3. Этот стандарт означает, что оборудование позволяет проводить ремонт и обслуживание без остановки функционирования системы. Пока набор функций значительно отличается от GitLab, но авторы расширяют инструментарий: скоро будет доступен трекер задач, встроенные CI/CD, которые дают возможность оперативно менять код и получать обратную связь, анализ кода без запуска, режим контроля над ошибками, своя wiki система (энциклопедия данных от специалистов, работающих над программой), рассылка уведомлений в Telegram, автозапуск приложений и т.д.

GitFlic предлагает два тарифа:

  • бесплатный – для open-source и приватных программ с командой до 5 человек;
  • платный тариф (250 р. в месяц за участника) – для собственных проектов с работающей группой более 5 человек.

Gitee

Платформа Gitee.png
Платформа Gitee

Gitee создана на базе OSChina – крупнейшего китайского веб-ресурса с открытым исходным кодом (запущен в 2008 году). Сегодня на сервисе работают более 5 млн разработчиков и свыше 100 тысяч компаний. Число репозиториев превышает 10 млн. В Gitee есть весь необходимый функционал для разработки исходного кода. Также присутствует много социальных инструментов, которых нет на других Git ресурсах, например, прямой обмен сообщениями. В программу встроен текстовый редактор IDE, но большинство IT-специалистов предпочитают IDE другие популярные решения, например, IntelliJ или VSCode.

Launchpad

Платформа LaunchPad.png
Платформа LaunchPad

Launchpad разработана британской компанией Canonical – автором ОС Ubuntu. В 2015 году ресурс стал поддерживать Git-репозитории. Сегодня их насчитывается более 26 тысяч. Сервис полностью бесплатный. Система позволяет отслеживать ошибки, предоставляет обзоры кода, хостинг с использованием Bazaar и Git, создание и размещение пакетов Ubuntu и др.

Gods

Платформа Gods.png
Платформа Gods

Продукт китайских разработчиков Gods по дизайну напоминает GitHub. Программа написана на языке Go (компилируемый многопоточный язык программирования, разработанный Google). Gods просто установить и настроить, кроссплатформа запускается на любых веб-ресурсах, где Go может компилироваться (Windows, Linux, Mac, ARM и др.). Gods предъявляет невысокие требования к системным ресурсам (может работать на недорогом Raspberry Pi и даже на устройствах NAS). Имеет минимальное число зависимостей.

RhodeCode

Платформа RhodeCode.png
Платформа RhodeCode

RhodeCode принадлежит немцам. Площадка ориентирована на взаимодействие с компаниями, предоставляет репозитории неограниченных размеров. Помимо Git, к RhodeCode можно подключать систему Mercurial – для управления масштабными проектами и централизованную систему для того, чтобы управлять версиями кода – Subversion-репозитории. Есть бесплатный тестовый период на 30 дней.

Платформа предлагает:

  • Тариф для сообществ с бесплатным открытым исходным кодом не ограничивает количество участников.
  • Тариф для предприятий Enterprise – 75 $ в год за одного человека, состав команды – не менее 10 человек.
  • Облако RhodeCode (новинка) – от 8 $ за одного пользователя в месяц, минимум – 10 членов группы.

Надо отметить, что в будущем не исключено появление на российском рынке новых отечественных Git-платформ. В мае этого года правительство РФ озвучило намерение провести до апреля 2024 года эксперимент по разработке национального репозитория. Участниками эксперимента станут госорганизации: Минцифры, Росреестр, Пенсионный фонд, МВД и др. Оператора назначит Российский фонд развития информационных технологий (РФРИТ).

Вывод

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

Чтобы правильно установить и настроить GitLab обращайте внимание на следующие моменты: сервер должен быть не менее 8 Гб оперативной памяти, двухъядерный процессор с большим дисковым хранилищем, обязательно наличие домена или поддомена, обязательно ставить Https в ExternalURL, правильно настраивайте локали, при импорте репозиториев следите за корректностью имен (убирайте нижние подчеркивания), соблюдайте очередность (сперва группировка вебхуков и хранилищ, потом раздача доступов) и так далее.

Главные плюсы gitlab переезда: экономичность и широкие возможности кастомизации. В случае ухода GitLab из России, можно рассмотреть альтернативные варианты, например, GitFlic, Gitee, Gods, RhodeCode или Launchpad.

Специалисты digital-агентства «Цифровой Элемент» помогут организовать переезд на собственное хранилище репозиториев GitLab и проконсультируют по всем сложным моментам перехода на другой сервер.


Мне не нравится
Россия, Челябинская область, Челябинск, ул. Энтузиастов, 2, оф. 200 Телефон: +7 (351) 220-45-35

Блог

Микроразметка schema.org
Микроразметка schema.org

Schema.org – микроразметка, позволяющая структурировать данные на сайте для поисковых систем. С ее помощью поисковые системы понимают, какие данные...

28 мая 2019
95959
TОП-40 плагинов Figma
TОП-40 плагинов Figma

Для создания дизайнов и прототипов большинство современных дизайнеров использует Figma. Его основное преимущество перед другими графическими прогр...

11 марта 2021
93376
Как попасть на Яндекс.Карты, Google.Карты, 2GIS
Как попасть на Яндекс.Карты, Google.Карты, 2GIS

Если ваша компания ведет бизнес офлайн, размещение на Яндекс.Картах и Google и 2GIS поможет рассказать об этом потенциальным клиентам. Присутствие...

17 июля 2019
91872
404 ошибка – страница не найдена
404 ошибка – страница не найдена

404 ошибка (страница не найдена) – это ответ сервера, который возникает, когда сервер не может отобразить запрашиваемую страницу по указанному адре...

13 августа 2019
40119
Семантика сайта
Семантика сайта

Семантическое ядро – это набор фраз, соответствующих поисковым запросам пользователей в поисковых системах, которые характеризуют определенную тема...

21 октября 2019
17648
Как предоставить гостевой доступ к Яндекс Директ и Google Adwords
Как предоставить гостевой доступ к Яндекс Директ и Google Adwords

Контекстная реклама — один из самых простых и быстрых способов увеличения посещений веб-сайта. Особенностью этого инструмента является понятность р...

19 января 2021
13705
Как составить ТЗ на разработку сайта
Как составить ТЗ на разработку сайта

ТЗ (техническое задание) – очень полезный документ, в котором описаны все разделы сайта, все элементы страницы и функциональность всех модулей. Пол...

14 мая 2021
12699
Микроразметка Open Graph
Микроразметка Open Graph

Open Graph – стандарт микроразметки, который позволяет формировать превью сайта при публикации в социальных сетях. Стандарт Open Graph был р...

5 ноября 2019
10458
Сброс кеша DNS в Google Chrome
Сброс кеша DNS в Google Chrome

Для сброса кеша DNS в Google Chrome: Введите в адресной строке браузера chrome://net-internals/#dns и нажмите кнопку Clear host cache; Зат...

31 января 2020
9489
Анализ сайта с помощью Яндекс.Метрики
Анализ сайта с помощью Яндекс.Метрики

Яндекс.Метрика – инструмент анализа аудитории сайта. Метрика позволяет сегментировать данные, определять целевую аудиторию сайта, достигать целей и...

20 декабря 2019
8886
Золотой партнер<br>1С-Битрикс
Золотой партнер
1С-Битрикс
Сертифицированное агентство <br>Яндекс.Директ
Сертифицированное агентство
Яндекс.Директ
Сертифицированное агентство <br>Google.AdWords
Сертифицированное агентство
Google.AdWords
Региональный партнер <br>Ru-center
Региональный партнер
Ru-center
Золотой партнер  <br>Битрикс24
Золотой партнер
Битрикс24