Информация об изменениях

Сообщение Re[2]: Сloud functions и ограничения по ЯП от 31.07.2023 14:06

Изменено 31.07.2023 14:14 Shmj

Re[2]: Сloud functions и ограничения по ЯП
Здравствуйте, vsb, Вы писали:

vsb>С чего ты взял? Создаётся.


А с того, что там плата за каждый запрос, причем не большая. Фактически за 0.3 сек. успевают выполнить код. Если под каждый запрос создавать отдельную вирт. машину с нуля — не успеют все проинициализировать за 0.3 сек и слишком дорого будет, даже просто необходимое количество памяти выделить + провести инициализацию окружения — оно же требует установленной ОС.

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

S>> а изоляция достигается средствами ограничения API (как то стандартные функции записи в файл — не доступны или урезаны (как-то читать можно только из своей папки)).


vsb>API тут не при чём, любые ограничения API можно обойти, тем более на языках вроде Go или Rust, где ты можешь просто написать машинный код в память и выполнить его.


Так там, скорее всего, запрещены инструкции машинного кода. Думаю что как-то это можно сделать в Rust.
Re[2]: Сloud functions и ограничения по ЯП
Здравствуйте, vsb, Вы писали:

vsb>С чего ты взял? Создаётся.


А с того, что там плата за каждый запрос, причем не большая. Фактически за 0.3 сек. успевают выполнить код. Если под каждый запрос создавать отдельную вирт. машину с нуля — не успеют все проинициализировать за 0.3 сек и слишком дорого будет, даже просто необходимое количество памяти выделить + провести инициализацию окружения — оно же требует установленной ОС.

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

S>> а изоляция достигается средствами ограничения API (как то стандартные функции записи в файл — не доступны или урезаны (как-то читать можно только из своей папки)).


vsb>API тут не при чём, любые ограничения API можно обойти, тем более на языках вроде Go или Rust, где ты можешь просто написать машинный код в память и выполнить его.


Так там, скорее всего, запрещены инструкции машинного кода. Думаю что как-то это можно сделать в Rust.

Возможно там нужно дать исходники на Rust и как-то проверяют, что нет небезопасных секций. С Go — не знаю.