Backend / API
Backend и API
High-load сервисы, REST/GraphQL API, интеграции. Python, Go, FastAPI.
Стоимость
250 000 — 2 000 000 ₽
Сроки
1–4 месяца
Типовые задачи
Что реально попадает в работу
API для мобильного приложения
Ситуация. Есть продукт в App Store / Google Play, но бэкенд — legacy на PHP с хрупкими эндпоинтами, 3–4 секунды отклика на профиле пользователя.
Решение. Django + DRF с типизированными сериализаторами и пагинацией. Оптимизация N+1, select_related/prefetch_related, кэш тяжёлых ответов в Redis. Метрики, чтобы видеть p95/p99.
Интеграционный слой
Ситуация. Компания использует 1С, amoCRM, Битрикс24, SMS-шлюз, банк-клиент — данные синхронизируются руками раз в сутки, ошибки ловятся постфактум.
Решение. FastAPI-хаб с очередями в Celery и чёткими контрактами. Идемпотентность, ретраи, dead-letter queue, алерты в Telegram/Slack при сбоях. Логи и трассировки в Sentry.
Real-time и события
Ситуация. Нужны мгновенные уведомления, онлайн-статусы, кабинет с обновлением данных без перезагрузки — WebSocket/Server-Sent Events.
Решение. Django Channels или FastAPI + WebSocket. Redis pub/sub для фанаута, JWT для авторизации подключений. Для масштабирования — отдельный процесс на uvicorn за Nginx.
ETL и тяжёлые пайплайны
Ситуация. Данные приходят из нескольких источников, нужна ночная обработка и выгрузка отчётов. Cron-скрипты на проде ломаются, долго и молча.
Решение. Celery + Beat для расписания, отдельные воркеры для тяжёлых задач. Прогресс-трекинг, алерты на фейлы, хранение артефактов в S3. При большом объёме — переход на Airflow/Dagster.
Процесс
Как я веду проект от брифа до релиза
- 01
Аудит и контракты
Смотрю существующий код или техзадание, фиксирую сценарии и SLA. Пишу OpenAPI / GraphQL-схему как основу для согласования с фронтом.
3–5 дней
- 02
Архитектура и нагрузочная модель
Схема данных, план кэшей, очереди, план индексов. Прикидываю ожидаемый RPS и p95, выбираю стек осознанно, а не по инерции.
1 неделя
- 03
Итеративная реализация
Спринты по 2 недели, каждый заканчивается рабочим эндпоинтом с тестами (unit + integration) и замерами производительности. Staging с данными, приближенными к бою.
1–3 месяца
- 04
Интеграции и устойчивость
Подключаем внешние системы, накрываем ретраями, идемпотентностью, circuit breaker. Прогоны на нагрузке, профилирование, оптимизация горячих путей.
2–4 недели
- 05
Деплой и сопровождение
Деплой с zero-downtime (blue-green или rolling), мониторинг (Prometheus/Grafana + Sentry), runbook для инцидентов. 3 месяца гарантии на код.
1 неделя + 3 месяца поддержки
Архитектура
Архитектура высоконагруженного backend
Горячие пути отделены от тяжёлых. Синхронные ответы приходят от API за миллисекунды, медленная работа уезжает в очередь и возвращается событиями. Кэш перед PostgreSQL ловит 70–90% повторяющихся запросов.
Детали
Django и FastAPI одновременно — это не противоречие
Django хорош для CRUD-тяжёлых частей: админка, миграции, ORM с проверенным пулом подключений, система прав из коробки. На нём быстро делать всё, что опирается на модель данных и правила.
FastAPI — для горячих эндпоинтов, где критичны латентность и async-IO: вебхуки, стриминг, интеграции с внешними API. Оба живут в одном приложении рядом: FastAPI импортирует Django-модели через ORM, разделяется только по процессам.
Почему Celery, а не «просто запустить скрипт»
Как только появляется «отправь email», «сгенерируй PDF» или «синхронизируй с 1С» — в запросе это делать нельзя: пользователь не должен ждать 4 секунды из-за SMTP-таймаута. Celery берёт задачу в очередь, воркер обрабатывает её асинхронно, запрос возвращается мгновенно.
Плюс: ретраи (три попытки с экспоненциальной задержкой), dead-letter queue для сбойных задач, прогресс и результаты в Redis. Cron-скрипт ничего из этого не даёт — он либо работает, либо молча умирает в 3 часа ночи.
Когда GraphQL, а когда REST
REST — когда клиент фиксированный (мобилка, партнёр по интеграции) и ответы стабильные. Простой, кэшируется через HTTP, понятен любому разработчику за 10 минут.
GraphQL — когда клиентов много и они запрашивают разные срезы данных. Дашборд тянет 40 полей, мобилка 5 — оба делают один запрос без over-fetching. Из минусов: сложнее кэш и rate-limiting, нужна дисциплина с N+1 (DataLoader обязателен).
Где разворачивается
Инфраструктура и хранение данных
Платформы
- VPS (Hetzner, Selectel, Timeweb) — от 1 500 ₽/мес
- AWS / GCP — managed PostgreSQL + autoscaling API
- Яндекс.Облако — когда нужна российская юрисдикция и ФЗ-152
- Kubernetes — при 5+ микросервисах и multi-env
Базы и хранилища
- PostgreSQL 15+ — основное хранилище
- Redis — кеш, сессии, брокер очередей
- ClickHouse — логи событий и аналитика
- S3 / MinIO — артефакты фоновых задач, медиа
Стек и платформу выбираем после замеров ожидаемой нагрузки. Overkill-инфраструктура на этапе запуска сжигает бюджет без пользы.
Вопросы и ответы
Что обычно спрашивают
- Сколько стоит backend под проект?
- Простой REST API для мобильного приложения — от 300 тыс. ₽ (1–2 месяца). Интеграционный слой с очередями и повторами — 700 тыс. — 1,5 млн ₽ (2–3 месяца). Высоконагруженный сервис с SLA и мониторингом — от 1,5 млн ₽ (3–5 месяцев).
- Почему Python, а не Node.js или Go?
- Python — лучший выбор для CRUD + интеграции + фоновая обработка благодаря зрелой экосистеме (Django, Celery, pandas, requests). Для горячих путей поднимаем FastAPI или отдельный Go-сервис. Я не религиозен насчёт языка — выбираю по задаче.
- Что с нагрузочным тестированием?
- Прогон через k6 или Locust на staging с продакшн-подобными данными. Замеряем p50/p95/p99 и RPS до и после оптимизаций. Результаты фиксируем в отчёте — есть объективное подтверждение, что SLA держится.
- Как обеспечивается безопасность API?
- JWT или OAuth2 для авторизации, rate-limiting на уровне Nginx, валидация входа через сериализаторы/Pydantic, защита от SQL-injection через ORM, HTTPS обязательно, секреты в переменных окружения. Для критичных систем — WAF и 2FA.
- Делаете ли миграцию с существующего бэкенда?
- Да — типичная задача. Пишем новое API рядом, параллелим трафик через feature flags или blue-green, постепенно переключаем эндпоинты. Старое отключаем, когда новое работает стабильно. Без даунтайма.
- Как передаётся проект?
- Репозиторий (GitHub/GitLab), документация по API (OpenAPI/GraphQL schema), runbook для инцидентов, доступы к инфраструктуре. Онбординг для твоей команды — 2–3 часа созвонов. После передачи остаюсь на 3 месяца по гарантии.

