Назад | Перейти на главную страницу

В чем практическая разница между RPC и FaaS?

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

Что касается меня, то это одно и то же. Вы вызываете метод или функцию на другом компьютере.

В основном да, это то же самое. Вы используете какие-то другие ресурсы, как они описали их владельцы.

RPC - это один из протоколов доступа к удаленным ресурсам, определенный в RFC 1831. Другой протокол - ie. МЫЛО. В целом RPC - довольно старая технология, RFC был опубликован в 1995 году.

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

Использование зависит от ваших потребностей. Если вам нужно просто подключить две ваши службы или подготовить API для интеграции стороннего программного обеспечения, используйте RPC или какой-либо другой стандарт.

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

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

В бессерверном режиме вы просто пишете код, присоединяете триггер и позволяете бессерверной службе управлять и выделять ресурсы для его запуска. (Хорошо, вам все еще нужно управлять стратегией CD!)

Более того, RPC похож только на один тип бессерверного вызова: прямой вызов из бессерверного API. Напротив, бессерверные вызовы могут быть связаны с событиями в облаке, такими как сохранение в базе данных или файловой системе или постановка данных в очередь. При использовании RPC вам необходимо написать код для обнаружения события и вызова RPC-вызова. В бессерверном режиме вы настраиваете его и позволяете системе обрабатывать детали.

Кто-то может возразить против термина «бессерверный», поскольку, конечно, есть сервер, но это сервер (или фактически группа серверов), о котором вам не нужно знать или думать, и в этом суть название.

Для отличного объяснения см. http://martinfowler.com/articles/serverless.html