Site icon 8HOST.COM

Функция как услуга: простыми словами о 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

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

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

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

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

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

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

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