AWS Lambda — одна из самых популярных серверless-платформ, используемых для быстрого и масштабируемого выполнения кода. Она отлично подходит для коротких задач и функций с минимальной задержкой, но порой становится источником существенных расходов при работе с задержками и долгими ожиданиями. Проблема кроется в особенностях тарификации AWS Lambda: каждая функция тарифицируется не только по количеству вызовов и памяти, но и по продолжительности выполнения. При этом даже простой, когда функция ожидает ответа от удаленных сервисов, засчитывается как активное время работы, и за него взимается плата. Для компаний с миллиардами вызовов такая модель быстро накапливает огромные счета, порождая серьезные финансовые проблемы и заставляя искать обходные решения.
Именно такой путь и предложил стартап Vercel — компания, известная как создатель популярного фреймворка Next.js и активный пользователь AWS Lambda на своем хостинг-платформе. В своей разработке, получившей название Fluid Compute, Vercel намеренно изменил традиционный подход к работе с Lambda, чтобы увеличить эффективность и снизить затраты. Основная идея заключается в повторном использовании уже запущенных экземпляров Lambda для обработки новых запросов вместо запуска новых инстансов под каждый вызов. Так как архитектура Lambda изначально не предполагает параллельную обработку нескольких запросов в одном инстансе, инженерам Vercel пришлось самостоятельно реализовать сложный механизм мониторинга и маршрутизации запросов, контролируя загрузку процессора, использование памяти и оставшееся время жизни каждого экземпляра — не больше 15 минут.
Инновация возникла в процессе создания поддержки стриминга данных, которая не поддерживалась AWS Lambda на момент начала работы команды Vercel в 2020 году. Для обхода этого ограничения специалисты разработали TCP-туннель между функциями Lambda и сервисом Vercel, позволяющий передавать данные постепенно, а не ждать завершения работы функции целиком. После этого возникла мысль: «А что, если через этот туннель можно отправлять дополнительные HTTP-запросы к одной и той же функции?» Такой прием значительно повысил эффективность использования ресурсов, позволил выполнять несколько задач в рамках одного инстанса, и тем самым значительно сократил длительность простоя в ожидании ответа внешних сервисов. В итоге Fluid Compute обеспечивает практически мгновенный перераспределение нагрузки и минимальные накладные расходы, а плата взимается только за фактическое употребление вычислительных ресурсов. Благодаря технологии Vercel заявляет о снижении затрат на вычисления AWS Lambda до 95%, что является впечатляющим результатом для крупномасштабных проектов с интенсивными запросами к базам данных и интеграциями с внешними сервисами, например, с помощью API больших языковых моделей (LLM).
Несмотря на то что тарифы Vercel выше, чем у AWS напрямую (например, $0.60 за миллион вызовов в сравнении с $0.20 у AWS, а стоимость часа работы одного гигабайта памяти — $0.18 против $0.048 у AWS), новая методика оправдывает себя за счет снижения общего времени простоя и уменьшения числа запущенных инстансов.
Практика демонстрирует значительную экономию в условиях, когда функции тратят много времени на ожидание: медленные запросы, к примеру, в базы данных или сторонние сервисы ИИ, становились настоящей проблемой для клиентов Vercel, вызывая резкий рост счетов — с нескольких сотен до нескольких тысяч долларов в месяц. Включение Fluid Compute позволило сгладить эти взлеты и снизить затраты на приемлемый уровень. Помимо финансовых выгод, подход Vercel отражает важное изменение в серверless-стратегиях: переход от традиционной модели «один запрос — один инстанс» к более гибкому и адаптивному использованию вычислительных ресурсов. Особенно актуально это для приложений с высоким уровнем параллелизма и переменной нагрузкой, где важна минимизация простаивания и максимальная отдача от каждого запущенного процесса. С технической точки зрения, реализации управляемой повторной загрузки Lambda-инстансов потребовалась интеграция с Rust-базированным ядром, позволяющим контролировать метрики по CPU, памяти и времени жизни.
Такой уровень мониторинга обеспечивает отказ от обработки новых запросов на загруженных или почти истекших инстансах, что гарантирует стабильность и надежность работы приложения. На фоне растущей популярности serverless-технологий, общая сложность планирования затрат и оптимизации производительности становится единой задачей для разработчиков и облачных провайдеров. Подход Vercel демонстрирует, что инновации в инфраструктуре и внимательное управление ресурсами могут принести значимые преимущества как в плане финансов, так и в пользовательском опыте. Возможность стриминга, создание туннелей и мультизапросная обработка в одном инстансе помогают устранять узкие места, вызванные ожиданиями медленных и ненадежных внешних систем, что в конечном итоге повышает скорость отклика и качество сервиса. Vercel добавляет ценность не только через технологическую новизну, но и практическую возможность повысить окупаемость и устойчивость серверless-бизнеса.