Как OpenAI масштабирует хранилище для 1 миллиарда пользователей ChatGPT

За каждым привычным действием в ChatGPT — входом в аккаунт, открытием нового чата, проверкой настроек — стоит невидимая инфраструктура, которая должна работать мгновенно и без сбоев. OpenAI опубликовала подробный технический разбор того, как им удалось построить эту инфраструктуру — и какой ценой.

ℹ Контекст
Эта статья — перевод и адаптация первой части технического поста OpenAI о платформе Habitat. Вторая часть, посвящённая мультитенантности и оптимизации Azure Cosmos DB, выйдет позже.

Что такое Habitat?

Habitat — это платформа онлайн-хранилища, созданная OpenAI для быстрого и надёжного доступа к данным со стороны всех продуктов компании. Проще говоря, это центральный «мозг» хранения данных: именно Habitat отвечает за то, чтобы при вашем входе в ChatGPT система мгновенно «вспомнила», кто вы, какие у вас настройки и история переписок.

Каждый продукт OpenAI зависит от быстрого и надёжного доступа к данным — будь то вход в систему, проверка настроек Codex или начало нового разговора в ChatGPT. Каждое из этих действий может потребовать множества отдельных запросов к базе данных. Если запросы медленные — продукт ощущается медленным. Если запросы не выполняются — продукт перестаёт работать вовсе.

«Идея Habitat проста: разработчики продуктов не должны думать об управлении базами данных.»
— Команда инфраструктуры OpenAI

Масштаб, который трудно представить

Сегодня Habitat обрабатывает более 70 миллионов запросов каждую секунду, обеспечивая работу продуктов, которыми пользуются более 1 миллиарда человек каждую неделю, почти в 40 географических регионах.

Для понимания контекста: ChatGPT стал первым приложением в истории, преодолевшим отметку в 1 миллиард ежемесячных активных пользователей в июне 2026 года.

Два года назад Habitat представлял собой простую Python-библиотеку на стороне клиента, подключённую к единственной базе данных. Сегодня это сложная распределённая система, обслуживающая более 500 петабайт данных.

ПоказательТогда (середина 2024)Сейчас (2026)
АрхитектураPython-библиотекаРаспределённый сервис на Rust
Запросов в секундуЕдиничные70+ миллионов
Объём данныхОдин экземпляр БД500+ петабайт
Регионов1~40
Пользователей1+ млрд в неделю

Эволюция: от библиотеки к сервису


graph TD
    A["mid-2024: Python-библиотека\nв коде ChatGPT"] --> B["Выделение в отдельный сервис\n(Python)"] 
    B --> C["Оптимизация asyncio,\nEnvoy, connection pooling"]
    C --> D["Q2 2026: Переписан на Rust\n2 инженера + Codex + GPT-5.5"]
    D --> E["Текущее состояние:\n70M+ RPS, 95% на Rust"]

Шаг 1: Python-библиотека

Habitat возник из простой идеи: разработчики продуктов не должны думать об управлении базами данных. В середине 2024 года он начинался как небольшая Python-библиотека, встроенная в основной сервер ChatGPT.

Архитектура была предельно простой: клиентская часть на Python обращалась к единственной базе данных. Это работало — но только до определённого уровня нагрузки.

Шаг 2: Выделение в самостоятельный сервис

По мере роста ChatGPT стало очевидно, что библиотека не справляется с требованиями нескольких продуктов одновременно. В этом посте рассказывается о том, как Habitat эволюционировал, почему его превратили из библиотеки в сервис и как удалось «растянуть» сервис, написанный на нетипичном для производственных систем языке — Python, — до уровня надёжного слоя хранения данных.

Одним из ключевых архитектурных решений стало намеренное ограничение API. Команда спроектировала NoSQL API (интерфейс к базам данных без жёсткой схемы) с заведомо ограниченным набором операций — чтобы стоимость любого запроса была предсказуемой и поддавалась контролю.

💡 Инженерный принцип
Ограниченный API — это не недостаток, а осознанное архитектурное решение. Когда вы заранее знаете, какие операции возможны, вы можете гарантировать их стоимость и время выполнения при любой нагрузке.

Шаг 3: Борьба с Python на гиперскейле

Запуск Python-сервиса при нагрузке в десятки миллионов запросов в секунду потребовал нетривиальных решений.

Проблема asyncio и «задержки планировщика»

Python использует asyncio — механизм асинхронного выполнения задач. При высокой нагрузке планировщик asyncio начинал «притормаживать»: фоновые CPU-тяжёлые задачи вмешивались в обработку запросов и провоцировали всплески задержек (tail latency). В одном из случаев периодический парсинг JSON-конфигураций Statsig каждую минуту без «джиттера» (случайного разброса) по 8 процессам на под приводил к одновременной остановке всех воркеров.

