Техническое задание для PHP-разработчика (Laravel)
Общая информация
Необходим высококвалифицированный PHP-разработчик с глубоким пониманием архитектуры, SEO и серверной настройки для развития и оптимизации существующего проекта на Laravel. Задачи направлены на повышение производительности, отказоустойчивости и масштабируемости.
Основные задачи
1. Оптимизация системы кэширования
- Переработать текущую систему кэширования страниц, настроенную на инвалидацию раз в 24 часа.
- Реализовать механизм обновления кэша по событию (например, при изменении контента в админке), учитывая почти статическую природу контента на сайте.
- Обеспечить корректную работу кэша для всех типов страниц.
2. Восстановление и настройка CI/CD пайплайна
- Настроить и стабилизировать работу инструмента для развертывания (Coolify), который используется для деплоя через Git.
- Обеспечить его бесперебойную работу и отказоустойчивость.
3. Защита от парсинга и DDoS-атак
- Внедрить адекватный механизм Rate Limiting (ограничения запросов) для защиты от чрезмерной нагрузки.
- Настроить логирование IP-адресов или подсетей, нарушающих лимиты.
- Реализовать инструмент для ручной или автоматической блокировки таких адресов с отдачей ошибки 429.
- Оптимизировать распределение нагрузки на все доступные ядра CPU.
4. Масштабирование проекта на поддомены
- Создать три копии основного (prod) проекта на отдельных поддоменах для сбора иного контента.
- Для каждого нового проекта реализовать:
- Индивидуальные SEO-настройки и работы.
- Корректно работающие файлы sitemap.xml.
- Обеспечить общую админ-панель для управления всеми проектами.
- Реализовать механизм перелинковки между проектами на поддоменах по аналогии с примером (блоки с оценками и ссылками между связанными сущностями).
- Настроить общие параметры и данные, которые должны быть синхронизированы между проектами.
5. Исправление генерации Sitemap
- Переписать или исправить текущую криво работающую логику генерации sitemap.xml.
- Обеспечить корректное формирование карты сайта для всех страниц, включая новые поддомены.
Требования к исполнителю
- Опыт работы с Laravel на продвинутом уровне.
- Понимание принципов построения масштабируемой архитектуры.
- Знание SEO-оптимизации для веб-проектов.
- Опыт настройки серверов, CI/CD (Coolify, Git) и систем мониторинга.
- Умение реализовывать эффективные системы кэширования и защиты.