Глоссарий терминов¶
Общий глоссарий терминов, встречающихся в мануалах курса. При добавлении
нового мануала — сверяйтесь со скиллом 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 |