webprogr.ru Новости

RSS

{{toodo.preview}}

...
{{toodo.name}}

{{toodo.preview}}

далее..

{{toodo.preview}}

{{toodo.name}}

{{toodo.preview}}

смотреть..

toodo.name

{{toodo.preview}}

{{toodo.name}}

{{toodo.preview}}

перейти...

{{toodo.preview}}

...
{{toodo.name}}

{{toodo.preview}}

далее..

{{toodo.preview}}

{{toodo.name}}

{{toodo.preview}}

смотреть..

toodo.name

{{toodo.preview}}

{{toodo.name}}

{{toodo.preview}}

перейти...


Последние новости

Лабораторная работа XI. Production-развертывание Symfony-приложения

Production-развертывание и итоговый сквозной проект

Лабораторная работа 11. Production-развертывание Symfony-приложения

Аудиторная работа: 3 ак. ч.
Самостоятельная работа: 4 ак. ч.

Цель: подготовить BizFlow к production-развертыванию.

Типовой deployment Symfony включает установку production-зависимостей, настройку переменных окружения, выполнение миграций, очистку/прогрев кэша и проверку приложения. [30] Composer рекомендует оптимизированную автозагрузку для production. [31]

Задание

  1. Создайте:

deploy/

  1. Подготовьте production-конфигурацию для одного варианта:

Nginx + PHP-FPM

или:

Apache + PHP

  1. DocumentRoot должен указывать только на:

public/

  1. Запрещен прямой HTTP-доступ к:

.env
.env.local
composer.json
composer.lock
src/
config/
var/
vendor/

  1. Создайте:

deploy/deploy.sh

  1. Скрипт должен выполнять логические этапы:

получение новой версии;
установка production dependencies;
миграции;
очистка cache;
warmup;
проверка приложения.

  1. Используйте production-установку Composer:

composer install --no-dev --optimize-autoloader

  1. Production environment:

APP_ENV=prod
APP_DEBUG=0

  1. Очистите production cache:

APP_ENV=prod APP_DEBUG=0 php bin/console cache:clear

  1. Выполните миграции.

  2. Реализуйте:

GET /health

  1. /health должен проверять:

приложение запущено;
БД доступна.

  1. /health не должен раскрывать:

пароли;
DSN;
stack trace;
полные пути файловой системы.

  1. Добавьте production logging.

  2. Проверьте, что APP_DEBUG=0.

  3. Проверьте .gitignore.

  4. Выполните:

composer audit

  1. Не допускайте production deployment при падении тестов.

  2. Создайте:

deploy/pre-deploy-check.sh

  1. Скрипт должен проверять:

composer validate;
tests;
Doctrine schema;
Twig;
YAML;
наличие APP_ENV=prod;
отсутствие APP_DEBUG=1.

  1. Подготовьте rollback-план:

docs/deployment/rollback.md

  1. Rollback-план должен включать:

rollback application version;
rollback strategy для БД;
резервное копирование;
проверку health endpoint.

  1. Создайте production checklist:

docs/deployment/checklist.md

  1. Минимум 20 пунктов.

  2. Выполните два ИИ-ревью.

Запрос DevOps-агенту

Ты — DevOps engineer для Symfony.

Проанализируй проект и подготовь production deployment checklist.

Проверь:
APP_ENV;
APP_DEBUG;
Composer;
autoload;
cache;
Doctrine migrations;
permissions;
public directory;
secrets;
web server;
logs;
health checks;
rollback.

Не предполагай наличие Kubernetes или облачного сервиса.

Запрос security reviewer

Ты — security reviewer.

Проведи pre-production review Symfony-приложения.

Ищи:
debug в production;
открытые .env;
секреты в Git;
directory listing;
доступ к var/;
доступ к vendor/;
небезопасные permissions;
небезопасные upload directories;
необработанные stack traces;
уязвимые Composer dependencies.

Сформируй блокирующие deployment проблемы.

Самопроверка

composer validate
composer audit
php bin/console lint:yaml config
php bin/console lint:twig templates
php bin/console doctrine:schema:validate
php bin/phpunit
APP_ENV=prod APP_DEBUG=0 php bin/console cache:clear

Критерии приемки

[ ] DocumentRoot = public/
[ ] production dependencies устанавливаются
[ ] optimized autoloader используется
[ ] APP_DEBUG=0
[ ] миграции предусмотрены
[ ] cache clear выполняется
[ ] тесты являются deployment gate
[ ] /health работает
[ ] secrets не публикуются
[ ] имеется rollback plan
[ ] имеется production checklist
[ ] имеется AI log

Официальная документация Symfony относит установку vendor dependencies, миграции и очистку/прогрев cache к типовым этапам deployment. [30]

Рейтинг@Mail.ru