Как OpenAI масштабировала хранилище ChatGPT: пять уроков Habitat

XC7Редакция XC711.09.2026
openaichatgptархитектураpython
Как OpenAI масштабировала хранилище ChatGPT: пять уроков Habitat

11 сентября 2026 года OpenAI описала Habitat — внутреннюю платформу онлайн-хранилища для ChatGPT, Codex и других продуктов. По данным компании, она обслуживает более 70 миллионов запросов в секунду, свыше миллиарда пользователей в неделю и более 500 петабайт данных почти в 40 регионах.

Это внутренние показатели OpenAI, а не независимый аудит. Главная ценность публикации — не масштаб сам по себе, а решения, которые команда принимала по мере роста системы.

1. Общую библиотеку превратили в отдельный сервис

Habitat начиналась в середине 2024 года как Python-библиотека поверх Azure Cosmos DB. Она скрывала от продуктовых команд маршрутизацию, авторизацию, шифрование, сериализацию, лимиты запросов и работу с соединениями.

Когда число сервисов выросло, обновление общей библиотеки стало требовать координации десятков развёртываний. Откат одного клиента мог вернуть старую ошибку. Команда вынесла Habitat в самостоятельный сервис, чтобы централизовать выпуск изменений, наблюдаемость и политики доступа.

Практический вывод: общий клиент удобен в начале, но при сложной логике и большом числе потребителей отдельный сервис уменьшает разъезд версий.

2. Python оставили как осознанный временный выбор

OpenAI признаёт, что Python увеличивал затраты CPU и памяти и усложнял борьбу с задержками. Но быстрый запуск сервиса был важнее ранней оптимизации: сначала команда стабилизировала API и эксплуатационную модель, а миграцию отложила.

Такой технический долг безопасен только при двух условиях: ограниченная область и заранее понятный сигнал для замены. В случае Habitat им стали дальнейший рост нагрузки и высокая стоимость эксплуатации.

3. Для asyncio измеряли задержку самого цикла событий

Обычных метрик CPU, памяти, сети и диска оказалось недостаточно. CPU-нагрузка могла задерживать повторный запуск корутин, даже если база данных отвечала быстро. Команда стала периодически сравнивать ожидаемое и фактическое время выполнения фоновой задачи и отдельно отслеживать задержку цикла событий.

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

4. Пул соединений может усиливать перегрузку

Повторное использование последних освободившихся соединений по принципу LIFO направляло новые запросы обратно на медленные процессы. Это создавало петлю: перегруженный процесс отвечал позже и снова чаще получал работу.

Переход к FIFO разорвал эту обратную связь. Позже команда перенесла управление соединениями и балансировку в Istio и Envoy, а HTTP/2 использовала для сокращения числа подключений к зависимым системам.

5. Предсказуемый API важнее максимальной гибкости

Habitat не разрешает произвольные SQL-запросы. Простой NoSQL API ограничивает стоимость операций и делает опасные запросы заметными на стороне клиента. Сложный поиск и аналитику отделили от рабочего контура: изменения передаются через Change Data Capture в изолированные системы.

Это снижает риск, что один дорогой запрос нарушит работу хранилища для всех пользователей.

Переход на Rust

Во втором квартале 2026 года два инженера при помощи Codex и GPT-5.5 переписали сервис на Rust. OpenAI сообщает, что новая версия уже обрабатывает 95% производственных запросов и использует в шесть раз меньше CPU и в пятнадцать раз меньше памяти. Эти цифры относятся к внутренней среде компании и не означают такой же результат в другом проекте.

Что можно проверить в своей системе

  • есть ли клиенты с разными версиями общей логики доступа к данным;
  • измеряется ли задержка цикла событий отдельно от ответа базы;
  • не запускаются ли фоновые задачи одновременно на всех процессах;
  • как пул соединений ведёт себя после всплеска нагрузки;
  • могут ли произвольные запросы создавать непредсказуемую стоимость;
  • отделены ли аналитические чтения от критического рабочего контура.

Публикация OpenAI показывает последовательную миграцию: сначала убрать организационный риск, затем измерить реальные узкие места и только после этого менять язык и архитектуру.

Новые слова простыми словами
Хвостовая задержка
Время ответа самых медленных запросов, например на уровне p99, которое сильнее всего заметно пользователю при цепочке обращений.
Метастабильный сбой
Состояние, в котором перегрузка сама поддерживает себя даже после исчезновения первоначального всплеска.
Мультиплексирование HTTP/2
Передача нескольких параллельных запросов через одно соединение, чтобы уменьшить число подключений к зависимым сервисам.
Change Data Capture
Поток изменений из основной базы в отдельную систему для поиска, аналитики или других тяжёлых запросов.

Проверяемые источники

0
Просмотры: 1Комментарии: 0

Комментарии (0)

Комментариев пока нет