Выпуски и окружения
Docker, Compose, GitLab CI/CD, сборки, тестовое окружение, секреты, миграции, переключение релизов и откат.
Материалы
- Деплоймент и сопровождение веб-сайта
Готовим воспроизводимый выпуск сайта: артефакт, домен, HTTPS, хостинг, проверка перед публикацией, резервная копия и откат. Продолжаем работой с приложениями, данными и эксплуатацией.
- Модель выпуска: что именно мы развёртываем
Различаем исходники, готовый артефакт и действующее окружение на примере статического release-lab.
- Артефакт, конфигурация и идентификатор версии
Подготавливаем переносимый публичный результат и отделяем паспорт выпуска от настроек окружения.
- GitLab CI: упаковка готового сайта
Создаём воспроизводимую упаковку подготовленного публичного дерева без автоматической публикации.
- Тестовое окружение для того же выпуска
Размещаем кандидат в отдельном закрытом окружении и отделяем проверку артефакта от настроек площадки.
- Версии и переключение текущего выпуска
Подготавливаем неизменяемый каталог кандидата и меняем ссылку current на выделенном Linux-стенде.
- Откат: вернуть известное рабочее состояние
Определяем условия возврата и проверяем прежний выпуск, не смешивая откат с резервным восстановлением.
- Docker Compose: приложение в контейнере
Описываем контейнерный вариант того же WSGI-приложения, его локальный порт, образ и проверку готовности.
- Миграции базы и совместимость отката
Расширяем схему PostgreSQL так, чтобы новый и прежний прикладной код могли работать в переходном состоянии.
- Секреты, пользователи и права
Разграничиваем издателя, процесс приложения и администратора и передаём секреты вне публичных артефактов.
- Параллельные и устаревшие выпуски CI
Разделяем сериализацию публикации и проверку свежести, чтобы позднее завершившийся старый конвейер не заменил новый выпуск.
- Лаборатория GitLab CI/CD
12 уроков: jobs и стадии, артефакты, workflow rules, needs, кэш, переменные, отчёты, runner и ручной staging-пакет.
- Задача pipeline и первый job
Отделяем исходники, выполняемое задание и результат конвейера на примере учебного каталога.
- Стадии и изоляция заданий
Создаём build и verify и передаём файлы между ними через artifacts.
- Команды, скрипты и коды завершения
Выносим механику сборки в файлы и сохраняем ошибку как результат job.
- События, workflow и правила job
Различаем создание pipeline и включение заданий и предотвращаем дубли для открытого Merge Request.
- Артефакт, версия и хэши файлов
Сохраняем происхождение выпуска и проверяем передачу одного результата без повторной сборки.
- Зависимости jobs с needs
Строим граф задач и явно указываем, какой артефакт получает каждый потребитель.
- Кэш и воспроизводимый результат
Добавляем необязательный кэш сводки и объясняем ключи, политики и отсутствие сохранённых данных.
- Переменные и границы секретов
Различаем конфигурацию, секреты и метаданные, создаваемые после сборки.
- Отчёты проверки и JUnit
Сохраняем диагностический JSON и структурированный отчёт даже при нарушении целостности выпуска.
- Runner и контейнерная среда
Различаем GitLab, runner и executor и описываем подходящую среду без привилегированной сборки образов.
- Ручная подготовка staging
Разрешаем отдельное действие после проверки и сохраняем тот же выпуск в job-артефакте.
- Общая конфигурация и диагностика
Выносим jobs в локальный include, раскрываем extends и читаем итоговую схему для конкретного события.