Биткойн Налоги и криптовалюта

Viaduct спустя пять лет: современная эволюция ориентированной на данные сервисной сетки Airbnb

Биткойн Налоги и криптовалюта
Viaduct, Five Years On: Modernizing the Data-Oriented Service Mesh

Обзор развития и модернизации Viaduct - сервисной сетки Airbnb, ориентированной на данные, которая за пять лет стала мощным инструментом для интеграции бизнес-логики, оптимизации работы и повышения эффективности разработки. Рассматриваются ключевые принципы, архитектурные изменения и перспективы открытого программного обеспечения.

За последние пять лет Viaduct прошел путь от внутреннего инструмента Airbnb до зрелой и высокопроизводительной сервисной сетки, ориентированной на данные. Разработанный как масштабируемая среда для интеграции бизнес-логики и управления сложными взаимосвязанными данными, Viaduct стал центральным звеном в технической инфраструктуре компании, обеспечивая стабильность, гибкость и развитую архитектуру с акцентом на модульность и производительность. В данной статье подробно рассматриваем эволюцию Viaduct, ключевые принципы, современные архитектурные решения и причины открытого релиза этого сложного решения. Viaduct изначально задумывался как единая точка доступа к централизованной схеме данных Airbnb, объединяющей различные бизнес-домены компании. Эта схема, являющаяся гибридом децентрализованной разработки и интеграции, обеспечивает высокую связанность данных внутри организации.

За годами эксплуатации выстроилась экосистема, в которой более 75% обращений - это внутренние запросы, свидетельствующие о глубокой интеграции Viaduct в рабочие процессы и сервисы Airbnb. Важным аспектом стало предоставление возможности разным командам размещать свой бизнес-код непосредственно в Viaduct, что значительно упростило разработку и снизило операционные издержки. Одной из центральных особенностей Viaduct стал принцип реентрантности: бизнес-логика, размещенная в рамках платформы, способна взаимодействовать с другой логикой через GraphQL-запросы и фрагменты. Такой подход обеспечил модульность даже при комплексном и объемном коде, позволив избегать проблем монолитных решений, где ранние изменения могут разрушить архитектуру и вызвать многочисленные инциденты. Благодаря этому, Airbnb удалось масштабировать проект при неизменных уровнях операционной нагрузки и при этом сократить время простоя и вмешательства в систему.

Однако оперативное развитие Viaduct до 2024 года сопровождалось сложностями. Реактивное добавление функций и сервисов без строгой архитектурной концепции привело к размытым границам между слоями и неоднородным пользовательским опытом для разработчиков, загружавших платформу с новым и немного непредсказуемым API. Работа над исправлением этих проблем привела к инициативе Viaduct Modern, стартовавшей более года назад. Эта модернизация предусматривала переработку базового программного интерфейса и внутреннего движка, чтобы сделать систему проще, модульнее и более функциональной. Главное изменение Viaduct Modern - это упрощение API, называемого Tenant API, который взаимодействует с разработчиками.

 

До модернизации API предлагал множество излишне сложных вариантов реализации, запутывая новых команд. Новый подход сведён к использованию только двух типов резолверов: node resolvers и field resolvers. Выбор зависит от структуры схемы, а не от непредсказуемых факторов, связанных с поведением функций. Унификация API делает процесс разработки более комфортным и сокращает кривую обучения. Повышение модульности стало ключевым для устойчивости Viaduct.

 

Теперь каждый модуль представляет собой единицу схемы с сопутствующим кодом, принадлежащую одной команде. Связи между модулями происходят средствами запросов GraphQL, что исключает прямые зависимости кода и стимулирует декларативное выражение запросов к функциям и данным. Такой подход повышает уровень абстракции и облегчает поддержку большого кодового базиса. Архитектура самого фреймворка Viaduct также была усилена. Главное улучшение - чёткое разделение между движком выполнения GraphQL и Tenant API.

 

Ранее границы между слоями отсутствовали или были слабыми, что осложняло внесение улучшений и усовершенствований. Сейчас движок работает с динамически типизированными значениями, а API, напротив, использует статически типизированные Kotlin-классы, обернутые вокруг динамической модели. Это разделение существенно повышает устойчивость к изменениям и позволяет развивать каждую часть платформы без срочных и взаимопротиворечащих корректировок. Одним из важных аспектов Viaduct Modern стала плавная миграция. Вместо того чтобы требовать "большой взрыв" в обновлении миллионов строк кода, Airbnb реализовал режим, при котором обе версии API - новая и классическая - функционируют одновременно на одном движке.

