Что такое функция как услуга (FaaS)?

FaaS - это концепция бессерверных вычислений с бессерверной архитектурой. Разработчики программного обеспечения могут использовать это для развертывания отдельной функции (фрагмента кода), которая выполняет действие или фрагмент бизнес-логики, не беспокоясь о том, где они его запускают (например, без сервера). Ожидается, что они начнутся в течение миллисекунд и обработают отдельные запросы, а затем процесс завершится. Звучит просто, правда?

Принципы FaaS:

  • Полностью избавляет разработчика от проблем, связанных с серверами и средой.
  • Выставление счетов основано на потреблении и исполнении, а не на размерах экземпляров сервера.
  • Сервисы, управляемые событиями и мгновенно масштабируемые

На базовом уровне вы могли бы описать их как способ запуска некоторого кода, когда «что-то» происходит. Показывает, насколько легко обработать HTTP-запрос как «функцию».

exports.handler = function (event, context) {  context.succeed('hello world'); };

Преимущества и варианты использования

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

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

  • Транзакции большого объема - изолируйте их и масштабируйте
  • Динамические или масштабируемые рабочие нагрузки - если вы запускаете что-то только один раз в день или месяц, не нужно платить за сервер 24/7/365.
  • Запланированные задачи - это идеальный способ запустить определенный фрагмент кода по расписанию, например, задания cron.

Типы функций

У функций много потенциальных применений. Ниже приведен простой список некоторых распространенных сценариев. Их поддержка и реализация зависят от поставщика или услуги, которую вы используете.

  • Запланированные задачи или задания.
  • Обработайте веб-запрос.
  • Обработка сообщений очереди.
  • Запускаем вручную.

Резюме

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

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