Бессерверные вычисления 101

Автор: Roger Morrison
Дата создания: 22 Сентябрь 2021
Дата обновления: 1 Июль 2024
Anonim
FunctionGraph: бессерверные вычисления в облаке SberCloud.Advanced
Видео: FunctionGraph: бессерверные вычисления в облаке SberCloud.Advanced

Содержание


Источник: Wavebreakmediamicro / Dreamstime.com

вынос:

Бессерверные вычисления на самом деле немного ошибочны - серверы действительно задействованы, они просто в облаке.

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

Разработчикам программного обеспечения больше не нужно думать о серверах или корректировать кодирование на основе серверов. Они могут полностью сосредоточиться на кодировании, в то время как серверы, размещенные в облаке, занимаются обработкой кода. Нет необходимости планировать емкость серверов, поскольку в облаке они могут увеличиваться и уменьшаться в зависимости от требований. Весь сервер не остается активным все время. Исходя из требований, его части становятся активными, выполняют свою работу, а затем становятся бездействующими.


Многие полагают, что бессерверные вычисления могут повысить эффективность вычислений и снизить эксплуатационные расходы; они рассматривают это как революционный способ вычисления. Но не все согласны. С другой стороны аргумента противостоят тому, что безсерверные вычисления увеличат сложность, и способов управления сложностью не так много.

Что такое бессерверные вычисления?

Как уже говорилось, безсерверные вычисления не означают, что разработка компьютеров или программного обеспечения может осуществляться без серверов. Фактически серверы просто размещаются в облаке сторонним поставщиком. Поэтому разработчикам программного обеспечения просто нужно сосредоточиться на своем коде, и не нужно думать о серверах, емкости, развертывании или чем-то подобном. Серверы имеют различные части внутри, известные как функции, которые обрабатывают код. В отличие от традиционных вычислений, весь сервер не остается активным все время. Функции выполняют конкретные задачи - например, проверку и поиск - и активируются только при необходимости. Функции могут быть увеличены или уменьшены в зависимости от требований. Как и другие облачные сервисы, такие как программное обеспечение как услуга (SaaS) или платформа как услуга (PaaS), функции также предлагаются по подписке. Клиент платит только за время, пока функция остается активной.


история

Бессерверные вычисления - это довольно новая концепция в разработке программного обеспечения, и ее корни уходят в 2006 год. В 2006 году сервис под названием Zimki предложил решение, которое позволило разработчикам программного обеспечения писать код и загружать его на сервер Zimkis. Выполнение кода выполнялось с помощью функций, предлагаемых в форме интерфейсов прикладного программирования (API).

Следующая крупная разработка произошла в 2014 году, когда Amazon представила систему оплаты по мере использования для платформы выполнения кода в форме AWS Lambda. Тем не менее, интересно отметить, что столь новая концепция заняла так много времени, чтобы обрести силу (с 2006 по 2014 год). По какой-то причине разработки в области безсерверных вычислений не вызвали такого большого всплеска, как другие идеи, такие как облачные вычисления или Интернет вещей (IoT). Тем не менее, AWS Lambda была первым предложением для больших серверов от крупного предприятия, и последовало множество других предложений, включая предложение Googles, известное как Google Cloud Functions. В 2016 году и IBM, и Microsoft запрыгнули на бездетную вычислительную платформу, представив функции OpenWhisk и Azure соответственно.

Дайвинг глубже

Хорошим моментом для начала понимания безсерверных вычислений на более глубоком уровне является сравнение между безсерверными вычислениями и PaaS. Хотя они и отличаются друг от друга как концепции, PaaS на самом деле был первым шагом к предложению без сервера. В то время как PaaS предлагает платформу и среду, позволяющую разработчикам создавать программные приложения через Интернет, все еще существует необходимость планирования емкости, необходимой для программного обеспечения в облаке. Однако нет никакой необходимости думать о серверах, когда вы работаете с бессерверными вычислениями. Разработчики программного обеспечения просто кодируют и загружают код в облако, а затем серверы вступают во владение.

Бессерверные вычисления также называют функциями как услугами (FaaS), потому что небольшие модели предлагаются в бизнес-модели с оплатой по мере использования. Такие функции выполняют небольшие задачи - например, проверяют учетные данные пользователя. Функции предлагаются в виде API. Может быть несколько функций, которые могут потребоваться для программного приложения, но не все функции становятся активными одновременно; они активны только тогда, когда они необходимы. Например, если одна функция получает большой объем трафика и перегружена, ее можно масштабировать и увеличить ее емкость. Таким образом, вам не нужно масштабировать все приложение.

Нет ошибок, нет стресса - ваше пошаговое руководство по созданию изменяющего жизнь программного обеспечения без разрушения вашей жизни

Вы не можете улучшить свои навыки программирования, когда никто не заботится о качестве программного обеспечения.

Почему важны бессерверные вычисления?

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

  • Фокус на кодировании
    В традиционных вычислениях разработчики должны были думать о серверах и соответствующим образом корректировать кодирование. В безсерверных вычислениях им нужно только сосредоточиться на кодировании, а об остальном заботятся серверы, размещенные в облаке. Этот повышенный фокус ведет к лучшему качеству кода.
  • Кодирование потенциально проще
    Если ваши коды ориентированы на серверные вычисления, то все, что вам нужно сделать, - это написать меньшие фрагменты кода, которые обрабатываются определенными соответствующими функциями, и убедиться, что код хорошо интегрируется с другими частями кода.
  • Легче масштабировать вверх или вниз
    Поскольку вся безсерверная вычислительная инфраструктура состоит из небольших функций, нет необходимости увеличивать или уменьшать всю инфраструктуру - достаточно масштабировать требуемую функцию. Таким образом, обработка и масштабирование происходит намного быстрее.
  • Менее дорогой
    Как правило, предприятие, которое использует серверные вычислительные службы, оплачивает подписку, а затем и использование функции. Однако он платит только за время, в течение которого функция активна и используется. Другими словами, предприятия платят только за то, что они потребляют.

Пример безсерверных вычислений

AWS Lambda является одним из наиболее ярких примеров предложений без серверов. Это позволяет предприятиям просто написать и загрузить код в Lambda. При необходимости Lambda может автоматически масштабировать приложение, запуская коды в ответ на триггер. Когда рабочая нагрузка на функцию или API увеличивается, функция масштабируется. Клиент выставляет счет на основе подсекундного измерения, что означает, что клиент платит за каждые 100 мс, которые выполняет код, и количество срабатываний кода. Таким образом, нет необходимости платить, когда нет выполнения кода.

Заключение

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