Такой подход позволяет постепенно переводить команды на новую архитектуру, сохраняя при этом стабильность и снижая риски. Помимо технических изменений, в Viaduct внедрены серьёзные улучшения в области наблюдаемости и отслеживания кода, что стало критично для управления сотнями команд. Чёткое разграничение между пользовательским и фреймворковым кодом устранило прежние неоднозначности в инструментации и позволило точно определять зоны ответственности и источники возможных ошибок. Работа над сборкой и временем генерации кода также получила значительные инвестиции. Ранние этапы развития Viaduct испытывали трудности с длительными циклами компиляции, что снижало оперативность разработки.

Использование прямой генерации байт-кода вместо промежуточных этапов помогло снизить это время и увеличить скорость итераций, что особенно важно для крупных сервисов с миллионами строк кода. Архитектура оркестрации и диспетчеризации запросов внутри Viaduct сделана масштабируемой и устойчивой благодаря применению Kubernetes и шахматному шардированию (shuffle sharding), что уменьшает риски широкомасштабных сбоев и помогает изолировать трафик в зависимости от состояний системы. Хотя данный компонент пока не планируется к открытию, вероятно, в будущем Airbnb поделится стратегиями по управлению доступностью на больших нагрузках. В конце 2025 года Airbnb открыла исходные коды Viaduct, включая новый движок и часть Tenant API, что создает уникальные возможности для сообщества разработчиков. Несмотря на то, что новый API пока находится на альфа-этапе, этот шаг призван ускорить развитие Viaduct за счет совместных усилий и привлечь новые идеи в архитектуру сервиса.

Открытость к внешним предложениям обещает повысить качество, гибкость и адаптивность системы при работе в разнообразных условиях. Viaduct - пример успешной реализации GraphQL-сервера, который не только показывает отличные технические результаты при работе с огромными данными, но и предлагает комфортные условия для разработчиков за счет эргономичного API и продуманной модульности. Это делает его привлекательным как для крупных компаний с огромными системами, так и для стартапов или групп, которые только начинают строить комплексные сервисы. Подводя итог, можно сказать, что пятилетняя история Viaduct - это история о том, как продуманная архитектура, адаптация к требованиям бизнеса и стремление к качеству создания продуктов приводят к появлению масштабируемого и надежного инструмента, который продолжает развиваться и открывается для сообщества. Airbnb продемонстрировал, что построение современной сервисной сетки - это не просто технология, а комплексный процесс, включающий дизайн API, модульность, наблюдаемость и устойчивость к изменениям, что и отражено в текущей версии Viaduct и его дальнейших перспективах.

.

Автоматическая торговля на криптовалютных биржах

Далее
Tesid: Textualised Encrypted Sequential Identifiers
Среда, 14 Январь 2026 TESID: Эффективное решение для безопасного и удобного управления идентификаторами в базе данных

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

Cookies vs. You. Who wins in 30 seconds?
Среда, 14 Январь 2026 Cookies и Вы: кто побеждает за 30 секунд?

Анализ борьбы между пользователем и файловыми cookie за контроль данных и приватность в условиях современного интернета за крайне ограниченное время. .

Why random lines of video game dialogue get stuck in our heads
Среда, 14 Январь 2026 Почему случайные фразы из видеоигр остаются в нашей памяти надолго

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

Unconditional separation between quantum and classical information
Среда, 14 Январь 2026 Безусловное разделение квантовой и классической информации: новый этап в развитии квантовых вычислений

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

Say Goodbye to Node.js HTTP. Meet Brahma-JS an Ultra HTTP
Среда, 14 Январь 2026 Прощай, Node.js HTTP: встречайте Brahma-JS - ультраэффективный HTTP-сервер нового поколения

Обзор Brahma-JS - инновационного HTTP-сервера с производительностью на уровне Rust и удобным API, вдохновлённым Express. Узнайте, почему разработчикам стоит обратить внимание на эту технологию и как она меняет подход к созданию микросервисов и API.

Lomuto's Comeback for Quicksort Partitions
Среда, 14 Январь 2026 Возрождение схемы Ломуто: эффективная альтернатива при разбиении в быстрой сортировке

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

Don't Take the Auditor to the Strip Club
Среда, 14 Январь 2026 Почему не стоит брать аудитора в стрип-клуб: проблемы агентских отношений в финансах

Изучение ключевых аспектов агентских проблем в финансах на примере ошибки выбора методов влияния на аудиторов, влияние неэтичных практик и последствия для бизнеса и корпоративного управления. .