Функция как услуга

Функция как услуга (англ. function-as-a-service, FaaS) — архитектурный шаблон, предполагающий возможность вызова экземпляра управляющего кода без необходимости управления серверами и серверным приложением; ключевой компонент бессерверных вычислений[1]. Одной из первых широко известных реализаций является представленный в 2014 году сервис AWS Lambda, аналогичные[2] предложения среди публичных PaaS есть у Google (Cloud Functions[3]), IBM (на Apache OpenWhisk в составе платформы Bluemix) и Microsoft (Azure Functions), Oracle (Fn, код опубликован на GitHub).

Идея состоит в том, что серверная часть разбивается на набор не зависящих от состояния (stateless) функций для обработки событий (которыми могут быть приходящие HTTP-запросы, появление новых сообщений в очереди, наступление указанного в планировщике времени и тому подобные события). Состояние в данном случае понимается в контексте развёртывания (deployment), то есть результат выполнения функции не должен зависеть от состояния памяти сервера (за вычетом переданных параметров вызова) и содержимого локальной файловой системы. При таких ограничениях, горизонтальное масштабирование выполняется автоматически провайдером, который может использовать любое доступное ему в данный момент вычислительное устройство, обеспечивающее требуемый уровень производительности. Также, как правило, время выполнения функции принудительно ограничивается несколькими минутами[4].

Примечания

  1. Serverless architecture (англ.). ThoughtWorks Technology Radar.
  2. Tom Maiaroto. Azure Cloud Functions vs. AWS Lambda (англ.). serifandsemaphore.com (4 апреля 2016).
  3. Google Cloud Functions Documentation (англ.). Google Cloud Platform.
  4. Mike Roberts. Serverless Architectures (англ.). MartinFowler.com (17 июня 2016).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.