Исследование технологий Serverless-вычислений

Бессерверные вычисления (англ. serverless computing) — стратегия организации платформенных облачных услуг, при которой облако автоматически и динамически управляет выделением вычислительных ресурсов в зависимости от пользовательской нагрузки.  Основная задача такой стратегии — реализация шаблона FaaS, «функция как услуга», при котором для выполнения каждого запроса (вызова функции) создается отдельный контейнер или виртуальная машина, которые уничтожаются после выполнения. Серверы в данной технологии, разумеется, используются, но все настройки и планирование вычислительных ресурсов скрыты от пользователей и управляются облаком. 

Бессерверные вычисления обеспечивают встроенную высокую доступность и отказоустойчивость, гибкую масштабируемость.

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

В настоящее время существует несколько платформ бессерверных вычислений: AWS Lambda,  Google Cloud Functions, OpenWhisk, Azure Functions, OpenFaaS. Бесспорным преимуществом последней является универсальность в отношении программного кода, он может быть написан на любом языке программирования. 

В этом направлении исследований в лаборатории СУОВ:

На платформе для создания бессерверных функций с использованием контейнеров OpenFaas:

  • Разработан прототип системы межфункционального взаимодействия для приложений с микросервисной архитектурой, основанный на абстрактной модели конечный автомат. Прототип реализован в виде  модуля func-controller и позволяет комбинировать функции в OpenFaaS для создания сложных микросервисов. Экспериментально подтверждено, что запросы функций обрабатываются быстрее модифицированным прототипом, чем  стандартной модификацией OpenFaas. Разрыв во времени увеличивается с ростом количества функций.
  • Разработана  система минимизации холодного старта функции для бессерверных вычислений на основе алгоритма хеширования, проведен анализ производительности разработанного решения.
  • Разработана система интеллектуального управления транспортной сетью для распределенных бессерверных вычислений, основанная на использовании децентрализованного сетевого протокола.

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

Для открытой бессерверной платформы Apache OpenWhisk предложена политика уменьшения времени подготовки среды для выполнения функции на основе алгоритма PopCaching. Преимуществом для провайдера в использования этой политики является возможность устанавливать время средней задержки холодного старта, изменяя  объем задействованных ресурсов, что позволяет сократить ресурсные затраты на поддержку выполнения функций пользователей, не слишком требовательных к задержке холодного старта.   Политика повторного использования среды выполнения функции, традиционная для большинства бессерверных платформ, не допускает реализацию такого подхода.