Техническое задание: Оптимизация производительности Django-проекта
Краткое описание проекта
Требуется опытный backend-разработчик для проведения комплексной оптимизации производительности существующего веб-проекта на Django. Проект представляет собой каталог товаров с большим объемом данных, интенсивной работой с изображениями и API-интерфейсами. Основная цель - выявление и устранение «узких мест», приводящих к замедлению работы системы.
Основные направления для оптимизации
- API-слой: Анализ и оптимизация эндпоинтов (N+1 запросы, кэширование, пагинация, сериализация).
- Обработка изображений: Оптимизация процессов загрузки, ресайза, сжатия и хранения графических файлов. Возможное внедрение асинхронной обработки или использование CDN.
- База данных (PostgreSQL/MySQL): Анализ и оптимизация медленных запросов, пересмотр индексов, настройка конфигурации СУБД, оптимизация миграций.
- Общая архитектура: Проверка эффективности использования кэша (Redis/Memcached), настройка Celery для фоновых задач, анализ использования памяти и CPU.
Ожидаемые результаты работы
- Детальный отчет с анализом текущих проблем производительности (профилирование, логирование медленных запросов).
- Внедрение решений, обеспечивающих заметное повышение скорости отклика API и загрузки страниц.
- Снижение нагрузки на сервер и базу данных.
- Рекомендации по дальнейшему поддержанию высокой производительности и масштабированию.
Требования к исполнителю
- Глубокий опыт работы с Django и Django REST Framework.
- Практический опыт профилирования и оптимизации Python/Django-приложений.
- Знание принципов оптимизации SQL-запросов и работы с СУБД.
- Опыт работы с системами кэширования и очередями задач (Celery).
- Умение работать с инструментами мониторинга и профилирования.