Бессерверные вычисления: различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
Vald (обсуждение | вклад) |
м Удаление шаблонов: {{Нп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.
Примечания
[править | править код]- ↑ Haines, Steven. "Serverless computing with AWS Lambda, Part 1". JavaWorld (англ.). Архивировано 7 февраля 2018. Дата обращения: 30 января 2018.
- ↑ Neil Savage. Going serverless (англ.) // Communications of the ACM. — 2018. — Vol. 61, no. 2. — P. 15–16. — doi:10.1145/3171583.