Перейти к содержанию

Глоссарий терминов

Общий глоссарий терминов, встречающихся в мануалах курса. При добавлении нового мануала — сверяйтесь со скиллом glossary-sync: новые термины добавляются сюда в алфавитном порядке с коротким определением и ссылкой на мануал-источник.

Термин Определение Источник
12-factor app Методология из двенадцати принципов построения сервисов, пригодных к автоматическому деплою; в контексте CI/CD чаще всего ссылаются на фактор X (dev/prod parity) — требование максимальной идентичности окружений. 02-cicd-manual
Bisect (git bisect) Бинарный поиск коммита, в котором появился баг: Git половинным делением истории предлагает версии для проверки. Эффективен только при мелких атомарных коммитах. 00-git-manual
Blob Git-объект, хранящий содержимое файла — только байты, без имени и прав доступа (имя живёт в объекте tree). 00-git-manual
Blue-Green Deployment Стратегия деплоя: новая версия (Green) разворачивается полностью отдельно от текущей (Blue), трафик переключается разом после проверки. Откат — мгновенное переключение обратно. 02-cicd-manual
Branch by Abstraction Паттерн крупной переделки без долгоживущей ветки: в коде вводится абстракция над старой реализацией, за ней постепенно пишется новая, затем старая удаляется — каждый шаг отдельным маленьким PR в основную ветку. 05-git-workflow-manual
Branch protection / Rulesets (защита веток) Правила Git-хостинга, запрещающие менять ветку в обход PR, обязательных проверок и одобрений (запрет прямого push и force push, обязательные approvals, required checks); на GitHub — branch protection rules и более новые repository rulesets, в GitLab — protected branches. 05-git-workflow-manual
BuildKit Движок сборки образов Docker, используемый по умолчанию с Docker Engine 23.0: параллелит стадии, поддерживает cache mounts и монтирование секретов. 03-docker-manual
Canary Deployment Стратегия деплоя: новая версия сначала получает малую долю трафика; если метрики в норме, доля постепенно растёт до 100%. 02-cicd-manual
CI (Continuous Integration) Непрерывная интеграция — частое слияние изменений в основную ветку с автоматической проверкой (сборка, тесты, анализ). 02-cicd-manual
CD (Continuous Delivery) Непрерывная доставка — автоматическая подготовка релиза, готового к деплою в любой момент; финальное решение о деплое остаётся за человеком. 02-cicd-manual
CD (Continuous Deployment) Непрерывное развёртывание — автоматический деплой каждого прошедшего проверки изменения в production без ручного подтверждения. 02-cicd-manual
cgroups (control groups) Механизм ядра Linux, ограничивающий потребление ресурсов процессом или группой процессов — CPU, память, I/O. 03-docker-manual
Changelog Человекочитаемый список изменений по версиям; при Conventional Commits генерируется автоматически инструментами релиза (release-please, semantic-release, git-cliff). 05-git-workflow-manual
Cherry-pick Перенос отдельного коммита в другую ветку созданием его копии (git cherry-pick); с флагом -x в сообщение дописывается ссылка на исходный коммит. Основной способ доставить исправление из main в релизную ветку. 05-git-workflow-manual
CODEOWNERS Файл, сопоставляющий пути в репозитории с ответственными людьми или командами: они автоматически назначаются ревьюерами, а при соответствующем правиле защиты ветки их одобрение обязательно для merge. 05-git-workflow-manual
Commit (коммит) Снимок всего дерева файлов проекта плюс метаданные: автор, дата, сообщение и ссылки на родительские коммиты; идентифицируется хешем содержимого. 00-git-manual
Container (контейнер) Запущенный экземпляр образа: изолированный namespaces и cgroups процесс с writable-слоем поверх слоёв образа. 03-docker-manual
Container Image (образ) Неизменяемый набор слоёв только для чтения плюс метаданные запуска; шаблон, из которого создаются контейнеры. 03-docker-manual
Container Registry (реестр образов) Хранилище образов с версионированием, правами доступа и API — например, Docker Hub, ECR, Harbor. 03-docker-manual
Conventional Commits Соглашение о формате сообщения коммита вида type(scope): описание (feat, fix, chore), позволяющее автоматически генерировать changelog и вычислять версию. 00-git-manual
Copy-on-Write (CoW) Механизм, при котором изменяемый файл копируется в верхний слой только в момент записи — основа writable-слоя контейнера. 03-docker-manual
CVE (Common Vulnerabilities and Exposures) Публичный идентификатор известной уязвимости в ПО. 03-docker-manual
Detached HEAD Состояние, когда HEAD указывает напрямую на коммит, а не на ветку; сделанные в нём коммиты не привязаны ни к одной ветке и легко теряются. 00-git-manual
Distroless-образ Базовый образ без shell, пакетного менеджера и лишних утилит — содержит только рантайм приложения, что резко сокращает поверхность атаки. 03-docker-manual
Dockerfile Текстовый файл-рецепт, описывающий сборку образа последовательностью инструкций (FROM, COPY, RUN, CMD). 03-docker-manual
DORA-метрики Четыре ключевые метрики зрелости доставки: Deployment Frequency, Lead Time for Changes, Change Failure Rate и Failed Deployment Recovery Time (ранее Time to Restore Service). Первые две измеряют скорость, вторые две — стабильность; смотреть на них надо парами. 02-cicd-manual
DVCS (Distributed Version Control System) Распределённая система контроля версий: полная история проекта хранится у каждого участника локально, а не только на сервере (Git, Mercurial). 00-git-manual
Fast-forward merge Слияние без merge-коммита: если в целевой ветке не появилось новых коммитов, её указатель просто переносится вперёд, история остаётся линейной. 00-git-manual
Feature Flag Механизм, отделяющий деплой кода от включения фичи для пользователей — фича может быть в проде, но выключена. 02-cicd-manual
Flaky test Тест, дающий разный результат на неизменном коде (гонки, зависимость от времени или внешних сервисов); опаснее упавшего теста, потому что разрушает доверие команды к CI. 02-cicd-manual
Force push Отправка на сервер истории, которая не является продолжением серверной (git push --force); затирает чужие коммиты. Безопасный вариант — --force-with-lease, отказывающийся писать при неизвестных вам изменениях. 00-git-manual
.gitignore Файл со списком путей, которые Git не отслеживает; действует только на ещё не закоммиченные файлы — уже отслеживаемый файл нужно убирать через git rm --cached. 00-git-manual
GitFlow Стратегия ветвления с двумя долгоживущими ветками (main — только релизы, develop — интеграция) и вспомогательными feature/*, release/*, hotfix/*; оправдана для явно версионируемого ПО с плановыми релизами, избыточна для часто деплоящихся сервисов. 05-git-workflow-manual
GitHub Flow Простая стратегия ветвления: всё в main можно деплоить, любая работа — короткая ветка от main → Pull Request с review и CI → merge → деплой. 05-git-workflow-manual
GitLab Flow Расширение GitHub Flow долгоживущими ветками окружений (pre-production, production) или стабильными ветками версий; исправления идут сначала в main, затем переносятся вниз (upstream first). 05-git-workflow-manual
GitOps Модель доставки, в которой желаемое состояние окружения описано в Git, а агент внутри кластера (Argo CD, Flux) сам подтягивает изменения и устраняет расхождения — pull-модель вместо push-деплоя из CI. 02-cicd-manual
HEAD Указатель на текущую позицию работы в репозитории: обычно ссылка на активную ветку, реже — прямо на коммит (см. Detached HEAD). 00-git-manual
Hotfix Срочное исправление бага в production вне планового релиза; по правилу upstream first исправление обязательно попадает в основную ветку, иначе следующий релиз вернёт баг. 05-git-workflow-manual
IaC (Infrastructure as Code) Подход, при котором инфраструктура описывается и управляется кодом (например, Terraform, Ansible), а не настраивается вручную. 02-cicd-manual
Image Digest Неизменяемый адрес образа по содержимому вида sha256:...; в отличие от тега, всегда указывает на один и тот же образ. 03-docker-manual
Immutable Artifact Принцип: артефакт (например, Docker-образ) собирается один раз и переиспользуется на всех окружениях без пересборки. 02-cicd-manual
Index (индекс, staging area) Промежуточная зона между рабочим каталогом и историей: подготовленный снимок того, что войдёт в следующий коммит (git add наполняет её). 00-git-manual
Layer (слой образа) Результат одной изменяющей файловую систему инструкции Dockerfile; слои неизменяемы, кэшируются и переиспользуются между образами. 03-docker-manual
Matrix build (матричная сборка) Запуск одного job'а в нескольких вариантах одновременно (версии рантайма, ОС, БД) — способ расширить покрытие проверок, не удлиняя пайплайн. 02-cicd-manual
Merge base Ближайший общий предок двух сливаемых ветвей; третья точка отсчёта, без которой three-way merge невозможен. 00-git-manual
Merge conflict (конфликт слияния) Ситуация, когда обе сливаемые ветки изменили одни и те же строки (или одна изменила, другая удалила файл); Git останавливается и оставляет в файле маркеры <<<<<<</=======/>>>>>>>. 00-git-manual
Merge queue (merge train) Очередь слияния: одобренные PR проверяются CI на временной ветке «актуальный main + PR + PR впереди в очереди» и вливаются, только если результат зелёный; защищает от ситуации «два зелёных PR дают красный main». На GitHub — merge queue (событие merge_group), в GitLab — merge trains. 05-git-workflow-manual
Multi-arch образ Образ, опубликованный под несколько архитектур (например, linux/amd64 и linux/arm64) и объединённый manifest list под одним тегом. 03-docker-manual
Multi-stage build Сборка образа в несколько стадий FROM, где в финальный образ копируется только результат сборки без компиляторов и dev-зависимостей. 03-docker-manual
Namespaces (пространства имён Linux) Механизм ядра, изолирующий то, что видит процесс: свои PID, сеть, точки монтирования, пользователи. 03-docker-manual
OCI (Open Container Initiative) Стандарты формата образа, среды выполнения и протокола реестра, благодаря которым образы переносимы между Docker, containerd, Podman и CRI-O. 03-docker-manual
OIDC (OpenID Connect) в CI Механизм, при котором CI-раннер получает от облака короткоживущий токен под конкретный workflow вместо хранения вечных ключей доступа в секретах репозитория. 02-cicd-manual
Packfile Файл, в который Git упаковывает множество объектов с дельта-сжатием (при git gc и при передаче по сети) — деталь хранения, не меняющая модель «коммит = снимок». 00-git-manual
PR cycle time Время от открытия Pull Request (или первого коммита в ветке) до его слияния в основную ветку; раскладывается на time to first review, review time и merge time и составляет основную часть Lead Time for Changes. 05-git-workflow-manual
Provenance (аттестация происхождения) Машиночитаемые метаданные о том, как и из чего собран образ: репозиторий, коммит, сборочная система. Сама по себе не подписана — buildx прикрепляет её к образу как есть; подпись, если нужна, ставится отдельно (например, cosign). 03-docker-manual
Pull Request / Merge Request (PR / MR) Запрос на вливание ветки в целевую: diff, обсуждение, результаты CI и одобрения в одном месте; Pull Request — термин GitHub и Bitbucket, Merge Request — GitLab, суть одна. 05-git-workflow-manual
Rebase Перенос коммитов ветки поверх другой вершины путём создания их копий с новыми хешами; даёт линейную историю, но применим только к неопубликованным коммитам. 00-git-manual
Ref (ссылка) Именованный указатель на коммит: локальные ветки (refs/heads/*), теги (refs/tags/*), remote-tracking ветки (refs/remotes/*). 00-git-manual
Reflog Локальный журнал всех перемещений HEAD и ветвей, позволяющий вернуться к «потерянному» коммиту; по умолчанию хранится 90 дней (30 для недостижимых коммитов) и не копируется при клонировании. 00-git-manual
Release branch (релизная ветка) Ветка release/X.Y, создаваемая от основной ветки в момент релиза для поддержки этой версии; в неё попадают только исправления, перенесённые из main через cherry-pick, и обратно она не вливается. 05-git-workflow-manual
Remote-tracking ветка Локальный слепок состояния ветки на сервере (origin/main); обновляется только при fetch/push, а не сама по себе. 00-git-manual
Required status check (обязательная проверка) CI-проверка, успешный статус которой правило защиты ветки требует для merge; job должен запускаться на каждом PR (и на merge_group при merge queue), иначе PR застрянет в ожидании статуса. 05-git-workflow-manual
rerere (reuse recorded resolution) Механизм Git (rerere.enabled=true), запоминающий, как был разрешён конфликт, и автоматически применяющий то же решение при повторении такого же конфликта. 05-git-workflow-manual
Rollback (откат) Возврат окружения на предыдущую известную рабочую версию — по сути обычный деплой старого артефакта; требует, чтобы прежние теги в реестре не перезаписывались. Миграции БД откатом кода не отменяются. 02-cicd-manual
Rolling Update Стратегия деплоя: инстансы обновляются поочерёдно без простоя; какое-то время сосуществуют две версии. 02-cicd-manual
Rootless-контейнер Режим запуска контейнеров без root-привилегий у демона и процесса внутри, сокращающий последствия компрометации. 03-docker-manual
SAST (Static Application Security Testing) Статический анализ безопасности кода без его выполнения (например, SonarQube, Semgrep). 02-cicd-manual
SBOM (Software Bill of Materials) Машиночитаемый перечень всех компонентов и зависимостей артефакта, позволяющий быстро оценить влияние новой CVE. 03-docker-manual
SemVer (Semantic Versioning) Схема версий MAJOR.MINOR.PATCH: MAJOR — несовместимые изменения API, MINOR — обратно совместимая функциональность, PATCH — исправления; для 0.y.z стабильность API не гарантируется. 05-git-workflow-manual
Shallow clone Клон с урезанной историей (git clone --depth 1) — экономит время и трафик в CI, но ограничивает операции, требующие полной истории. 00-git-manual
Smoke test Минимальная проверка после деплоя «сервис поднялся и отвечает на ключевые запросы»; выполняется за секунды и не заменяет E2E-тесты. 02-cicd-manual
Squash-слияние Сжатие всех коммитов ветки в один при вливании: в основной ветке остаётся «одна фича — один коммит», промежуточные шаги теряются. 00-git-manual
Stacked PRs Цепочка небольших зависимых Pull Request'ов, где каждый следующий основан на предыдущем; позволяет разбить крупное изменение на части, которые ревьюятся и вливаются по очереди. 05-git-workflow-manual
Stash Временное хранилище незакоммиченных изменений (git stash push / git stash pop), позволяющее быстро переключиться на другую задачу с чистым рабочим каталогом. 00-git-manual
Three-way merge Слияние по трём точкам — общий предок (merge base) и две вершины ветвей; результат фиксируется merge-коммитом с двумя родителями. 00-git-manual
Tree (дерево) Git-объект, описывающий каталог: имена, права и ссылки на blob'ы и вложенные tree-объекты. 00-git-manual
Trunk-Based Development (TBD) Стратегия ветвления, в которой все разработчики интегрируют изменения в единственную основную ветку (trunk) минимум раз в день через очень короткие ветки, а незаконченная работа скрыта за feature flags. 05-git-workflow-manual
Upstream (tracking branch) Настроенная связь локальной ветки с ветвью на удалённом репозитории; позволяет вызывать push/pull без аргументов и видеть расхождение «ahead/behind». 00-git-manual
VCS (Version Control System) Система контроля версий — инструмент, хранящий историю изменений проекта с авторством, датами и возможностью вернуться к любой версии. 00-git-manual
Volume (том) Управляемое Docker хранилище, смонтированное в контейнер и переживающее его удаление — место для данных БД и пользовательских файлов. 03-docker-manual
Атомарный коммит Коммит, содержащий одно логическое изменение целиком и ничего лишнего; делает возможными осмысленный review, точечный revert и bisect. 00-git-manual
Ветка (branch) Подвижный указатель на коммит — файл в .git/refs/heads/ с хешем внутри; создание ветки не копирует файлы и поэтому практически бесплатно. 00-git-manual
Тег (tag) Неподвижная метка на коммите: lightweight — обычный ref, annotated — отдельный объект с автором, датой и сообщением (используется для релизов и может быть подписан). 00-git-manual