VMTech
Обсудить проект

OpenAI перевела платформу хранения Habitat с Python на Rust

OpenAI перевела платформу хранения Habitat с Python на Rust

OpenAI рассказала о развитии платформы онлайн-хранилища Habitat, которая обрабатывает более 70 млн запросов в секунду, работает с объёмом свыше 500 ПБ и поддерживает продукты для более чем 1 млрд пользователей в неделю почти в 40 регионах. Во втором квартале 2026 года команда переписала сервис с Python на Rust: новая реализация уже обслуживает 95% производственного трафика.

От клиентской библиотеки к единой платформе

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

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

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

Почему Python пришлось тщательно настраивать

Переход к сервису на Python увеличил сетевые задержки и затраты CPU и памяти по сравнению с локальной библиотекой. Однако на этом этапе OpenAI ставила выше скорость развития API и устойчивость платформы. При сотнях обращений к базе данных в рамках пользовательского запроса критичной становится даже одна медленная операция.

Особое внимание команда уделила задержке планирования asyncio. Асинхронная модель помогает перекрывать операции ввода-вывода, но не даёт CPU-параллелизма из-за GIL. В Habitat одновременно выполнялись маршрутизация, сжатие, шифрование, вычисление контрольных сумм, проверки состояния зависимостей и фоновые задачи. При высокой загрузке готовые ответы от хранилища могли ждать повторного запуска нужной корутины сотни миллисекунд, а в отдельных случаях — секунды.

Для снижения таких задержек OpenAI ограничивала число одновременных запросов на процесс и масштабировала число Python-процессов. Профилирование также выявило проблему в настройках Statsig: до корректировки все процессы в pod раз в минуту одновременно разбирали большой JSON-файл конфигурации флагов. Команда перешла на более компактную целевую конфигурацию, увеличила интервал обновления и добавила случайное смещение фоновых задач.

Балансировка и ограниченная модель запросов

Ещё одной причиной нестабильности оказался пул соединений aiohttp с повторным использованием по схеме LIFO. После всплеска нагрузки более медленные процессы возвращали соединения позже и поэтому чаще получали новый трафик. Замена на FIFO разорвала этот цикл. Сейчас OpenAI в основном использует Istio и Envoy для пулов соединений и балансировки с учётом нагрузки на серверы.

Большое число процессов могло перегрузить нижележащие ресурсы соединениями. Envoy объединяет соединения, переводит HTTP/1-соединения Python в HTTP/2 с мультиплексированием, продлевает их жизнь и служит общей точкой для лимитов и автоматических предохранителей.

Habitat намеренно предоставляет ограниченный NoSQL API вместо произвольных SQL-запросов. Платформа ориентирована на простые запросы с предсказуемой постоянной стоимостью; сложные аналитические запросы выносятся в отдельные экземпляры Rockset через поток изменений CDC.

Переписывание на Rust

На пике Python-версия Habitat обслуживала более 20 млн запросов в секунду. По заявлению OpenAI, два инженера с Codex и GPT-5.5 за второй квартал 2026 года переписали весь сервис на Rust. Новая версия в шесть раз эффективнее по CPU и в 15 раз — по памяти, а средняя и хвостовая задержки снизились.

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

#openai#cloudinfra#rust#datastorage
Открытая аналитика
На сайте 3 просмотров
мин чтения 5 11.09.2026
Instagram

OpenAI перевела платформу хранения Habitat с Python на Rust

Открыть публикацию в Instagram ↗