logo
Ещё

GitLab

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

GitLab – что это такое

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

  • Git — это система контроля, в которой хранятся все версии кода. Когда программист изменяет или дополняет проект, он фиксирует эти изменения с помощью коммитов.
  • Коммиты (commit) представляют собой зафиксированный набор правок, который содержит данные о добавленных, измененных или удаленных файлах. Благодаря коммитам пользователь может вернуться к предыдущим версиям файла.
  • Репозиторий — это место, где хранится весь код проекта, а также дополнительные файлы: изображения, иконки и другие элементы, необходимые для корректной работы приложения. По сути, он напоминает обычную папку на компьютере, но имеет дополнительные возможности — например, хранит историю изменений каждого файла.
  • Ветки (branches) — это независимые направления разработки, в которых программисты могут работать параллельно, не мешая друг другу. Каждый разработчик создаёт собственную ветку, вносит изменения и тестирует их, прежде чем объединить с основной.

Когда работа над новой функциональностью или исправлением завершена, специалист отправляет запрос на слияние (merge request) — предложение объединить свою ветку с основной (main или master), где находится стабильная версия проекта.

Слияние (merge) — это процесс объединения изменений из разных веток в одну. Перед этим другие участники команды могут просмотреть и обсудить внесённые правки, оставить комментарии или предложить улучшения. После проверки и одобрения со стороны ведущего разработчика или тимлида запрос принимается.

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

Зачем нужен GitLab

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

Как он помогает разработчику

GitLab может оказаться полезным для разработчиков, повысив эффективность работы команды на следующих этапах:

  • На этапе написания кода. В данной программе сразу несколько разработчиков параллельно друг другу могут выполнять свои задачи, например, создавая код. После того, как задачи каждого разработчика будут выполнены отдельно, ответственный за задачу может отправить запрос на слияние ветвей в главный репозиторий, после чего либо принять выполненный проект, либо отправить его на доработку.
  • На этапе тестирования кода. GitLab может автоматизировать процесс тестирования при изменении кода. То есть, при добавлении новых функций и прочих изменениях, программа отправляет эту информацию в центральный репозиторий, где начинается тестирование. Это помогает выявить ошибки и быстро их исправить.
  • На этапе сборки проекта. Внутри репозитория проекта разработчики могут хранить несколько версий контейнеров одного приложения и настроить их автоматическое обновление при каждом изменении исходного кода.
  • На этапе релиза приложения. GitLab оснащён встроенными инструментами непрерывной интеграции (CI) и непрерывного развертывания (CD), которые позволяют полностью автоматизировать процесс — от сборки исходного кода до публикации приложения или его обновленной версии, независимо от среды

Разработчик может указать целевое окружение, например production-сервер, и настроить автоматическое развертывание приложения в нём после успешного прохождения тестов.

Платформа GitLab предлагает несколько готовых сценариев развертывания, которые можно выбрать в зависимости от конкретных задач:

  • Сине-зелёное развертывание (blue-green deployment) — используется две среды: активная («синяя») и резервная («зелёная»). Помогает проверять приложение после того, как в него были внесены изменения.
  • Канареечное развертывание (canary deployment) — новая сборка внедряется постепенно: сначала для небольшой группы пользователей, а затем, после успешного тестирования, распространяется на всех.
  • Плавное развертывание (rolling deployment) — обновление выполняется без остановки работы приложения. Код обновляется последовательно на каждом сервере, что исключает простои.
  • На этапе мониторинга. При помощи GitLab можно собирать метрики процесса CI/CD и других важных показателей. Это повышает эффективность и экономит время. 

GitLab vs GitHub

И GitLab и GitHub — два популярных сервиса для хостинга проектов, которые используют систему контроля версий Git. Несмотря на схожесть, различия между ними также имеются:

  • GitHub представляет собой облачный сервис, благодаря чему на нем можно хранить проекты. Программа принадлежит Microsoft. В то же время GitLab может быть использован на собственном сервере.
  • GitLab имеет встроенный инструмент CI/CD, в то время как для GitHub потребуется специальное расширение — GitHub Actions.
  • GitLab имеет более гибкие возможности в бесплатной версии приватных репозиториев: в нем нет разграничения на владельца и соавтора.

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

Как установить и как работать с GitLab

Ниже расскажем подробно, как установить и работать с GitLab.

Установка GitLab

