Масштабирование инфраструктуры OpenAI: как платформа Habitat обслуживает более миллиарда пользователей
Инженеры OpenAI поделились опытом оптимизации Azure Cosmos DB для платформы хранения Habitat, обслуживающей более 500 петабайт данных в 40 регионах.

Суть
Компания OpenAI раскрыла технические детали масштабирования своей платформы хранения данных Habitat. Инфраструктура была переработана для обслуживания более 1 миллиарда пользователей ChatGPT в 40 географических регионах. Благодаря оптимизации работы с Azure Cosmos DB инженерам удалось обеспечить надежную мультиарендность (multi-tenancy) и ускорить чтение данных в 12 раз.
Контекст
Все продукты OpenAI зависят от платформы Habitat, которая должна отвечать на запросы за миллисекунды. Изначально система представляла собой простую клиентскую библиотеку на Python, но взрывной рост аудитории заставил компанию полностью пересмотреть архитектуру. Сегодня Habitat — это глобально распределенная платформа, хранящая более 500 петабайт данных.

Rethinking the ad stack around a new user journey — Art card
Команде пришлось решать классическую дилемму масштабирования: использовать единую систему для всех продуктов (мультиарендность) или выделять отдельные базы данных для каждой команды (single-tenancy). Одиночная аренда снижает риски, но приводит к перерасходу ресурсов, тогда как мультиарендность эффективнее, но страдает от проблемы "шумных соседей", когда один процесс забирает все ресурсы.
Детали
В основе Habitat лежит Azure Cosmos DB. OpenAI столкнулась с несколькими критическими ограничениями этой базы данных при работе на сверхвысоких масштабах:
- Лимиты логических ключей: Изначально система полагалась на лимит в 10 000 единиц запросов в секунду (RU/s) на логический ключ партиционирования (например, user_id). Из-за коллизий ключей между разными продуктами общая пропускная способность для конкретного пользователя сильно ограничивалась.
- Проблема "шумных соседей": Лимиты фактически применяются не к логическим, а к физическим партициям. В результате ресурсоемкие запросы нишевых функций могли нарушить работу базовых процессов, таких как авторизация пользователей.
- Слабые партиции: По мере роста объема данных физические партиции дробятся. Общая пропускная способность контейнера при этом не меняется, что приводит к снижению лимита на каждую отдельную партицию. В итоге рост объема данных сам по себе приводил к отказам в обслуживании активных рабочих нагрузок.

Scaling Storage for 1 Billion ChatGPT Users (Part I) card image
Анализ
Чтобы справиться с этими ограничениями, OpenAI перешла ко второй фазе архитектуры — изоляции рабочих нагрузок. Критически важные сервисы были переведены в отдельные контейнеры Azure Cosmos DB, каждый из которых имел собственное планирование емкости. Был внедрен скрипт для синхронизации выделенной пропускной способности с количеством физических партиций, что решило проблему "слабых партиций".
Однако исторически сложилось так, что множество старых сервисов остались в базовом общем контейнере, что приводило к росту инцидентов. Компании пришлось принудительно выделять новые контейнеры для любых крупных функций, просто чтобы защитить старую базу от дополнительной нагрузки.
Перспектива
Опыт OpenAI показывает, что готовые облачные решения требуют глубокой адаптации при работе на масштабах сотен петабайт. Баланс между мультиарендностью и изоляцией контейнеров останется ключевой задачей для инфраструктурных команд, обслуживающих глобальные ИИ-продукты.
TL;DR
Главное
Для поддержки более 1 миллиарда пользователей OpenAI пришлось глубоко оптимизировать работу с Azure Cosmos DB, перейдя от единой базы данных к сложной системе изолированных контейнеров для защиты критических сервисов.
Ключевые факты
- /Платформа Habitat обслуживает более 1 миллиарда пользователей в 40 регионах.
- /Общий объем хранимых данных превышает 500 петабайт.
- /Скорость чтения данных для ChatGPT была увеличена в 12 раз.
- /Архитектура столкнулась с жестким лимитом в 10 000 RU/s на логический ключ в Azure Cosmos DB.
Инсайт
При гигантских масштабах данных облачные базы страдают от фрагментации: рост объема хранилища автоматически дробит физические серверы, что парадоксальным образом снижает пропускную способность для каждого отдельного сегмента.




