На чем написан Ozon: разбор технологического стека маркетплейса

Когда речь заходит о крупнейших российских маркетплейсах, Ozon неизменно занимает лидирующие позиции по трафику, обороту и количеству продавцов. Но мало кто задумывается о том, какие технологии стоят за этой гигантской платформой, обрабатывающей миллионы заказов ежедневно. Если вы продавец, разрабатываете интеграции с Ozon или просто интересуетесь высоконагруженными системами — понимание технической «кухни» платформы поможет оптимизировать работу и избежать типичных ошибок.

В этой статье мы детально разберём, на каких языках программирования написан Ozon, какие базы данных и фреймворки используются для фронтенда и бэкенда, а также как устроена архитектура сервиса. Вы узнаете, почему платформа выбрала именно эти технологии, как они масштабируются под нагрузку и какие инструменты применяются для обеспечения отказоустойчивости. Особое внимание уделим API-интеграциям — тому, с чем чаще всего сталкиваются продавцы и разработчики партнёрских сервисов.

Языки программирования в бэкенде Ozon

Основной «движок» Ozon работает на комбинации языков, каждый из которых решает специфические задачи. Главным языком бэкенда долгое время оставался Java — благодаря его надёжности, многопоточности и богатой экосистеме библиотек для enterprise-решений. Однако в последние годы платформа активно внедряет Go (Golang) для микросервисов, где критична производительность и низкая задержка.

По данным вакансий и публичных выступлений инженеров Ozon, примерно 60% бэкенд-кода написано на Java (включая Spring Boot), а оставшиеся 40% распределены между Go, Python (для аналитики и ML) и небольшими вставками на C++ для высоконагруженных компонентов вроде поискового движка. Например, сервис обработки платежей (Ozon Банк) полностью переведён на Go из-за требований к скорости транзакций.

  • 🔹 Java (Spring Boot) — основной язык для бизнес-логики, работы с базами данных и интеграций.
  • 🔹 Go (Golang) — микросервисы с высокими требованиями к производительности (платежи, поиск, кэширование).
  • 🔹 Python — аналитика, машинное обучение (рекомендательные системы, прогнозирование спроса).
  • 🔹 C++ — критически важные низкоуровневые компоненты (например, части поискового движка).

Интересно, что Ozon практически не использует PHP или Ruby — языки, популярные на заре развития платформы (2010–2015 гг.). Переход на Java и Go был обусловлен необходимостью обрабатывать растущую нагрузку: если в 2016 году пиковый трафик составлял ~100 тыс. RPS (запросов в секунду), то к 2026 году этот показатель превысил 1 млн RPS в дни крупных распродаж.

📊 Какой язык программирования вы считаете самым подходящим для высоконагруженных маркетплейсов?
Java
Go (Golang)
Python
C++
Другой

Фронтенд: как устроен интерфейс Ozon

Пользовательский интерфейс Ozon — это сложная экосистема из веб-версии, мобильных приложений (iOS/Android) и внутренних админ-панелей для продавцов. Здесь платформа делает ставку на современные фреймворки, обеспечивающие высокую скорость загрузки и плавную анимацию.

Основные технологии фронтенда:

  • 📱 React.js — основа для веб-версии и гибридных мобильных приложений (через React Native).
  • 📱 TypeScript — используется повсеместно для типизации и уменьшения ошибок в коде.
  • 📱 Next.js — для серверного рендеринга (SSR) и оптимизации SEO (критично для маркетплейса).
  • 🎨 CSS-in-JS (Emotion, Styled Components) — стилизация компонентов.

Мобильные приложения Ozon изначально разрабатывались нативно (Swift для iOS, Kotlin для Android), но с 2022 года команда активно мигрирует на React Native для ускорения разработки и унификации кода. Это позволило сократить время выпуска новых фич с 3–4 недель до 1–2.

