Имеет ли смысл использовать актер / агентно-ориентированное программирование в среде Function as Service?

Мне интересно, можно ли применить библиотеку агента / актера (Akka, Orbit, Quasar, JADE, Reactors.io) в среде Function as a Service (OpenWhisk, AWS Lambda)?

Имеет ли это смысл?

Если да, то каков минимальный пример, представляющий добавленную стоимость (чего не хватает, когда мы используем только FaaS или только библиотеку актеров / агентов)?

Если нет, то можем ли мы построить граф решений, который может помочь нам решить, должны ли мы для нашей проблемы использовать библиотеку актеров / агентов или FaaS (или что-то еще)?

1 ответ

Решение

Это вопрос, основанный на мнениях, но я думаю, что в нынешней форме нет смысла помещать актеров в FaaS - противоположные работы на самом деле довольно хороши: OpenWhisk реализован поверх Akka.

Есть несколько причин:

  1. Текущая форма FaaS по своей природе не имеет состояния, что значительно упрощает такие вещи, как маршрутизация запросов. Актеры по своей природе.
  2. Исходя из моего опыта, функции FaaS, как правило, не связаны друг с другом - вам нужны некоторые внешние ресурсы, но это ментальная модель: общие ресурсы и возможности. В моделях акторов мы склонны мыслить категорией отдельных сущностей, представленных как акторы, т.е. пользователь Макс, а не как таблица пользователей. Я не рассматриваю здесь область использования актеров исключительно как единицу параллелизма.
  3. Приложения FaaS имеют очень короткий срок службы - это один из основополагающих элементов. Поскольку создание, размещение и восстановление состояния для более сложных субъектов могут занять некоторое время, и вам обычно требуется много из них для выполнения одной задачи, вы можете оказаться в точке, когда восстановление состояния системы занимает больше времени, чем фактическое выполнение задача, для которой необходимо это состояние.

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

Другие вопросы по тегам