GitLab — известная платформа для совместной разработки ПО, которая сочетает в себе систему управления версиями (Git), баг-трекер, CI/CD и прочие фичи DevOpsSec.
Изначально Дмитрий Запорожец и Валерий Сизов создали эту систему для собственных нужд, потом выпустили под открытой лицензией — и в конце концов построили процветающий бизнес, который основан на разделении лицензий: «общественная» Community Edition[1] и «корпоративная» Enterprise Edition с рядом дополнительных плюшек[2] на GitLab или на своём хостинге[3].
История успеха компании увенчалась выходом на биржу NASDAQ в сентябре 2021 года. Согласно форме S-1[4], у GitLab около 30 млн зарегистрированных пользователей, примерно миллион из них платят за лицензии. Рыночная капитализация примерно $7,4 млрд[5].
После покупки GitHub корпорацией Microsoft некоторые разработчики стали внимательнее смотреть в сторону GitLab как альтернативного и независимого решения для хостинга[3] кода и совместной разработки. Всё-таки размещать свои проекты на серверах Microsoft не всем приятно. На сайте GitLab опубликована документация[6] по импорту проектов с GitHub, Bitbucket и других хостингов кода.
При переходе на GitLab необязательно выбирать фирменный SaaS. Всегда есть возможность развернуть полноценную версию Enterprise Edition на собственном хостинге[3], на своём сервере, не оплачивая никакой абоненткой платы. Как вариант, можно выбрать бесплатный тариф GitLab или один из официальных тарифных планов.
Недавно компания GitLab повысила стоимость за свои услуги до $19 за одного пользователя. В то же время свой GitLab Enterprise Edition хоть на сто пользователей, хоть на тысячу, обойдётся в цену одной виртуалки.
▍ Ценовая политика GitLab
«Корпоративная» лицензия Enterprise Edition отличается от общественной Community Edition главным образом двумя параметрами:
техническая поддержка;
дополнительные платные опции (точнее, там тоже есть бесплатный тариф GitLab Free, но Enterprise Edition позволяет переключиться на платную версию GitLab Premium в любой момент).
Посмотрим, чем отличается GitLab на своём хостинге[3] (условно бесплатный) от платной подписки GitLab. Сравним конкретные цены с официального сайта. Первый план — абсолютно бесплатный фримиум GitLab, второй — образ Gitlab[7] на VPS[3], третий — GitLab Premium ($19 в месяц).
Примечание. Для образа GitLab на своём VPS[3] рекомендуется сервер со следующими минимальными характеристиками.
CPU:
1 ядро — минимальная конфигурация, до 100 пользователей;
2 ядра — рекомендуемая конфигурация, до 500 пользователей;
4 ядра — до 2000 пользователей;
8 ядер — до 5000 пользователей.
RAM:
8 ГБ — рекомендуемая конфигурация, до 100 пользователей;
16 ГБ — до 2000 пользователей;
32 ГБ — до 4000 пользователей;
64 ГБ — до 8000 пользователей.
Цены в таблице рассчитаны в соответствии с этими минимальными техническими характеристиками, то есть одноядерный CPU для 5–50 пользователей (4–8 ГБ RAM), SSD 20 ГБ для 5 пользователей, SSD 40 ГБ для 50 пользователей и SSD 100 ГБ для 500 пользователей (здесь уже 16 ГБ RAM). Во всех случаях выбран дата-центр в Москве.
Хотя по умолчанию в маркетплейсе указан двухъядерный сервер с 4 ГБ RAM и SSD на 20 ГБ, но на этапе заказа эти характеристики можно изменить. Новые пользователи могут тестировать сервер[8] в течение 3 дней бесплатно.
Нужно ещё добавить, что есть несколько проприетарных функций[9], которые доступны только на премиальном тарифе Ultimate и только на фирменном SaaS. Часть исходного кода GitLab остаётся в закрытой версии, то есть не выкладывается в опенсорс.
Вероятно, для некоторых компаний и разработчиков будет достаточно лимитов GitLab Free. Однако чтобы не ограничивать себя по лимитам и не рисковать блокировкой услуги со стороны провайдера, можно мигрировать на свой сервер Enterprise Edition. Если же нужна техподдержка и дополнительные функции — выбрать настоящую фирменную версию от GitLab, хотя это обойдётся несколько дороже.
▍ Проприетарные фичи GitLab
Список проприетарных функций в облачном сервисе GitLab может постоянно меняться и точно не известен. Теоретически, это небольшой список, а все эти функции со временем могут переходить в опенсорс, то есть в публичную версию Community Edition, которая выпускается под свободной лицензией MIT.
По функциональности Community Edition практически не отличается от версии Enterprise Edition. Но в фирменной подписке Premium/Ultimate компания подключает в версию EE некоторые платные функции, в том числе на проприетарном коде. Эти функции можно посмотреть в описании тарифов GitLab Premium и GitLab Ultimate[9] или отфильтровать по выбранному тарифному плану.
В официальной документации сказано: «Версия GitLab Community Edition (CE) доступна свободно по лицензии MIT Expat. Версия GitLab Enterprise Edition (EE) включает дополнительные функции, скорее полезные для организаций с более чем 100 пользователями. Чтобы использовать EE и получать официальную поддержку, требуется подписка».
Поддерживаются также установки на Kubernetes при помощи конфигураций GitLab Helm[22] и GitLab Operator[23]. Можно установить инстанс GitLab не только на своём сервере, но и у любого крупного облачного провайдера, да вообще на любой системе из образа Docker[24].
Вся инфраструктура компании GitLab и её фирменный SaaS размещается на мощностях Google Cloud. Кстати, это интересный пример компании с капитализацией в миллиарды долларов, у которой даже нет центрального офиса. Все её сотрудники работают удалённо, а все серверы находятся в облаке. Вот что такое корпорация в эпоху киберпанка.
▍ Выводы
Исходя из таблицы выше, можно сделать вывод, что до пяти пользователей с минимальными потребностями выгоднее всего бесплатный тариф GitLab Free. Но только до тех пор, пока вы не упираетесь в лимиты по объёму хостинга[3], трафику и операциям CI/CD. В этом случае самый простой вариант — развернуть недорогой образ на VPS[3] и спокойно использовать его практически без ограничений на количество пользователей (лимит существует, но он исключительно технический — сколько выдержит железо), трафик и размер репозиториев (опять же, ограничен чисто технически в рамках подключённого хранилища).
В принципе можно развернуть образ Gitlab даже на сервере дома или в офисе — это будет вообще бесплатно, не считая стоимости сервера, обслуживания, интернет-трафика и электричества. Но по сравнению с GitLab Premium, а тем более Ultimate, даже коммерческий VPS[3] можно считать практически даровым. В расчёте на 500 пользователей разница в расходах получается более чем в сто раз ($84 против $9500 в месяц).
Хотя на своём сервере не будет хватать проприетарных функций GitLab и отсутствует техподдержка, но в любом случае 11 марта 2022 года GitLab приостановил[25] продажу корпоративных и платных сервисов в России и Беларуси для новых клиентов, при этом отказался[26] блокировать старых клиентов, а также пользователей бесплатных тарифов.
Несмотря на довольно гуманную политику GitLab к пользователям из России, свой хостинг[3] — всё-таки это более надёжный и стабильный вариант, особенно в условиях санкций. Не говоря уже об экономии финансовых ресурсов.