Перейти к основному контенту
Tech Path Finder
КурсыИнтервьюКод-ревьюБлог
Tech Path Finder

Персонализированный путеводитель в IT. Квизы, мок-интервью, код ревью и аналитика прогресса.

@potapov_me

Платформа

  • Курсы
  • Прогресс
  • Мок-интервью
  • Код ревью
  • Живое ревью с ИИ
  • Тренажёр переговоров
  • Закладки

Контент

  • Блог
  • Главная
  • Обратная связь

Компания

  • О проекте
  • Тарифы
  • Условия использования
  • Конфиденциальность
  • Согласие на обработку данных
  • Cookie
  • Реквизиты

Аккаунт

  • Войти
  • Зарегистрироваться
  • Профиль

© 2026 Tech Path Finder. Все права защищены.

·ИП Потапов К.С.·Политика конфиденциальности·
Сделано с ❤️ в России
  1. CI/CD в GitHub и GitLab: от основ до продакшена
DevOps / Мониторинг·29 тем·258 вопросов·уровень Middle, Senior

CI/CD в GitHub и GitLab: от основ до продакшена

Экспертный курс по настройке непрерывной интеграции и доставки в GitHub Actions и GitLab CI. Изучите настройку пайплайнов, работу с Docker, стратегии деплоя, безопасность, оптимизацию и мониторинг. Курс включает практические кейсы настройки CI/CD для реальных проектов.

Начать курс

CI/CD в GitHub Actions и GitLab CI

Пайплайн, который идёт двадцать минут, команда начинает обходить: посмотрю потом, всё равно там опять флейки. Поэтому курс не заканчивается на «как написать workflow» — заметная часть тем про то, что делает пайплайн быстрым и дешёвым: кэш зависимостей, параллельные джобы, распараллеленные тесты, self-hosted runners и счёт за минуты.

Двадцать девять тем. GitHub Actions и GitLab CI идут параллельно, одна и та же задача решается в обеих системах — это удобно, когда переезжаешь между ними или держишь оба (workflow с jobs и steps против stages с rules, матрицы против DAG-пайплайнов, includes и шаблоны против переиспользуемых actions).

Docker занимает четыре темы: сборка и тестирование образов внутри пайплайна, публикация в GHCR и GitLab Registry, кэширование слоёв и multi-stage ради времени сборки, мультиплатформенные образы через Buildx.

Деплой — от окружений с защитой production и ручным подтверждением до blue-green, canary и rolling, выката в Kubernetes через Helm и GitOps, автоматических откатов по health checks и запуска Terraform из пайплайна.

Безопасность разбирается отдельно и предметно: секреты и их ротация, OIDC вместо долгоживущих токенов, минимальные права GITHUB_TOKEN, аудит, подписывание образов и SLSA.

Три последние темы — сквозные кейсы целиком: Python API с тестами и линтерами, фронтенд со сборкой и выкладкой на CDN, микросервисы в монорепозитории против отдельных репозиториев.

