Что такое функция как услуга (FaaS)?
FaaS - это концепция бессерверных вычислений с бессерверной архитектурой. Разработчики программного обеспечения могут использовать это для развертывания отдельной функции (фрагмента кода), которая выполняет действие или фрагмент бизнес-логики, не беспокоясь о том, где они его запускают (например, без сервера). Ожидается, что они начнутся в течение миллисекунд и обработают отдельные запросы, а затем процесс завершится. Звучит просто, правда?
Принципы FaaS:
- Полностью избавляет разработчика от проблем, связанных с серверами и средой.
- Выставление счетов основано на потреблении и исполнении, а не на размерах экземпляров сервера.
- Сервисы, управляемые событиями и мгновенно масштабируемые
На базовом уровне вы могли бы описать их как способ запуска некоторого кода, когда «что-то» происходит. Показывает, насколько легко обработать HTTP-запрос как «функцию».
exports.handler = function (event, context) { context.succeed('hello world'); };
Преимущества и варианты использования
Как и большинство других вещей, FaaS не будет идеальным для каждого приложения.
В целом, мы видим, что компании и разработчики используют их в основном для наших очень больших транзакций, чтобы они могли масштабироваться при необходимости и не иметь избыточных серверов в остальное время.
- Транзакции большого объема - изолируйте их и масштабируйте
- Динамические или масштабируемые рабочие нагрузки - если вы запускаете что-то только один раз в день или месяц, не нужно платить за сервер 24/7/365.
- Запланированные задачи - это идеальный способ запустить определенный фрагмент кода по расписанию, например, задания cron.
Типы функций
У функций много потенциальных применений. Ниже приведен простой список некоторых распространенных сценариев. Их поддержка и реализация зависят от поставщика или услуги, которую вы используете.
- Запланированные задачи или задания.
- Обработайте веб-запрос.
- Обработка сообщений очереди.
- Запускаем вручную.
Резюме
Разработчики ненавидят серверы и управление серверами. Идея бессерверных архитектур - мечта большинства разработчиков. Тем не менее, я не могу рассматривать FaaS как полную замену нормальной архитектуре приложений. Например, базовое веб-приложение потребует множества функций.
По моему скромному мнению, приложения на основе функций идеально подходят для замены архитектур в стиле микросервисов и небольших серверных служб большого объема.