Домен и публикация
Beget и обычный хостинг, VPS, облака, DNS, TLS, SSH, Linux, Nginx, Apache, PHP-FPM и запуск приложений.
8 материаловДомены, хостинг, серверы, автоматические выпуски и сопровождение.
Beget и обычный хостинг, VPS, облака, DNS, TLS, SSH, Linux, Nginx, Apache, PHP-FPM и запуск приложений.
8 материаловDocker, Compose, GitLab CI/CD, сборки, тестовое окружение, секреты, миграции, переключение релизов и откат.
11 материаловРезервные копии и восстановление, журналы, мониторинг, наблюдаемость, сертификаты, диск, CDN, 502/504 и инциденты.
7 материаловУправляемые сервисы, serverless, очереди, масштабирование, нагрузка и затраты на эксплуатацию.
Материалы готовятсяГотовим воспроизводимый выпуск сайта: артефакт, домен, HTTPS, хостинг, проверка перед публикацией, резервная копия и откат. Продолжаем работой с приложениями, данными и эксплуатацией.
Различаем исходники, готовый артефакт и действующее окружение на примере статического release-lab.
Подготавливаем переносимый публичный результат и отделяем паспорт выпуска от настроек окружения.
Разбираем адреса сервера, DNS-записи и привязку домена, не смешивая их с публикацией файлов.
Подготавливаем TLS для основного домена и staging, разбирая подтверждение имени, продление и проверку соединения.
Готовим управляемый доступ, отдельного издателя и расположение файлов на учебном Ubuntu VPS.
Настраиваем изолированный статический сайт с настоящим статусом 404 и сохранёнными HTML-адресами .php.
Создаём воспроизводимую упаковку подготовленного публичного дерева без автоматической публикации.
Размещаем кандидат в отдельном закрытом окружении и отделяем проверку артефакта от настроек площадки.
Применяем артефакты и журнал выпусков к виртуальному хостингу, учитывая ограничения переключения каталога.
Подготавливаем неизменяемый каталог кандидата и меняем ссылку current на выделенном Linux-стенде.
Определяем условия возврата и проверяем прежний выпуск, не смешивая откат с резервным восстановлением.
Определяем состав копии и восстанавливаем статический выпуск в отдельном каталоге с проверкой поведения.
Связываем внешний запрос, идентификатор выпуска и журнал Nginx, различая доступность и полноту содержимого.
Выбираем внешние проверки доступности, содержимого и сертификата и связываем сигнал с конкретным действием.
Создаём отдельный контур выполнения PHP и отделяем его от сохранённых статических адресов .php.
Запускаем отдельный WSGI-процесс за Nginx и описываем его пользователя, окружение, перезапуск и журнал.
Описываем контейнерный вариант того же WSGI-приложения, его локальный порт, образ и проверку готовности.
Отделяем данные от сменяемого кода и готовим логическую копию PostgreSQL с проверяемым восстановлением.
Расширяем схему PostgreSQL так, чтобы новый и прежний прикладной код могли работать в переходном состоянии.
Разграничиваем издателя, процесс приложения и администратора и передаём секреты вне публичных артефактов.
Разделяем сериализацию публикации и проверку свежести, чтобы позднее завершившийся старый конвейер не заменил новый выпуск.
Согласуем кеш HTML, неизменяемые имена ресурсов и проверку origin при публикации и возврате версии.
Проходим цепочку прокси и приложения по наблюдениям, различая отказ соединения, некорректный ответ и ожидание upstream.