Прежде чем я начну, скажу, что я не был уверен на 100%, является ли SO подходящим SX для этого вопроса. Дайте мне знать, если я должен спросить это на каком-то другом SX.
Вопрос в целом касается FaaS, но если вы можете лучше объяснить это в контексте конкретной платформы / провайдера FaaS, это тоже замечательно.
В настоящее время я читаю о бессерверных вычислениях (FaaS, чтобы быть более точным c) и пытаюсь освоиться с предметом. Теперь почти везде, куда бы я ни обратился, я сталкиваюсь со следующими утверждениями о FaaS:
1) Большинство платформ FaaS поддерживают масштабирование с нуля;
2) Поставщики FaaS взимают плату со своих пользователей на основе времени выполнения их функций (обычно измеряется в мс);
3) Потенциальные холодные запуски (т. е. создание нового экземпляра вместо повторного использования существующего) являются проблемой в FaaS, поскольку они значительно ухудшают производительность вашего приложения;
Точки 1 и 2 Рассматриваемые преимущества - вы получаете именно то, что вам нужно (в том числе вообще ничего, если применимо), и вы платите именно за то, что получаете.
Пункт 3 считается недостатком - выполнение запроса занимает значительно больше времени. Я видел авторов, описывающих холодный старт как признак того, что платформы FaaS еще не достигли зрелости. Я видел, как практикующие говорили, что они задают периодические c запросы, чтобы не дать своим функциям стать неактивными и «провалиться», что вызывает холодный старт при следующем вызове.
Мой вопрос - почему холодные запуски рассматриваются как нежелательные, а не как компромисс ?
Я имею в виду, учитывая, что пользователь платит за время выполнения в FaaS, разве это обычно не в его интересах избежать теплых, но неработающих экземпляров функций? Мне кажется, что это решение по сравнению с решением высокой доступности. Я что-то неправильно понимаю? Имеет ли теплый, но бездействующий экземпляр функции не время для выполнения? Даже если это так:
a) не является ли это нежелательным с точки зрения провайдеров (когда приходится выделять ресурсы, которые не используются и не оплачиваются)?
b) обязательно отправлять периодические c запросы (как упомянуто выше) вам стоит, верно?