Agoda представила новый внутренний прокси под названием Storefront, разработанный на языке Rust, который улучшает балансировку нагрузки, надежность и операционное управление для больших объемов трафика хранения объектов. Это решение позволяет эффективно распределять нагрузки и предотвратить перегрузку отдельных узлов, что критично для высоконагруженных сервисов.
Почему возникла необходимость
Agoda активно использует объектное хранилище для обработки и аналитики данных, включая работу с большими объемами файлов. Ранее для распределения трафика использовались DNS-узлы, что привело к неравномерному распределению нагрузки и возникновению «горячих» точек, когда некоторые узлы перегружались, а другие оставались недозагруженными. Этот подход часто приводил к задержкам и снижению производительности при значительных рабочих нагрузках.
Как работает Storefront
В отличие от прежнего метода, Storefront активно оценивает доступность бэкенд-узлов и текущую загрузку в реальном времени перед отправкой запросов. Система основана на алгоритме минимального числа активных запросов, улучшенному с использованием оценки задержки. Это позволяет избежать критических перегрузок и гарантирует стабильно высокую производительность.
Клиенты S3, использующие прокси, теперь более эффективно распределяют запросы, благодаря чему значительно снижается время отклика. Инженеры внедрили также тайм-ауты ввода-вывода, что предотвратит использование соединений в случае проблем с ответами от клиентов.
Результаты для разработчиков
Разработка Storefront позволила Agoda сократить временные затраты на управление доступом к объектному хранилищу. Прокси использует автоматическую идентификацию подов Kubernetes для централизованного управления правами доступа, что упрощает соблюдение требований к безопасности и снижает риск утечки учетных данных.
Для российских разработчиков такое решение может стать примером внедрения аналогичных технологий при работе с облачными хранилищами, обеспечивая надежную и масштабируемую инфраструктуру.
В будущем Agoda планирует расширять функционал Storefront, добавляя новые возможности для мониторинга и управления производительностью, что еще больше повысит эффективность их платформы.