Предприятиям простительно думать, будто бессерверные вычисления — всего лишь одна из вызвавших много шума технических концепций. В действительности же она наполнена серьезным содержанием, пишет на портале ComputerWeekly Стюарт Бёрнс, эксперт по виртуализации и Linux.
Термин появился недавно. А концепция зародилась лет десять назад, когда ее неудачно попыталась реализовать некая забытая ныне компания.
Бессерверные вычисления рассматриваются как сверхэффективный способ использования облачных ресурсов, но могут иметь гораздо более широкое применение.
Бессерверные вычисления можно считать последним шагом в продолжающемся отделении сервисов от виртуальной или физической инфраструктуры, хотя последняя все-таки должна присутствовать. Или же «софтом и только софтом», поскольку они устраняют зависимости. В этой модели разработчикам не приходится беспокоиться по поводу обслуживания, безопасности и установки исправлений на базовый хост, этим должен заниматься системный администратор.
Определение
Иногда термин некорректно применяется к контейнерам, микросервисам и другим абстракциям. В действительности же он обозначает «функцию как сервис» (Function as a Service, FaaS).
Бессерверные вычисления предназначены в первую очередь для коротких взаимодействий. Многие провайдеры FaaS прерывают потоки по истечении пяти минут. Это делает бессерверные вычисления непригодными для классических веб-серверов.
При использовании бессерверных вычислений все сводится к программному коду и вызовам API, приложения раскладываются на компоненты. Например, вместо создания серверов приложений аутентификации можно задействовать стороннего провайдера для выполнения функций аутентификации. Они будут выполняться за счет вызовов API и обмена сообщениями между приложением и внешней системой аутентификации. Каждый процесс аутентификации будет осуществляться независимо и завершаться, как правило, через несколько секунд.
Вы можете решить, что это обойдется слишком дорого. Но это не так, если учесть, что вызов API стоит несколько тысячных долей цента.
Важнее, наверное, то, что эластичное горизонтальное масштабирование становится очень простым.
Снижение затрат
Уменьшение стоимости инфраструктуры также сокращает общие расходы на предоставление доступа к интернет-приложению. Понятно, что должен иметься некий механизм биллинга, срабатывающий при каждом вызове приложения. Таким образом, плата взимается за реальное потребление.
Биллинг покрывает также затраты на оборудование, так что термин «бессерверные» немного вводит в заблуждение. Однако оно обходится гораздо дешевле, чем владение ожидающим использования оборудованием, за которое тем не менее необходимо платить.
Такой подход можно назвать «аутсорсингом обыденности». При этом ключевая бизнес-логике на сторону не передается.
Поясним вопрос о расходах на простом примере. Использование виртуальной машины в облаке Amazon Web Services обойдется в несколько десятков долларов в месяц, а при бессерверных вычислениях — на две трети дешевле. Но этот показатель может сильно варьироваться, поэтому нет единого решения на все случаи жизни.
Минусом является то, что все осуществляется через вызовы API и потому зависит от корректности программ и вызовов.
Целесообразность перехода
Прежде чем переходить на бессерверные вычисления ради сокращения расходов следует принять во внимание некоторые обстоятельства.
Например, такой переход потребует большой работы по изменению архитектуры приложения, новых инструментов и приемов, а также разработчиков, умеющих эффективно их использовать. Все это недешево.
Следует также отметить, что в бессерверных вычислениях применяются не все языки программирования. Следует поинтересоваться, какие из них использует выбранный провайдер FaaS. AWS Lamba, например, поддерживает Go, Node.js, Java, C# и Python.
Бессерверные вычисления требуют очень тщательного предварительного тестирования, сложны в отладке и подходят не для любых случаев.
Для небольших компаний они скорее излишество. Они могут быть полезны при автоматическом масштабировании до уровня Интернета. Но переход к ним не будет простым и дешевым, хотя они могут сэкономить деньги в долгосрочной перспективе. Короче говоря, необходимо все продумать и рассчитать, прежде чем начинать переход.