Бессерверные вычисления: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
м Удаление шаблонов: {{Нп5}}×1
 
(не показано 13 промежуточных версий 9 участников)
Строка 1: Строка 1:
'''Бессерверные вычисления''' ({{lang-en|serverless computing}}) — стратегия организации [[Платформа как услуга|платформенных облачных услуг]], при которой облако автоматически и динамически управляет выделением вычислительных ресурсов в зависимости от пользовательской нагрузки. Основная задача такой стратегии — реализация шаблона «[[функция как услуга]]»<ref>{{Cite news|url=https://www.javaworld.com/article/3210726/application-development/serverless-computing-with-aws-lambda.html|title=Serverless computing with AWS Lambda, Part 1|last=Haines|first=Steven|language=en|work=JavaWorld|accessdate=2018-01-30|archivedate=2018-02-07|archiveurl=https://web.archive.org/web/20180207010152/https://www.javaworld.com/article/3210726/application-development/serverless-computing-with-aws-lambda.html}}</ref>, при котором для выполнения каждого запроса (вызова функции) создаётся отдельный [[Контейнеризация|контейнер]] или [[виртуальная машина]], уничтожающиеся после выполнения<ref>{{статья | автор = Neil Savage | год = 2018 | заглавие = Going serverless | издание = [[Communications of the ACM]] | том = 61 | номер = 2 | страницы = 15–16 | doi =10.1145/3171583 | lang = en}}</ref>.
'''Безсерверные вычисления''' ({{lang-en|serverless computing}}) —
модель [[Облачные вычисления | облачных вычислений]] для которых платформа динамично руководит выделением машинных ресурсов. Иногда безсерверные вычисления также называют «Функция как услуга» ({{lang-en | Function as a Service, FaaS}}), потому что единицей кода является функция, которая выполняется платформой<ref>{{Cite news|url=https://www.javaworld.com/article/3210726/application-development/serverless-computing-with-aws-lambda.html|title=Serverless computing with AWS Lambda, Part 1|last=Haines|first=Steven|language=en|work=JavaWorld|accessdate=2018-01-30}}</ref>.
По сути для выполнения одного запроса создается отдельный [[Контейнер (виртуализация) | контейнер]], который уничтожается после выполнения<ref>[https://www.youtube.com/watch?v=p__rV9MfdJs Deep Dive into Architecture] - Scalable microservices with Kubernetes - [[Udacity]]</ref>.


Конечно безсерверные вычисления требуют аппаратное обеспечение и этот срок не стоит понимать буквально. Это название используется потому, что пользователям такой платформы не надо иметь дело с настройкой серверов для запуска кода: все серверные настройки, планирование вычислительных ресурсов вполне скрытые пользователей и руководствуются платформой. Безсерверный код может быть частью [[Прикладное программное обеспечение| приложений]] построенного на традиционной архитектуре, например, на [[Микросервисы | микросервисах]].
Наименование связано с тем, что пользователям в этой стратегии не нужно иметь дело с выделением и настройкой «серверов» (как инфраструктурных единиц — виртуальных машин, контейнеров, так и [[Сервер (программное обеспечение)|программных серверов]] — серверов баз данных, серверов приложений, экземпляров сред выполнения): все настройки и планирование вычислительных ресурсов, необходимые для запуска кода по требованию или по событию, скрыты от пользователей и управляются облаком. Бессерверный код может быть частью [[Прикладное программное обеспечение|приложений]], построенных на традиционной архитектуре, например, на [[Микросервисная архитектура|микросервисах]].


Стратегия реализована в основных платформах [[Функция как услуга|FaaS]]: [[AWS Lambda]], {{нп5|Google Cloud Functions}}, [[Apache OpenWhisk]] и основанном на ней сервисе [[IBM Cloud]], [[Microsoft Azure|Azure Functions]] в облаке Microsoft, сервисе [[Fn (облачный сервис)|Fn]] от [[Oracle]]. Кроме того, в конце [[2010-е годы|2010-х годов]] стратегия получила распространение в реализациях [[облачная СУБД|облачных СУБД]], таковы, например, Azure Data Lake (работает в [[Microsoft Azure]] и динамически выделяет и высвобождает вычислительные ресурсы, работая с данными в сервисе постоянного хранения), [[Snowflake (СУБД)|Snowflake]] (работающая с данными в [[Amazon S3|S3]] и создающая вычислительные экземпляры по мере нагрузки), [[FaunaDB]].
== Безсерверные среды выполнения ==
Платформа [[AWS Lambda]], выпущенная компанией [[Amazon]] в 2014 <ref> {{Cite news | url = https: //techcrunch.com/2014/11/13/amazon-launches-lambda-an-event -driven-compute-service / | title = Amazon Launches Lambda, An Event-Driven Compute Service | last = Miller | first = Ron | language = en | work = TechCrunch | accessdate = 2018-01-30}} </ref> году была первой общедоступной платформой, что предлагала безсерверные вычисления. Сейчас AWS Lambda поддерживает [[Node.js]], [[Python]], [[Java]], [[C Sharp|C#]] и [[Go]].


[[Google Cloud Platform]] предлагает [[Google Cloud Functions]]. Для написания функций используется [[JavaScript]], для выполнения - Node.js.

[[IBM]] предлагает OpenWhisk в качестве безсерверного среды выполнения с открытым исходным кодом. OpenWhisk имеет поддержку Node.js, Python, Java, и Swift.

Еще одним средой является [[Azure Functions]] от [[Microsoft Azure]].

== Безсерверные базы данных ==
Безсерверные [[базы данных]] расширяют модель безсерверного выполнения до уровня баз данных.

Azure Data Lake это хранилище данных с высоким уровнем [[масштабируемость | увеличение]] и аналитики. Разворачивается в [[Microsoft Azure]]. Azure Data Lake Analytics предоставляет распределенную инфраструктуру динамично выделяет или высвобождает ресурсы, таким образом, клиент платит только за использованные услуги.

[[FaunaDB]] глобально распределенная, транзакционная база данных, основанный на технологии от [[Twitter]]. Она охватывает несколько облачных провайдеров с моделью оплаты «плати по ходу».
== Примечания ==
== Примечания ==
{{примечания}}
{{примечания}}

[[Категория:Облачные вычисления]]
[[Категория:Облачные вычисления]]

Текущая версия от 22:11, 6 ноября 2024

Бессерверные вычисления (англ. serverless computing) — стратегия организации платформенных облачных услуг, при которой облако автоматически и динамически управляет выделением вычислительных ресурсов в зависимости от пользовательской нагрузки. Основная задача такой стратегии — реализация шаблона «функция как услуга»[1], при котором для выполнения каждого запроса (вызова функции) создаётся отдельный контейнер или виртуальная машина, уничтожающиеся после выполнения[2].

Наименование связано с тем, что пользователям в этой стратегии не нужно иметь дело с выделением и настройкой «серверов» (как инфраструктурных единиц — виртуальных машин, контейнеров, так и программных серверов — серверов баз данных, серверов приложений, экземпляров сред выполнения): все настройки и планирование вычислительных ресурсов, необходимые для запуска кода по требованию или по событию, скрыты от пользователей и управляются облаком. Бессерверный код может быть частью приложений, построенных на традиционной архитектуре, например, на микросервисах.

Стратегия реализована в основных платформах FaaS: AWS Lambda, Google Cloud Functions[англ.], Apache OpenWhisk и основанном на ней сервисе IBM Cloud, Azure Functions в облаке Microsoft, сервисе Fn от Oracle. Кроме того, в конце 2010-х годов стратегия получила распространение в реализациях облачных СУБД, таковы, например, Azure Data Lake (работает в Microsoft Azure и динамически выделяет и высвобождает вычислительные ресурсы, работая с данными в сервисе постоянного хранения), Snowflake (работающая с данными в S3 и создающая вычислительные экземпляры по мере нагрузки), FaunaDB.

Примечания

[править | править код]
  1. Haines, Steven. "Serverless computing with AWS Lambda, Part 1". JavaWorld (англ.). Архивировано 7 февраля 2018. Дата обращения: 30 января 2018.
  2. Neil Savage. Going serverless (англ.) // Communications of the ACM. — 2018. — Vol. 61, no. 2. — P. 15–16. — doi:10.1145/3171583.