⚠️ Внимание: Если вы разрабатываете партнёрское приложение для интеграции с Ozon API, учитывайте, что платформа требует поддержки OAuth 2.0 и работы с gRPC для некоторых внутренних сервисов. Классический REST API доступен, но имеет ограничения по скорости обработки запросов.
Платформа Основные технологии Дополнительные инструменты
Веб-версия React.js, TypeScript, Next.js Redux, GraphQL (Apollo Client), Webpack
Мобильное приложение (iOS) Swift (UIKit + SwiftUI) Combine, Core Data, Firebase
Мобильное приложение (Android) Kotlin (Jetpack Compose) Coroutines, Room, Dagger 2
Админ-панели React.js, Material-UI Formik, React Query, i18next

Базы данных и хранение информации

Один из ключевых вызовов для Ozon — обработка петабайтов данных: от каталога товаров (более 30 млн SKU) до истории заказов и логов пользовательской активности. Платформа использует комбинацию реляционных и NoSQL-баз, а также собственные решения для кэширования.

Основные базы данных:

  • 🗃️ PostgreSQL — основная реляционная БД для транзакционных данных (заказы, платежи, пользователи).
  • 🗃️ MongoDB — хранение полуструктурированных данных (каталог товаров, отзывы, аналитика).
  • 🗃️ ClickHouse — аналитика и отчёты (например, статистика продаж для продавцов).
  • 🗃️ Redis — кэширование сессий, корзин покупателей и часто запрашиваемых данных.
  • 🗃️ Tarantool — собственное решение Ozon для высоконагруженного кэширования (используется в поисковом движке).

Для обеспечения отказоустойчивости данные реплицируются между дата-центрами в Москве, Санкт-Петербурге и Казани. Например, база заказов дублируется в трёх локациях с синхронной репликацией, что позволяет избежать потерь данных даже при падении одного ЦОДа.

Архитектура: микросервисы и облачные решения

Ozon построена на основе микросервисной архитектуры, где каждый компонент (поиск, корзина, платежи, логистика) работает как отдельный сервис. Это позволяет масштабировать части системы независимо: например, во время «Чёрной пятницы» можно увеличить мощности только для сервиса обработки заказов, не затрагивая остальные.

Ключевые элементы архитектуры:

  • 🌐 Kubernetes (K8s) — оркестрация контейнеров (более 10 тыс. нод в кластере).
  • 🌐 Istio — сервисная сетка для управления трафиком между микросервисами.
  • 🌐 Apache Kafka — обработка потоковых данных (например, обновление статусов заказов в реальном времени).
  • 🌐 gRPC — внутренняя коммуникация между сервисами (замена REST для критичных операций).

Инфраструктура развёрнута в собственных дата-центрах (около 70% мощностей) и частично в облаке Yandex Cloud (для резервирования и тестирования новых фич). Например, сервис Ozon Рут (доставка) полностью работает в облаке, чтобы быстро масштабироваться в зависимости от нагрузки.

Почему Ozon не использует AWS или Google Cloud?

Платформа изначально делала ставку на собственную инфраструктуру из-за требований безопасности (работа с платежами и персональными данными) и желания избежать зависимости от зарубежных провайдеров. Однако после 2022 года часть резервных мощностей была перенесена в Yandex Cloud для повышения отказоустойчивости.

API Ozon: как устроена интеграция для продавцов

Для продавцов и партнёров Ozon предоставляет два типа API:

  1. REST API — классический интерфейс для работы с заказами, товарами и отчётами. Доступен по адресу https://api-seller.ozon.ru.
  2. gRPC API — более быстрый и эффективный протокол для высоконагруженных интеграций (например, синхронизация остатков в реальном времени).

Пример запроса для получения списка заказов через REST:

GET https://api-seller.ozon.ru/v2/posting/fbs/unfulfilled

Headers:

- Client-Id: {ваш_client_id}

- Api-Key: {ваш_api_key}

Основные endpoints для продавцов:

  • 📦 /v2/products/info — информация о товарах.
  • 📦 /v2/posting/fbs/list — список заказов FBS.
  • 📦 /v1/analytics/data — аналитика продаж.
  • 📦 /v1/finance/transaction/list — финансовые транзакции.
