Какие проблемы решает профессиональная установка Saleor?
После развертывания Saleor по официальной документации многие сталкиваются с ошибками миграции, нестабильной работой Celery и тормозящими GraphQL-запросами. Эти проблемы не случайны — они связаны с типовыми ошибками конфигурации. Мы решаем их каждый день, настраивая Saleor под production.
Как бороться с N+1 запросами в GraphQL?
GraphQL-резолверы Saleor без оптимизации ORM генерируют десятки SQL-запросов на каждый запрос списка товаров. Например, запрос products(first:10) приводит к 11 обращениям к базе данных: один для товаров, и по одному на каждую категорию. Это классическая проблема N+1. Решение — использование select_related и prefetch_related в резолверах. Для пагинации рекомендуем keyset pagination, который не зависит от смещения и работает значительно быстрее на больших каталогах.
Почему Celery работает нестабильно и как это исправить?
Дефолтная конфигурация Celery не рассчитана на пиковую нагрузку. При отсутствии настройки конкурентности воркеров и подтверждения задач, часть сообщений теряется при перезапуске. Мы настраиваем --concurrency=4, включаем CELERY_TASK_ACKS_LATE и используем мониторинг через Flower для предотвращения потери задач.
Как ускорить работу базы данных?
PostgreSQL без индексов на поля, по которым часто фильтруют (цена, дата, категория), становится узким местом. Мы анализируем планы запросов через EXPLAIN ANALYZE и добавляем составные индексы. Например, для фильтрации по категории и цене — индекс (category_id, price). Как указано в документации Saleor, такая оптимизация критична для производительности.
Как мы настраиваем Saleor для production
Используем последнюю стабильную версию Saleor на Django с Python 3. База данных — PostgreSQL с настроенными индексами, кэш — Redis, фоновые задачи — Celery с Redis-брокером. Веб-сервер — Gunicorn с gevent workers, Nginx — статика и проксирование, S3 (MinIO или AWS) — медиафайлы. Мониторинг через Sentry.
Кейс: как мы ускорили магазин с 200 000 товаров в 10 раз
Стандартная пагинация offset на каталоге приводила к тормозам на 50+ страницах. Мы заменили её на keyset pagination с курсором по ID. Keyset pagination работает в 10 раз быстрее, чем offset-page, на каталогах с >10 000 товаров. Дополнительно добавили кэширование категорий в Redis. Время ответа сократилось с 2 секунд до 200 мс. Для Celery настроили количество воркеров под нагрузку и добавили повторную обработку упавших задач. Экономия на инфраструктуре составила до 40%.
Сравнение способов установки
| Критерий | Docker Compose | Ручная установка |
|---|---|---|
| Скорость развертывания | Быстро (2-4 часа) | Дольше (4-8 часов) |
| Простота поддержки | Высокая | Средняя |
| Гибкость конфигурации | Ограничена | Полный контроль |
| Рекомендация | Для разработки и небольших проектов | Для сложных production |
Технические детали установки
Мы используем Ansible для автоматизации развертывания на bare-metal серверах и Terraform для облачных инстансов. Все компоненты контейнеризированы, оркестрация через Docker Compose или Kubernetes для масштабируемых решений.
Процесс работы
- Аудит — анализ текущей инфраструктуры, требований к нагрузке.
- Проектирование — выбор архитектуры (Docker или bare-metal), схемы БД, конфигурации компонентов.
- Установка — развёртывание Saleor, настройка PostgreSQL, Redis, Celery, Nginx, SSL.
- Интеграция — подключение S3, настройка Dashboard и Storefront, платёжных шлюзов.
- Тестирование — нагрузочное тестирование, проверка на N+1, оптимизация.
- Передача — документация, доступы, обучение команды.
Что входит в услугу
- Полностью настроенный Saleor (backend, Dashboard, Storefront).
- Доступы к серверу, админке, Storefront.
- Инструкция по эксплуатации.
- Оптимизация производительности (индексы, кэш, пагинация).
- Поддержка в течение 2 недель после сдачи.
Сроки
| Этап | Длительность |
|---|---|
| Базовая установка (Docker) | 2-4 часа |
| Production-инфраструктура | 1-2 дня |
| Полная настройка с интеграциями | до 5 дней |
Типичные ошибки при установке Saleor
- Забыть настроить
ALLOWED_HOSTSиALLOWED_CLIENT_HOSTS— Dashboard не сможет соединиться с API. - Использовать дефолтный
SECRET_KEY— угроза безопасности, обязательно сменить. - Не настроить S3 bucket policy — медиафайлы не будут отображаться.
- Не настроить таймауты Celery — задачи теряются при длительном выполнении.
Почему стоит доверить установку Saleor профессионалам?
Наша команда имеет 7 лет опыта в Django и e-commerce. Мы успешно установили Saleor для 20+ проектов, включая каталоги с миллионами товаров. По данным GitHub, Saleor — самая популярная open-source e-commerce платформа на Django. Мы гарантируем стабильную работу под нагрузкой и оптимизацию под вашу специфику. Получите бесплатную консультацию и технический аудит вашей текущей инфраструктуры. Закажите установку Saleor под ключ — мы сделаем всё быстро и надёжно.
Дополнительные материалы: GraphQL.







