GitLab для начинающих

Полное руководство по DevOps-платформе с встроенным CI/CD

Время изучения: 25 мин Уровень: Средний Обновлено: Окт 2023

1
Что такое GitLab и почему это больше чем GitHub?

GitLab — это полная DevOps-платформа, которая объединяет в себе не только хостинг кода (как GitHub), но и все инструменты для полного цикла разработки: планирование, разработка, безопасность, развёртывание, мониторинг.

Ключевые отличия от GitHub:

  • Встроенный CI/CD — не нужно подключать сторонние сервисы
  • Container Registry — собственный реестр Docker-образов
  • DevSecOps — инструменты безопасности встроены в процесс
  • GitLab Pages — бесплатный хостинг статических сайтов
  • Полный цикл DevOps — от идеи до production
Что такое DevOps и CI/CD?

DevOps — это культура и практика, объединяющая разработку (Development) и эксплуатацию (Operations). Цель — ускорить выпуск обновлений и повысить стабильность.

CI/CD (Continuous Integration / Continuous Deployment) — автоматизация процессов:

  • CI: При каждом коммите автоматически собирается и тестируется приложение
  • CD: После успешных тестов приложение автоматически разворачивается на сервере

GitLab предоставляет встроенные инструменты для CI/CD, что делает его мощнее GitHub для профессиональных команд.

Этап DevOps Инструмент GitLab Для чего используется
Планирование Issues, Milestones Постановка задач и отслеживание прогресса
Разработка Git Repository, Web IDE Написание и хранение кода
Сборка CI/CD Pipelines Автоматическая сборка приложения
Тестирование Automated Tests Проверка кода на ошибки
Развёртывание Auto DevOps Автоматический деплой на сервер
Мониторинг Metrics, Logs Отслеживание работы приложения

2
Регистрация и создание проекта

Шаг 1: Регистрация на GitLab

  1. Перейдите на gitlab.com
  2. Нажмите "Register" в правом верхнем углу
  3. Заполните форму или войдите через Google/GitHub
  4. Подтвердите email (важно для активации всех функций)

Шаг 2: Создание нового проекта

В GitLab есть два типа контейнеров для проектов:

Проект

Отдельный репозиторий с кодом

Группа

Объединение нескольких проектов

Для простого сайта создайте проект:

  1. На главной нажмите "New project"
  2. Выберите "Create blank project"
  3. Укажите имя проекта (например, my-gitlab-site)
  4. Для главного сайта можно использовать username.gitlab.io
  5. Установите видимость "Public" (для бесплатного хостинга)
  6. Нажмите "Create project"

3
GitLab Pages: Хостинг статических сайтов

GitLab Pages работает аналогично GitHub Pages, но с более гибкими настройками через CI/CD. Создайте .gitlab-ci.yml в корне проекта:

.gitlab-ci.yml - конфигурация для Pages
# Самый простой конфиг для статического сайта pages: stage: deploy script: - mkdir -p public - cp -r * public/ # Копируем все файлы в папку public artifacts: paths: - public only: - main # Запускать только при пуше в основную ветку

После добавления этого файла и коммита в репозиторий:

  1. GitLab автоматически запустит pipeline
  2. После успешного выполнения перейдите в "Deploy" → "Pages"
  3. Ваш сайт будет доступен по адресу: https://username.gitlab.io/project-name

🚀 Визуализация GitLab CI/CD Pipeline

1

Push кода

Вы отправляете изменения в репозиторий

2

Запуск Pipeline

GitLab автоматически запускает CI/CD пайплайн

3

Сборка

Выполняются команды из .gitlab-ci.yml

4

Деплой

Сайт автоматически публикуется на GitLab Pages

Расширенный пример CI/CD для React/Vue

Для современных фреймворков нужна сборка. Пример для React:

image: node:latest pages: stage: deploy cache: paths: - node_modules/ script: - npm install - npm run build - cp -r build/* public/ artifacts: paths: - public only: - main

Этот конфиг установит зависимости, соберёт React-приложение и задеплоит результат.

4
Мощные возможности GitLab

Security

SAST, DAST, dependency scanning

Container Registry

Хранение Docker образов

Auto DevOps

Автоматизация всего цикла

Analytics

Аналитика кода и производительности

Container Registry - встроенный Docker-репозиторий

GitLab имеет собственный registry для Docker-образов. Чтобы его использовать:

Деплой Docker образа через GitLab CI
build: stage: build script: - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG . - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG only: - main

Преимущества встроенного registry:

  • Бесплатно для публичных проектов
  • Интеграция с CI/CD пайплайнами
  • Веб-интерфейс для управления образами
  • Автоматическая очистка старых образов
Ограничения бесплатного тарифа

Важно знать: На бесплатном тарифе GitLab.com есть ограничения:

  • CI/CD minutes: 400 минут в месяц на приватные проекты
  • Storage: 10GB на проект (включая Container Registry)
  • Bandwidth: 10GB в месяц для Pages
  • Users in group: 5 пользователей в группе

Для личных проектов и небольших сайтов этого обычно достаточно. Для коммерческих проектов рассмотрите тариф Starter ($4/мес за пользователя).

Практическое задание: DevOps Pipeline

Создайте автоматизированный пайплайн для статического сайта:

Создайте проект на GitLab с именем username.gitlab.io
Добавьте index.html и style.css в корень проекта
Создайте файл .gitlab-ci.yml с конфигурацией для Pages
Запушите изменения и дождитесь выполнения пайплайна
Проверьте сайт по адресу https://username.gitlab.io

Бонус: Добавьте этап тестирования в пайплайн (например, проверку HTML через htmlhint)

5
Кому подходит GitLab?

Выберите GitLab, если:

  • Нужен полный цикл DevOps "из коробки"
  • Хотите встроенный CI/CD без сторонних сервисов
  • Работаете с Docker и нужен Container Registry
  • Цените безопасность (DevSecOps)
  • Работаете в команде и нужны продвинутые инструменты

Может не подойти, если:

  • Нужен только простой хостинг кода (лучше GitHub)
  • Работаете в экосистеме Atlassian (лучше Bitbucket)
  • Хотите максимально простой интерфейс (лучше SourceHut)

Для углубленного изучения

Изучите официальную документацию по CI/CD и попробуйте интерактивные туториалы GitLab.

Предыдущий урок
GitHub для начинающих
Следующий урок
Bitbucket для начинающих