⚠️ Внимание: При работе с API Ozon обязательно настройте повторные запросы (retry) с экспоненциальной задержкой. Платформа ограничивает количество запросов (rate limiting), и при превышении лимита возвращает ошибку 429 Too Many Requests. Рекомендуемая стратегия: 3 попытки с интервалами 1с, 3с и 10с.

Получить Client-Id и Api-Key в личном кабинете|Настроить HTTPS-подключение (обязательно!)|Реализовать обработку ошибок 429 и 500|Протестировать запросы в песчанке (sandbox)|Настроить вебхуки для уведомлений о новых заказах-->

Безопасность и защита данных

Безопасность в Ozon построена на нескольких уровнях:

  1. Аутентификация — двухфакторная авторизация (2FA) для продавцов и сотрудников, OAuth 2.0 для API.
  2. Шифрование — все данные передаются по TLS 1.3, а чувствительная информация (платежи, паспортные данные) шифруется на уровне базы данных.
  3. DDoS-защита — собственное решение на базе Nginx и Cloudflare (фильтрация трафика на границе сети).
  4. Мониторинг — системы Prometheus + Grafana отслеживают аномалии в реальном времени.

Особое внимание уделяется защите от мошенничества: например, сервис Ozon Банк использует машинное обучение для detection фродовых транзакций. Модели обучаются на исторических данных о возвратах и спорных платежах, что позволяет блокировать до 98% подозрительных операций ещё на этапе оформления заказа.

Как эти технологии влияют на работу продавцов

Понимание технической стороны Ozon помогает продавцам оптимизировать взаимодействие с платформой:

  • 🛒 Скорость обработки заказов зависит от архитектуры микросервисов. В пиковые часы (18:00–22:00 МСК) возможны задержки до 1–2 секунд при обновлении статусов.
  • 📊 Аналитика в личном кабинете обновляется с задержкой до 24 часов из-за batch-обработки данных в ClickHouse.
  • 🔄 Синхронизация остатков через API работает быстрее, если использовать gRPC вместо REST (разница до 300 мс на запрос).
  • 📦 Логистика (FBS/FBO) управляется отдельным кластером сервисов, поэтому проблемы с доставкой редко затрагивают другие части платформы.

Если вы используете сторонние сервисы для автоматизации (например, МойСклад или ), убедитесь, что они поддерживают последние версии API Ozon. Например, с 2026 года устарели endpoints вида /v1/... — их заменили на /v2/... с новыми полями в ответах.

FAQ: Частые вопросы о технологиях Ozon

Можно ли интегрироваться с Ozon через SOAP?

Нет, Ozon полностью отказался от SOAP в пользу REST и gRPC. Последний endpoint для SOAP (/soap/v1) был отключён в 2021 году.

Какой язык программирования лучше выбрать для написания бота для Ozon?

Для ботов, работающих с API, подойдёт любой язык с поддержкой HTTP-запросов: Python (библиотека requests), JavaScript (axios), Go или Java. Если нужна высокая производительность (например, для парсинга каталога), рекомендуем Go или Rust.

Почему в личном кабинете Ozon иногда долго грузятся отчёты?

Отчёты генерируются динамически на основе данных из ClickHouse, который оптимизирован для аналитических запросов, но не для оперативной работы. В пиковые часы (утро и вечер) время ответа может увеличиваться до 10–15 секунд. Решение: скачивайте отчёты в непиковое время или используйте API для автоматического экспорта данных.

Какие базы данных использует Ozon для хранения информации о товарах?

Основной каталог товаров хранится в MongoDB (из-за гибкой схемы и возможности быстро добавлять новые атрибуты), а данные о остатках и ценах — в PostgreSQL (для транзакционной целостности). Для поиска используется отдельный индекс на базе Elasticsearch + собственные алгоритмы ранжирования.

Можно ли получить доступ к исходному коду Ozon?

Нет, Ozon — проприетарная платформа с закрытым исходным кодом. Однако компания иногда публикует открытые инструменты на GitHub (например, библиотеки для работы с API или утилиты для тестирования производительности).