Тупой вопрос №3. Что такое GitLab

13 February 2025

GitLab — это опенсорсный сервис для хранения и управления Git-репозиториями с лисичкой на логотипе. Короче, место, где разрабы держат свой код, чтобы пушить туда свои ветки, мержить изменения, получать апдейты от команды — весь этот стандартный гитовский движ.

И вот тут первый жирный плюс перед GitHub: GitHub — чисто облако, хостится у Microsoft. GitLab же можно крутить как в облаке, так и у себя — on-premise. Это дико ценят компании, которые хотят, чтобы их код лежал у них под боком, а не в каком-то там облаке.

Естественно, на одном хранении кода всё не заканчивается — тут навешан целый комбайн фич. Например, система merge request’ов (в других местах зовётся pull request’ами). Это чтобы нормально делать code review: смотреть изменения, назначать ревьюеров, оставлять комменты, ставить апрувы и мержить ветки.

Плюс есть менеджмент задач, интеграции со Slack или Jira, разные бизнес-плюшки и т.д. Но самая сладкая часть — встроенный инструмент управления CI/CD.

GitLab schema

Смотри фишку: если нужно автоматизировать процессы, тебе не надо поднимать отдельный CI/CD сервер типа Jenkins. GitLab уже приехал с этим встроенным — спасибо, Экзибит. Аналогичная тема есть у GitHub (GitHub Actions), но GitHub локально не развернуть — помни об этом.

Теперь как это всё работает. Есть GitLab-сервер с репозиториями. Там же хранится конфигурация пайплайнов. Сервер коннектится к отдельным машинам — GitLab Runner. Именно на них выполняется работа из пайплайна.

Пайплайн — это последовательность шагов: проверить код, прогнать тесты, собрать проект, выкатить на сервер и т.д. Раннер — это агент, который запускает эти шаги. Он может жить на обычном сервере, в Docker-контейнере или в облаке.

Если берёшь GitLab Cloud — раннеры уже настроены. Если хочешь всё по-взрослому — сам ставишь GitLab, сам ставишь Runner, регистрируешь его, и он появляется в интерфейсе.

Чтобы GitLab понимал, какой пайплайн запускать, в проект нужно добавить файл .gitlab-ci.yml. Он лежит прямо в репозитории. GitLab увидит его автоматически.

В этом YAML-файле описываются job’ы — минимальные этапы работы. Почти декларативно: говоришь «что» получить, а не «как». Если щупал Ansible, Terraform или Jenkins — вайб тот же.

Кстати, есть ещё такая штука как GitFlic — российская платформа для хранения репозиториев и работы с кодом без риска блокировки. Там есть реестры пакетов и контейнеров, интеграции с Yandex.Cloud, поддержка S3, распределённый координатор для CI/CD, правила push-операций и прочее. Для команд до 5 человек — бесплатное использование.

Так что держи в голове альтернативы GitLab’у и GitHub’у — на всякий случай.

Leave a comment

Popular Posts

Advertisement

Headlines