Для начала работы в GitLab вам потребуется пройти несколько шагов:

  1. Установите необходимые пакеты:

    sudo apt update
    sudo apt install -y curl openssh-server ca-certificates tzdata perl
  2. Если вы хотите получать письма от GitLab на свою почту, установите postfix. Во время установки выберите "Интернет-сайт" и введите имя вашего домена или сервера:

    sudo apt install -y postfix
  3. Добавьте официальный репозиторий GitLab и установите его:

    curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
  4. Теперь установите собственно GitLab, заменив http://your-server-ip на реально существующий адрес вашего сервера:

    sudo EXTERNAL_URL="http://your-server-ip" apt install gitlab-ce
  5. Далее система выполнит всю настройку, после которой GitLab будет готов к работе.

Создание проекта в GitLab

Для того, чтобы сделать ваш первый проект, необходимо выполнить следующее:

  1. На главной странице выберите кнопку «New Project».
  2. Заполните основную информацию: здесь дается имя проекту, его адрес, краткое описание.
  3. Настройте уровень видимости репозитория: можно сделать его видимым только для вас и вашей команды, либо оставить полностью в открытом доступе.
  4. Поставьте галочку напротив «Initialize repository with a README», это автоматически создаст файл, который будет содержать основную информацию вашего проекта.

Добавление SSH-ключа

После создания своего первого проекта вы столкнетесь с тем, что при работе через командную строку приходится каждый раз вводить логин и пароль. SSH-ключ заменяет собой логин и пароль при подключении к GitLab. Также его использование обязательно при работе с приватными репозиториями.

Для того, чтобы добавить SSH-ключ, сделайте следующее:

  1. В терминале выполните:

    ssh-keygen -t ed25519 -C "your_email@example.com"
  2. Скопируйте ключ:

    cat ~/.ssh/id_ed25519.pub
  3. Добавьте ключ в GitLab: в «Settings» выберите «SSH Keys», вставьте скопированный ключ в поле «Key» и нажмите кнопку «Add Key».

Как работать в условиях санкций

С 2022 года, после ввода санкций, GitLab заявили, что приостанавливают работу и продажи на территории России. В связи с этим возникли трудности с регистрацией новых аккаунтов на сайте gitlab.com, а также с доступом уже к существующим профилям. К сожалению, сейчас нет 100% надежных и безопасных методов для того, чтобы продолжать работу с данной веб-системой.

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

Доступные аналоги GitLab

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

GitVerse

Команда «СберТех» предлагает свою платформу для работы с исходным кодом, которая предназначена для совместной разработки и управления проектами.

Основные функции:

  • Хранение кода в открытых и закрытых репозиториях.
  • Инструменты для совместной работы над проектами.
  • Автоматизация процессов и публикации кода.
  • Поддержка баз данных.
  • Встроенный ИИ-ассистент.
  • Плагины для всех популярных IDE.

SourceCraft

SourceCraft — это облачная платформа от компании «‎Яндекс»‎ для комплексной разработки программного обеспечения.

Основные функции:

  • Управление всем процессом: от написания кода до его поддержки.
  • Встроенная система для работы с Git, отслеживания задач и ошибок.
  • Интегрированный ИИ-ассистент.
  • Широкая поддержка языков программирования.
  • Умная навигация по коду.

GitFlick

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

Основные функции:

  • Удобное управление всем процессом — от отправки кода в Git до его сборки, тестирования и публикации на глобальном хостинге.
  • Единое пространство для работы с репозиториями.
  • Встроенная система ИИ.
  • Система контроля версий.
  • Универсальная поддержка технологий.

Что почитать и посмотреть по теме

  1. Официальная документация GitLab — это наиболее полный и актуальный источник информации. Информация, размещенная здесь, будет полезна как новичкам, так и профессионалам.
  2. Статьи на Habr — по тегам «GitLab», «CI/CD», «DevOps» вы найдете огромное количество практических руководств, от базовых статей типа "Знакомство с GitLab для начинающих" до сложных материалов.
  3. DevOps-сообщества, такие как Reddit (r/gitlab, r/devops), где можно задать вопросы и поучаствовать в обсуждениях с опытными пользователями.

FAQ

Доступен ли GitLab в России и есть ли аналоги?

После 2022 года пользователи из России сталкиваются с трудностями при работе с официальным сайтом gitlab.com. Можно либо развернуть GitLab на собственном сервере, либо использовать облачный сервер.Также для пользователей из России доступны отечественные аналоги, которые предлагают схожий функционал.

Чем отличается GitLab от GitHub?

Главное отличие в том, что GitLab изначально обладает встроенными инструментами для CI/CD, тогда как в GitHub их нужно настраивать через отдельный инструмент.

Вывод

  • GitLab — это веб-платформа DevOps, предназначенная для управления проектами и репозиториями исходного кода.
  • GitLab, как и другие приложения для менеджеров, позволяет группировать задачи и работать над проектами с другими специалистами, удобно распределяя обязанности между участниками.
  • С 2022 года, после ввода санкций, GitLab заявили, что приостанавливают работу и продажи на территории России.