Уровень — middle и senior. Нужен Git и понимание, что делает Docker; сам Docker здесь не объясняется.

  1. 1

    Основы CI/CD: концепции и терминология

    Базовые концепции непрерывной интеграции и доставки, ключевые термины, преимущества и лучшие практики.

    6 вопросов
  2. 2

    Введение в GitHub Actions

    Архитектура GitHub Actions, основные компоненты, триггеры и первые шаги.

    6 вопросов
  3. 3

    Введение в GitLab CI

    Архитектура GitLab CI/CD, ключевые концепции, отличие от GitHub Actions.

    6 вопросов
  4. 4

    GitHub Actions: workflow, jobs, steps

    Структура workflow, настройка jobs и steps, передача данных между шагами.

    8 вопросов
  5. 5

    GitHub Actions: матрицы, зависимости, контексты

    Matrix builds, зависимости между job, работа с контекстами и выражениями.

    8 вопросов
  6. 6

    GitLab CI: stages, jobs, rules

    Настройка stages и jobs, правила выполнения, условия и фильтры.

    8 вопросов
  7. 7

    GitLab CI: includes, templates, DAG

    Переиспользование конфигураций, шаблоны, DAG pipelines, parent-child.

    8 вопросов
  8. 8

    YAML-паттерны и лучшие практики

    Структурирование YAML-конфигураций, DRY-принципы, читаемость и поддержка.

    8 вопросов
  9. 9

    Триггеры, расписания, webhooks

    Настройка автоматических запусков, cron, webhook-триггеры, manual jobs.

    8 вопросов
  10. 10

    Docker в CI: сборка и тестирование

    Сборка Docker-образов в пайплайне, тестирование контейнеризованных приложений.

    8 вопросов
  11. 11

    Работа с реестрами образов

    Публикация образов в GHCR, GitLab Registry, управление версиями и тегами.

    10 вопросов
  12. 12

    Оптимизация Docker-сборок

    Multi-stage builds, кэширование слоёв, уменьшение размера образов.

    10 вопросов
  13. 13

    Мультиплатформенная сборка

    Сборка образов для amd64, arm64 и других архитектур через Buildx.

    10 вопросов
  14. 14

    Окружения: staging и production

    Настройка окружений, переменные, защита production, approval workflows.

    8 вопросов
  15. 15

    Стратегии деплоя

    Blue-green, canary, rolling deployments: реализация в CI/CD.

    8 вопросов
  16. 16

    Деплой в Kubernetes

    Развёртывание в K8s через Helm, kubectl, GitOps-подходы.

    8 вопросов
  17. 17

    Откаты и мониторинг деплоя

    Автоматические откаты, health checks, интеграция с мониторингом.

    8 вопросов
  18. 18

    IaC в пайплайнах

    Автоматизация Terraform, CloudFormation в CI/CD, state management.

    8 вопросов
  19. 19

    Управление секретами

    Хранение и использование secrets, encryption, ротация ключей.

    10 вопросов
  20. 20

    Permissions и безопасность workflow

    GITHUB_TOKEN, OIDC, least privilege, аудит и логирование.

    10 вопросов
  21. 21

    Supply chain security

    Безопасность цепочки поставок, подписывание образов, SLSA.

    10 вопросов
  22. 22

    Кэширование зависимостей

    Кэш npm, pip, Maven и других зависимостей для ускорения сборок.

    10 вопросов
  23. 23

    Параллелизация и оптимизация

    Распараллеливание тестов, оптимизация времени выполнения пайплайна.

    10 вопросов
  24. 24

    Оптимизация затрат

    Управление расходами на minutes, self-hosted runners, квоты.

    10 вопросов
  25. 25

    Уведомления и алерты

    Настройка уведомлений в Slack, Telegram, email, интеграция с incident management.

    12 вопросов
  26. 26

    Интеграции

    Интеграция с Jira, Sentry, SonarQube и другими инструментами.

    12 вопросов
  27. 27

    Кейс: Python API с тестами и деплоем

    Полная настройка CI/CD для Python API: тесты, линтеры, деплой.

    10 вопросов
  28. 28

    Кейс: Frontend проект

    CI/CD для React/Vue приложения: сборка, тесты, деплой на CDN.

    10 вопросов
  29. 29

    Кейс: Микросервисы

    Оркестрация пайплайнов для микросервисной архитектуры, monorepo vs multirepo.

    10 вопросов
  30. Зачёт

    Доступен после всех тем (0 из 29)

  31. Экзамен

    Доступен после зачёта

39 / 39

Continuous Integration (CI)

Основы CI/CD

Практика разработки, при которой изменения кода автоматически интегрируются в основную ветку через автоматизированные сборку и тестирование.

Пример

При пуше в репозиторий GitHub Actions автоматически запускает тесты и линтеры.

Связанные термины

Continuous Delivery/Deployment (CD)

Основы CI/CD

Автоматизация процесса доставки кода в продакшен. Delivery требует ручного подтверждения, Deployment происходит полностью автоматически.

Пример

После успешных тестов приложение автоматически деплоится на staging, а в production — после аппрува.

Связанные термины

Pipeline (Пайплайн)

Основы CI/CD

Настроенный процесс CI/CD, состоящий из последовательных или параллельных этапов сборки, тестирования и деплоя.

Пример

Pipeline включает стадии: lint → test → build → deploy.

Связанные термины

Workflow

GitHub Actions

В GitHub Actions — конфигурация, описывающая весь процесс CI/CD: триггеры, jobs и шаги выполнения.

Пример

Файл .github/workflows/ci.yml определяет workflow для проекта.

Связанные термины

Job

GitHub Actions

Единица выполнения в CI/CD — набор шагов, которые выполняются на одном раннере/агенте.

Пример

Job 'test' запускает тесты, job 'build' собирает артефакты.

Связанные термины

Step (Шаг)

GitHub Actions

Отдельная команда или действие в составе job. Шаги выполняются последовательно.

Пример

Шаг может запускать команду shell или использовать готовое action.

