Перейти к содержимому
Экосистема AI Vibe

Новости

Habitat и Cosmos DB: от общего контейнера к изоляции и обратно

Редакция 23 октября 2026 г.

Схема платформы Habitat: клиенты ChatGPT и Codex, кэши и шардирование Azure Cosmos DB в десятках регионов.

Habitat отдаёт данные ChatGPT, API и Codex за миллисекунды более чем миллиарду пользователей в 40 регионах — во II части серии OpenAI показали, как под этим лежит Azure Cosmos DB и зачем команда прошла круг от общего контейнера к изоляции и обратно к мультитенантности. Платформа уже перевалила за 500 петабайт; здесь не про объём, а про co-managed containers и глобальное чтение без повторения старых ошибок с «горячими» ключами.

Один контейнер на всех

Сначала в каждом аккаунте был один default-контейнер Cosmos DB, а обратное давление строили на документированном потолке 10 000 RU/s на logical partition key. Клиенты сами выбирали ключ партиционирования — отсюда столкновения на user_id и workspace_id между разными продуктами: один активный пользователь или workspace упирался в общий лимит для всех сценариев.

На бумаге лимит на logical partition, на практике режет physical partition — соседние ключи делят пропускную способность, и нишевые фичи били по логину и регистрации. Ещё эффект «слабых» партиций: при росте данных Cosmos DB дробит physical partition, суммарный RU/s контейнера не растёт, и на каждую часть достаётся меньше при том же трафике.

Отдельные контейнеры

Критичные нагрузки вынесли в свои контейнеры со своими physical partition и скриптом, который подгоняет throughput под число партиций. Blast radius сузился — вместо падения всего сайта деградировала одна фича. Зато каждый новый сервис тащил на себе capacity planning.

  • В общем пуле на 100M RU/s скачок с 1K RU/s на нагрузочном тесте до 1M RU/s в проде почти не чувствуется в агрегате; на выделенном контейнере с 10K RU/s тот же выкат даёт перегруз порядка 10 000% относительно baseline.
  • Команды забывали прескейлить контейнер к релизу — типичный SEV в день лонча.
  • Без стабильного суммарного роста в одном котле автoscaling требовал знать продуктовый календарь у каждого владельца сервиса.

Снова мультитенантность

Третий этап в материале — снова multi-tenancy по умолчанию, с возможностью переноса данных между контейнерами. Логика вытекает из двух предыдущих фаз: чистая изоляция контейнерами перестала масштабироваться организационно, а совместная работа с Azure и примитивы Cosmos DB позволили снова делить ёмкость без сценария раннего общего default-контейнера.

Источник: Rapidly scaling online storage to serve over 1 billion ChatGPT users (Part II).