Техническое задание: Оптимизация производительности Django-проекта

Краткое описание проекта

Требуется опытный backend-разработчик для проведения комплексной оптимизации производительности существующего веб-проекта на Django. Проект представляет собой каталог товаров с большим объемом данных, интенсивной работой с изображениями и API-интерфейсами. Основная цель - выявление и устранение «узких мест», приводящих к замедлению работы системы.

Основные направления для оптимизации

  • API-слой: Анализ и оптимизация эндпоинтов (N+1 запросы, кэширование, пагинация, сериализация).
  • Обработка изображений: Оптимизация процессов загрузки, ресайза, сжатия и хранения графических файлов. Возможное внедрение асинхронной обработки или использование CDN.
  • База данных (PostgreSQL/MySQL): Анализ и оптимизация медленных запросов, пересмотр индексов, настройка конфигурации СУБД, оптимизация миграций.
  • Общая архитектура: Проверка эффективности использования кэша (Redis/Memcached), настройка Celery для фоновых задач, анализ использования памяти и CPU.

Ожидаемые результаты работы

  • Детальный отчет с анализом текущих проблем производительности (профилирование, логирование медленных запросов).
  • Внедрение решений, обеспечивающих заметное повышение скорости отклика API и загрузки страниц.
  • Снижение нагрузки на сервер и базу данных.
  • Рекомендации по дальнейшему поддержанию высокой производительности и масштабированию.

Требования к исполнителю

  • Глубокий опыт работы с Django и Django REST Framework.
  • Практический опыт профилирования и оптимизации Python/Django-приложений.
  • Знание принципов оптимизации SQL-запросов и работы с СУБД.
  • Опыт работы с системами кэширования и очередями задач (Celery).
  • Умение работать с инструментами мониторинга и профилирования.