Связанные термины

Action

GitHub Actions

В GitHub Actions — переиспользуемый блок кода, который выполняет определённую задачу (например, checkout кода или установку зависимостей).

Пример

uses: actions/checkout@v4 для получения кода репозитория.

Связанные термины

Runner

GitHub Actions

Сервер или контейнер, на котором выполняются job. Бывают hosted (предоставленные платформой) и self-hosted.

Пример

ubuntu-latest — стандартный раннер GitHub; gitlab-runner — агент GitLab.

Связанные термины

Trigger (Триггер)

GitHub Actions

Событие, которое запускает выполнение пайплайна: пуш, пул-реквест, расписание, ручной запуск.

Пример

on: push: branches: [main] запускает workflow при пуше в main.

Связанные термины

GitLab CI

GitLab CI

Встроенная система непрерывной интеграции и доставки в GitLab. Конфигурируется через файл .gitlab-ci.yml.

Пример

.gitlab-ci.yml определяет stages, jobs и правила выполнения.

Связанные термины

Stage (Стадия)

GitLab CI

В GitLab CI — логическая группа job, выполняемая в определённой последовательности. Все job внутри стадии выполняются параллельно.

Пример

stages: [build, test, deploy] — job стадии test начнутся после завершения build.

Связанные термины

.gitlab-ci.yml

GitLab CI

Файл конфигурации GitLab CI в корне репозитория. Описывает pipeline, стадии, job и их настройки.

Пример

include: может импортировать внешние шаблоны для переиспользования.

Связанные термины

Docker Image (Образ)

Docker и контейнеризация

Неизменяемый шаблон для создания контейнеров. Содержит приложение и все зависимости.

Пример

python:3.11-slim — официальный образ Python.

Связанные термины

Docker Container (Контейнер)

Docker и контейнеризация

Запущенный экземпляр Docker-образа. Изолированная среда выполнения приложения.

Пример

Контейнер запускается из образа и выполняет приложение.

Связанные термины

Docker Registry (Реестр)

Docker и контейнеризация

Хранилище Docker-образов. Позволяет публиковать и скачивать образы.

Пример

GHCR (GitHub Container Registry), GitLab Registry, Docker Hub.

Связанные термины

Multi-stage Build

Docker и контейнеризация

Техника Dockerfile, использующая несколько стадий сборки для уменьшения размера финального образа.

Пример

Первая стадия компилирует код, вторая копирует только артефакты.

Связанные термины

Deploy (Развёртывание)

Деплой и окружения

Процесс размещения приложения на целевом сервере или в кластере для запуска.

Пример

deploy на production-сервер после успешных тестов на staging.

Связанные термины

Environments (Окружения)

Деплой и окружения

Изолированные конфигурации для разных стадий жизненного цикла: development, staging, production.

Пример

GitHub Environments позволяют настроить защиту и переменные для production.

Связанные термины

Staging

Деплой и окружения

Предпродакшен-окружение, максимально близкое к production, для финального тестирования.

Пример

Деплой на staging происходит автоматически, на production — после аппрува.

Связанные термины

Production

Деплой и окружения

Боевое окружение, где приложение доступно конечным пользователям.

Пример

Production требует ручного подтверждения деплоя и имеет максимальную защиту.

Связанные термины

Blue-Green Deployment

Деплой и окружения

Стратегия деплоя с двумя идентичными окружениями: одно активно (blue), второе используется для развёртывания новой версии (green).

Пример

После тестирования green-окружения трафик переключается с blue на green.

Связанные термины

Canary Deployment

Деплой и окружения

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

Пример

Сначала 5% трафика направляется на новую версию, затем процент увеличивается.

Связанные термины

Rollback (Откат)

Деплой и окружения

Возврат к предыдущей стабильной версии приложения при обнаружении проблем после деплоя.

Пример

Автоматический откат при превышении уровня ошибок 5%.

Связанные термины

Secrets (Секреты)

Безопасность

Конфиденциальные данные (API-ключи, пароли, токены), которые хранятся в зашифрованном виде и используются в пайплайнах.

Пример

GitHub Secrets или GitLab CI Variables для хранения токенов доступа.

Связанные термины

GITHUB_TOKEN

Безопасность

Автоматически генерируемый токен доступа для GitHub Actions, предоставляющий права на взаимодействие с репозиторием.

Пример

Используется для пуша артефактов или создания релизов.

Связанные термины

OIDC (OpenID Connect)

Безопасность

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

Пример