Проблема «громового стада» (thundering herd)

Одним из побочных эффектов настройки для низкой задержки asyncio при большом числе Python-процессов стала лёгкость перегрузки downstream-зависимостей огромным количеством соединений — это явление известно как «thundering herd» («громовое стадо»).

Обычное ежедневное развёртывание — если его не замедлить намеренно — могло вызвать значительную нагрузку на CPU из-за пересоздания соединений. Или утечка соединений могла положить сеть, насытив NAT-шлюз.

Решение: Envoy и Istio

Сегодня OpenAI в основном полагается на Istio и Envoy для обеспечения пула соединений и более умных стратегий балансировки с учётом нагрузки на серверы.

Envoy используется для апгрейда HTTP/1-соединений Python до HTTP/2, чтобы воспользоваться мультиплексированием и увеличить время жизни соединений. Кроме того, Envoy даёт централизованное место для реализации rate-лимитов и circuit breaker’ов, которые были бы менее эффективны в каждом отдельном Python-процессе.

Python-процесс (HTTP/1) → Envoy (HTTP/2, multiplexing, circuit breaker) → Azure Cosmos DB

Переход с Python на Rust: революция за два месяца

Самый захватывающий эпизод истории Habitat — радикальная смена языка реализации.

Откладывание переписывания с Python на год позволило сосредоточиться на более срочных и важных задачах в период гиперроста. Но когда платформа начала зрелеть, а рост продолжал ускоряться, и Habitat стал вторым по количеству ядер сервисом в OpenAI, настало время двигаться дальше.

На пике Python помогал обслуживать более 20 миллионов запросов каждую секунду. Этого уже не хватало.

📝 Показательный кейс
Во втором квартале 2026 года силами всего 2 инженеров, с помощью Codex и GPT-5.5, удалось переписать весь сервис на Rust. Это один из наиболее ярких примеров использования AI-инструментов для ускорения инженерной работы: задача, которая традиционно заняла бы месяцы и потребовала большой команды, была выполнена двумя людьми за несколько месяцев.

Результаты перехода на Rust

Данные показывают, что Rust-сервис в 6 раз эффективнее по CPU и в 15 раз эффективнее по памяти по сравнению с Python-версией, при значительно меньших средних задержках и задержках на хвосте распределения.

МетрикаPythonRustВыигрыш
Эффективность CPUБазоваяВ 6 раз лучше
Эффективность памятиБазоваяВ 15 раз лучше15×
Макс. RPS~20 млн70+ млн3.5×
Доля production-трафика100% (устар.)95%

Новый Rust-сервис уже обрабатывает 95% производственных запросов; в ближайшие недели Python будет полностью выведен из эксплуатации.

Переход на Rust — это не просто технический выбор. Это экономия вычислительных ресурсов в масштабе, где каждый процент эффективности стоит миллионы долларов.

Что дальше?

Уникальность ситуации OpenAI — в беспрецедентной скорости, с которой им пришлось масштабироваться, чтобы поддержать ошеломляющий рост числа пользователей и спроса на продукты, одновременно выстраивая зрелую платформу.

В следующем посте команда планирует подробно рассказать о том, как они обеспечили надёжность мультитенантности при масштабировании, о многоуровневой стратегии оптимизации производительности чтения и о том, как масштабировали партнёрство с Azure Cosmos DB для надёжной обработки беспрецедентного спроса.

⚠ Важно понимать
История Habitat — не просто рассказ об одной компании. Это наглядная демонстрация того, как быстро может устареть архитектурное решение при гиперросте. То, что работало для 10 миллионов пользователей, требует полного переосмысления при миллиарде.

Выводы для инженеров

История Habitat даёт несколько практических уроков для всех, кто строит высоконагруженные системы:

  1. Начинайте просто — Python-библиотека была правильным стартом. Преждевременная сложность убивает скорость разработки.
  2. Ограничивайте API намеренно — предсказуемость стоимости операций важнее гибкости на ранних этапах.
  3. Откладывайте дорогие рефакторинги — год работы на Python дал OpenAI время сосредоточиться на продукте, а не на инфраструктуре.
  4. Используйте AI-инструменты для инженерных задач — переписать весь сервис силами 2 людей с помощью Codex и GPT-5.5 — это новая реальность.
  5. Envoy и сервисная сетка — не роскошь — при работе с тысячами процессов централизованное управление соединениями критично.

OpenAI продолжает публиковать технические детали своей инфраструктуры — и это бесценный ресурс для всей индустрии. Следите за второй частью, в которой речь пойдёт о Azure Cosmos DB и стратегиях оптимизации чтения.