С 2015 года мы использовали в качестве git сервис Bitbucket, но недавно нам пришлось с ним попрощаться. Рассказываем, как искали замену Битбакету, почему выбрали Гитлаб и как мигрировали на новый сервис.
Предыстория
Очень давно для контроля разработки проектов мы начали использовать веб-сервис на системе контроля версий Git. Как-то исторически сложилось, что им стал Битбакет — проект Атлассиана.
В свое время на выбор Битбакета повлияла облачная инфраструктура Атлассиана с возможностью бесплатно создавать приватные репозитории кода (private) в неограниченном количестве и другими встроенными возможностями.
Какое-то время мы жили с Битбакетом и не знали бед: все работало исправно и мы были довольны.
И тут в марте Атлассиан объявил о том, что приостанавливает продажи лицензий в России.
Как говорится, кто предупрежден, тот вооружен. Мы начали постепенно искать другие варианты гита. И как выяснилось, не зря. В октябре 2022 года Алитласиан объявил, что уходит из РФ.
Как мы искали варианты
Смотрели альтернативы Битбакету среди отечественных и зарубежных сервисов.
Определили для себя критерии:
-
Цена
Сравнивали цену за подписку с теми возможностями, которые сервисы за эту цену предоставляют. -
Вероятность ситуации ухода с российского рынка.
Нам нужна была уверенность, что на новом гите мы сможем работать автономно и не будем зависеть от действий владельца. Мы искали гит, который может работать на локальном сервере, чтобы не повторилась ситуация с уходом с рынка. -
Управляемость.
В целом почти все варианты, которые мы рассматривали, обладают +/- одинаковым функционалом. Мы определили самый необходимый для нас:
-
Удобный интерфейс работы с кодом (тут все сервисы в целом одинаковые)
-
Наличие ci/cd
-
Наличие вики
-
Наличие issues
-
Наличие механизмов миграции данных
-
Понятный механизм управления командами и проектами
В итоге остановили выбор на коробочной версии GitLab CE
Причины:
-
Лежит на собственном сервере — встать и уйти не может
-
Делает регулярные резервные копии
-
Можно добавить неограниченное число пользователей
-
Имеет полный функционал облака
Настройка и миграция проектов
Сам процесс установки и настройки VPS и GitLab описывать бессмысленно, мануалов довольно много. Расскажем, какими этапами мы шли.
-
Вначале мы развернули портал и перенесли несколько проектов для теста в ручном режиме. В таком состоянии поработали несколько недель, убедились, что система стабильна.
-
Настроили интеграцию с Битбакетом для миграции всех проектов. В целом это заняло около дня.
-
Организовали планерку со всеми нашими специалистами, кто в этом участвует, и выбрали подходящий день для переезда, чтобы избежать сбоев в работе с проектами. Договорились на выходной день, когда и перенесли все проекты и подключили всех пользователей к системе.
-
С Битбакета мы удалили почти всех пользователей, чтобы не было проблем с дубликатами и выгрузкой не с того репозитория.
-
Написали небольшой мануал для разработчиков с конфигами под новый гит:
С понедельника начали работать на новом сервисе.
Какое понадобилось железо
Мы хостим свой проект на Beget. Чтобы использовать крайнюю версию Ubuntu и типовую установку, особых требований у Beget не было. К тому же у него даже есть вариант развернуть VPS сразу c GitLab.
Минимальные требования к серверу:
-
Сервер должен быть не менее 4 CPU, RAM: 6 Гб, NVMe: 80 Гб
-
Средняя нагрузка на процессор около 20%
В целом эти требования подходят для всех серверов. Но благодаря простому доступу к ресурсам нашего сервера, нас эти требования особо не беспокоят. Если система будет потреблять больше, мы легко можем увеличить мощность сервера.
Бекапирование
Без гита проблематично хранить рабочие версии кода и вносить изменения в проекты. Поскольку гит важен нам для работы, в автоматическом режиме мы ежедневно собираем резервную копию всей VPS. У нас эта функция есть на хостинге.
Риски
Поскольку Гитлаб приостановил продление лицензий в РФ, обновление GitLab CE до версии с расширенными функциями GitLab EE невозможно. Также это исключает использование платных функций версии GitLab CE.
История схожа с ситуацией про Атлассиан в марте 2022 года, но нас это не пугает.
Изменения в мире постоянно требуют усилий, чтобы адаптироваться к новым условиям. К изменениям мы привыкли, а вот без гита работать не можем.
Нюансы переезда
Особых сложностей с переездом не было. Напишем, на что еще стоит обратить внимание.
-
Поначалу несколько людей не попали в свои проекты. Решается быстро через панель администрирования.
-
Могут быть нюансы с доступами со стороны Битбакета, но решение этому можно легко нагуглить.
-
Сотрудникам нужно было принять новую систему и в процессе работы с проектами менять файл конфигурации подключения с Битбакета на Гитлаб.
-
Раньше цена на Биткакете была около 100$ в месяц. Сейчас мы платим около 1800 рублей в месяц, но это только за железо.
-
Мы ставили сразу обычную версию. Если вы не уверены, что сервис вам подойдет, используйте пробную 30-дневную версию.
-
Мы не использовали расширенные функции Битбакета раньше, поэтому то, что схожие платные функции GitLab стали недоступны, нас не коснулось.