GitHub Actions получает временный токен AWS через OIDC вместо хранения AWS_SECRET_ACCESS_KEY.

Связанные термины

Supply Chain Security

Безопасность

Защита цепочки поставок ПО от уязвимостей: зависимости, базовые образы, сторонние действия.

Пример

Подписывание Docker-образов через Sigstore/Cosign для проверки целостности.

Связанные термины

SLSA

Безопасность

Supply-chain Levels for Software Artifacts — фреймворк для обеспечения целостности цепочки поставок ПО.

Пример

SLSA Level 3 требует, чтобы сборка выполнялась в изолированной среде.

Связанные термины

Caching (Кэширование)

Оптимизация

Сохранение зависимостей между запусками пайплайна для ускорения сборок.

Пример

Кэш node_modules или .venv сокращает время установки зависимостей.

Связанные термины

Parallel Execution

Оптимизация

Параллельное выполнение независимых job или тестов для сокращения общего времени пайплайна.

Пример

Matrix strategy запускает тесты на нескольких версиях Python одновременно.

Связанные термины

Self-hosted Runner

Оптимизация

Раннер, развёрнутый на вашей инфраструктуре. Позволяет снизить затраты и получить больший контроль.

Пример

Self-hosted runner в корпоративной сети для доступа к внутренним ресурсам.

Связанные термины

Matrix Strategy

Оптимизация

Механизм автоматического создания комбинаций параметров для параллельного запуска job в GitHub Actions.

Пример

strategy.matrix.node-version: [18, 20, 22] создаёт 3 параллельных job для разных версий Node.js.

Связанные термины

Sharding (Шардирование тестов)

Оптимизация

Разделение тестов на независимые группы (шарды) для параллельного запуска на разных job.

Пример

1000 тестов делятся на 4 шарда, каждый выполняется на отдельном job за 1/4 времени.

Связанные термины

DAG Pipeline

Оптимизация

Directed Acyclic Graph — пайплайн, где job выполняются при готовности зависимостей, а не по стадиям.

Пример

needs: [] в GitLab CI позволяет job выполняться сразу, игнорируя стадии.

Связанные термины

Fail-fast

Оптимизация

Стратегия отмены остальных job matrix при ошибке одного из них для экономии ресурсов.

Пример

fail-fast: true отменяет тесты на других версиях Node.js при ошибке на одной.

Связанные термины

Cancel-in-progress

Оптимизация

Автоматическая отмена предыдущих запусков workflow при новом коммите в ту же ветку/PR.

Пример

concurrency с cancel-in-progress: true отменяет устаревшие сборки PR.

Связанные термины

Restore-keys

Оптимизация

Альтернативные ключи для частичного совпадения кэша при отсутствии точного ключа.

Пример

restore-keys: ${{ runner.os }}-npm- восстанавливает старый кэш при изменении зависимостей.

Связанные термины

Cache Policy

Оптимизация

Политика кэширования в GitLab CI: pull-push (загрузить и сохранить), pull (только загрузить), push (только сохранить).

Пример

cache.policy: pull-push загружает кэш перед job и сохраняет после успешного выполнения.

Связанные термины

Buildx Cache

Оптимизация

Встроенный механизм кэширования Docker-слоёв через buildx с export/import в registry или GHA cache.

Пример

cache-from: type=gha, cache-to: type=gha,mode=max для кэширования через GitHub Actions.

Связанные термины

Частые вопросы о курсе «CI/CD в GitHub и GitLab: от основ до продакшена»

Состав курса, уровни, практика и способы проверки знаний.

Что входит в курс «CI/CD в GitHub и GitLab: от основ до продакшена»?

Курс включает 29 тем и 258 вопросов с разбором ответа. Начать можно с первой темы курса.

Для какого уровня рассчитан курс «CI/CD в GitHub и GitLab: от основ до продакшена»?

Маршрут охватывает уровни Middle, Senior. Темы расположены от основы к более сложным инженерным задачам, поэтому можно начать с подходящего места и не пропускать важные зависимости.

Как проверить, что материал усвоен?

После прохождения тем доступен зачёт по курсу «CI/CD в GitHub и GitLab: от основ до продакшена» — 20 случайных вопросов с порогом 80%. После зачёта открывается экзамен с развёрнутыми ответами и автоматической оценкой, приближённый к техническому собеседованию.

Курс «CI/CD в GitHub и GitLab: от основ до продакшена» бесплатный?

Да, курс полностью бесплатный: все 29 тем доступны без оплаты.