Терминология. Что Такое Бессерверное Использование?

  • Автор темы Валадимир
  • Обновлено
  • 21, Oct 2024
  • #1

Все поставщики облачных услуг продвигают свои «бессерверные» решения. Обещание состоит в том, что бессерверные технологии заменят нынешние способы разработки программного обеспечения разработчиками и управления ими в производстве.

Что такое «бессерверный»?

Где можно узнать о нем больше и как его можно использовать сегодня?

Валадимир


Рег
18 Jul, 2008

Тем
71

Постов
168

Баллов
573
  • 25, Oct 2024
  • #2

Статья в Википедии о бессерверные вычисления обеспечивает достойное введение в тему:

Бессерверные вычисления, также известные как функция как услуга (FaaS), представляют собой модель выполнения кода облачных вычислений, в которой поставщик облачных вычислений полностью управляет запуском и остановкой контейнерной платформы функции как услуги (PaaS) по мере необходимости для обслуживания запросов и запросов. счета выставляются на основе абстрактной меры ресурсов, необходимых для удовлетворения запроса, а не за виртуальную машину в час.

Идея в том, что разработчик вообще не нужно заботиться о серверной инфраструктуре. Поставщик облачных услуг управляет физическими серверами, используемой операционной системой и всеми традиционными трудностями, связанными с эксплуатацией сервера.

Бессерверные вычисления заставляют вашу архитектуру думать о том, что машины чем занимаются функции делают. AWS Лямбда вот пример, который приходит на ум: платишь и убегаешь функции, без какого-либо упоминания о том, какой тип физической инфраструктуры работает ниже. Существуют также конкурирующие бессерверные хосты, такие как Функции Azure (или вы можете просто поискать, если ни один из них вас не интересует).

У бессерверной технологии довольно много преимуществ (хотя в некоторых случаях вам придется писать немного иначе, чем вы привыкли, потому что это совершенно другая архитектура):

  • Масштабируемость, по сути, предоставляется бесплатно — поскольку вы платите просто за запуск функции, поставщик облачных услуг может легко выделить больше оборудования, необходимого для запуска вашего кода. Вы также можете потенциально масштабироваться по мере роста спроса, вместо того, чтобы платить фиксированную ставку независимо от того, используется ли ваше приложение один или миллион раз.

  • Серверное программное и аппаратное обеспечение больше не требует управления разработчиком — этим занимается поставщик облачных услуг. Если вы когда-либо использовали на сервере что-то вроде Arch, вы знаете, как легко уничтожить критический пакет и сломать все!

  • Это дает разработчикам возможность сосредоточиться на том, в чем они хороши. код. Большинство разработчиков, вероятно, не будут хороши в обеих серверных инфраструктурах. и программирование — бессерверные технологии просто устраняют одну проблему.

 

Gad-Fly


Рег
22 Sep, 2007

Тем
66

Постов
186

Баллов
536
  • 25, Oct 2024
  • #3

У Мартина Фаулера есть хороший обзор:
https://martinfowler.com/articles/serverless.html

ТЛ;ДР
«Бессерверный» описывает разработку приложений и архитектуру, которая проектирует приложения, в которых инфраструктура эфемерныйЭто означает, что они, как правило, основаны на контейнерах и могут «приходить и уходить» на основе механизма динамического масштабирования. Это предписывает использование архитектур без сохранения состояния, которые зависят от распределенных технологий (таких как хранилища ключей/значений).

 

Кностантин


Рег
09 May, 2011

Тем
77

Постов
187

Баллов
582
  • 25, Oct 2024
  • #4

Термин «бессерверный», как и многие вещи в нашей сфере, становится перегруженным термином… но в целом он означает «Функционально наша архитектура не зависит от предоставления или текущего обслуживания сервера».

Первый случай, который приходит на ум, — это одностраничное приложение JavaScript, которое использует локальное хранилище и хранится на чем-то вроде Amazon S# или Github Pages (или на любом статическом сайте — это всего лишь общие примеры). Представьте себе что-то вроде приложения в стиле «задача» или «выполнение задач», которое полностью работает в вашем браузере. Ваш браузер обращается к такому сервису, как S3, для загрузки кода, и все сохраняемые вами элементы сохраняются в локальном хранилище вашего браузера. Для этого у вас нет сервера.

Второй вариант, немного более сложный (а также тот, который популяризировал термин «бессерверный»), использует такой сервис, как AWS Lambda. Позвольте мне объяснить это, представив проблему, которую он решает:

Много раз за свою карьеру я решал бизнес-задачу для клиента, используя всего лишь небольшой код Ruby, который выполнял периодическое извлечение, преобразование и загрузку (обычно написанную в виде rake-задачи). После решения я обычно автоматизирую его с помощью cron. Тогда возникает проблема: «Где мне разместить эту штуку, которая запускается раз в час?» Для некоторых клиентов мы установили сервер в их существующей инфраструктуре. Для других мы установили экземпляр EC2, хотя 99% времени он простаивал. В любом из этих случаев существует сервер, который требует подготовки, исправления, мониторинга, обновления и т. д.

С помощью Amazon Lambda я могу взять эту задачу rake и запустить ее на их сервисе как чистую «функцию». Я даже могу запланировать это. Этому клиенту больше не понадобится часть инфраструктуры для такой простой операции, выполняемой раз в час.

В «бессерверном» варианте все равно остается сервер, как и в «облаке» все еще остается компьютер. Поверх всего этого есть лишь уровень абстракции, который берет на себя часть ответственности за окружающую среду.

 

AlexanZem


Рег
09 Dec, 2020

Тем
80

Постов
204

Баллов
624
  • 25, Oct 2024
  • #5

Все отличные ответы уже есть. Я просматривал сообщение в блоге Мышление без серверов — Как новые подходы удовлетворяют современные потребности в обработке данных в HighScalability, где я наткнулся на прекрасное объяснение того, что означает бессерверность:

Фраза «бессерверный» не означает, что серверы больше не используются.

  • Это просто означает, что разработчикам больше не нужно так много думать.

о них. Вычислительные ресурсы используются как услуги без необходимости

управлять физическими возможностями или ограничениями. Поставщики услуг все чаще берут на себя ответственность за управление серверами, данными магазины и другие инфраструктурные ресурсы... Переход на бессерверные системы позволяет разработчики переключают свое внимание с уровня сервера на уровень задач. Бессерверные решения позволяют разработчикам сосредоточиться на том, что их приложение или система должна сделать, убрав сложность серверной части

 

Timger


Рег
17 Mar, 2020

Тем
84

Постов
193

Баллов
653
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно