Функция как услуга: простыми словами о FaaS

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

Функция как услуга (FaaS) и бессерверная технология часто употребляются как взаимозаменяемые, но на самом деле эти два понятия синонимичны лишь условно. Бессерверные вычисления относятся к любой области, в которой сервер полностью абстрагирован от конечного пользователя. А FaaS — это подмножество бессерверных вычислений, ориентированное на триггеры, управляемые событиями, когда код запускается в ответ на события или запросы. Если управляемого событиями запроса нет, сервер отключается, высвобождая ресурсы для других запросов. После развертывания FaaS реагирует на спрос и автоматически масштабируется по мере необходимости. Как правило, если бессерверная функция простаивает, она ничего не стоит, что во многих ситуациях позволяет сэкономить деньги.

Читайте также: Основы использования бессерверных вычислений

IaaS, PaaS и FaaS – в чем разница?

Инфраструктура как услуга (IaaS), платформа как услуга (PaaS) и функция как услуга (FaaS) — все они являются продуктами облачных вычислений. Разница между ними заключается в уровне абстракции между пользователем и инфраструктурой, который они обеспечивают.

IaaS предлагает самый низкий уровень абстракции. Благодаря IaaS пользователи имеют полный контроль над своей инфраструктурой, а также программным обеспечением и инструментами, связанными с их технологиями. При этом им не нужно управлять физической инфраструктурой (включая серверы без ПО или центры обработки данных). IaaS дает разработчикам возможность выбирать желаемые уровни абстракции. Они могут управлять всем самостоятельно или же добавить такие функции, как балансировщик нагрузки или даже управляемые сервисы, чтобы упростить обслуживание своего приложения (к примеру, некоторые провайдеры предлагают управляемые Kubernetes или базы данных).

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

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

FaaS и PaaS

При поверхностном знакомстве FaaS и PaaS кажутся очень похожими, однако между ними есть ключевые различия, которые следует учитывать, чтобы сделать правильный выбор.

  • Конфигурация. Благодаря простоте использования и полностью управляемым решениям FaaS чрезвычайно быстро настраивается. PaaS предлагает больший уровень абстракции, чем другие модели облачных вычислений, однако она все же требует базовой настройки. Это может быть как преимуществом, так и недостатком – зависит от желаемого уровня контроля.
  • Операции. Технологии FaaS запускают и отключают целые приложения по отдельным запросам. Эта особенность FaaS может повлиять на задержку, стоимость и способность обрабатывать сложные запросы. Хотя PaaS имеет возможность автоматически масштабироваться по мере необходимости, в ней, как правило, всегда есть запущенные ресурсы.
  • Масштабируемость. Как вы уже знаете, PaaS масштабируется по мере необходимости, но продумывание и настройка все еще зависят от разработчика. В свою очередь FaaS не требует никакого планирования. Он легко и быстро самостоятельно масштабируется по мере необходимости.
  • Ценообразование. Существуют разные модели ценообразования для PaaS, они всегда зависят от провайдера. Однако PaaS часто обходится дороже, чем FaaS, если у вас низкая рабочая нагрузка. FaaS позволяет разработчикам платить только за вызов функции, экономя время, если триггеров событий мало. PaaS лучше подойдет для постоянных или высоких рабочих нагрузок с точки зрения цены.

Как работает FaaS

Раньше приложения обычно писались на основе монолитной архитектуры. Это значит, что приложение было структурировано так, что все его части запускались одновременно при помощи одной операции выполнения. Со временем разработчики стали все чаще прибегать к использованию микросервисов. Микросервисы — это набор модулей, которые можно развертывать независимо друг от друга. С ними можно работать индивидуально, а потому их легче тестировать и поддерживать.

Функция — это, по сути, микросервис, который может выполнять только одно действие в ответ на событие. Используя FaaS, провайдер запускает сервер вместе с функцией, выполняет функцию, а затем выключает сервер. Бессерверные приложения активны только тогда, когда используется функция, что позволяет использовать те же вычислительные ресурсы в другом месте, когда сервер выключен.

Разработчики, использующие FaaS, имеют доступ к платформе, которая позволяет им выполнять код для своих приложений. Простота — сильная сторона FaaS. Чтобы использовать FaaS по максимуму, разработчик должен сделать так, чтобы каждая функция выполняла только одно действие. Область действия функции должна быть ограниченной. Используя слишком много библиотек или запрашивая одну функцию на вызов другой, вы скоро замедлите работу приложения и увеличите затраты.

Преимущества FaaS

Архитектура FaaS имеет много преимуществ. Вот несколько основных причин, по которым вы можете выбрать FaaS для своего приложения:

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

Варианты использования FaaS

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

  • Рабочие нагрузки. Выбирайте FaaS для простых и повторяющихся функций без постоянных рабочих нагрузок или больших объемов запросов. Обычно цена FaaS зависит именно от выполнения функций, потому при интенсивном использовании FaaS затраты потенциально могут быть выше, чем с PaaS. Если ваша рабочая нагрузка относительно невелика, FaaS — отличный выбор, который упростит выделение ресурсов и сэкономит деньги.
  • Контроль. FaaS — одно из самых абстрактных облачных предложений. Подумайте, какой уровень контроля необходим вашим конфигурациям и инфраструктуре. Если вам подходит простота использования, но нужен немного больший контроль, чем предлагает FaaS, попробуйте PaaS. Разработчикам, которые хотят получить полный контроль над своей производственной средой, дизайном и поведением инфраструктуры, рекомендуем рассмотреть решение IaaS.
  • Блокировка вендора. Миграция приложений, созданных с помощью определенных провайдеров, может быть сложной задачей. Использование облачных решений с открытым исходным кодом упрощает перенос вычислительных операций от одного провайдера к другому.
Tags: , ,

Добавить комментарий