Leetcode录播课上讲了这个sandbox有什么特点比如limited resource. 然后系统图上对应是的async worker(executor). 我想问是这个sandbox一般应该如何具体实现? 我看AlgoExpert’s Remote Code Execution Engine说他们用的是docker container. 我在想是不是AWS lambda 更好用?大家对sandbox for running code有什么想法?
我的理解是 docker container 也不是完全 secure 的。还需要做一系列其他的限制。用 lambda 如果实现 leetcode 这样的会很贵,安全性能倒是可以。
可以看一下下面的链接。是更合理的实现。
How do I implement an online judge or autograder that both can be completed in 1–2 months and that is similar to CodeChef, TopCoder, etc. from scratch?
How is Sandboxing implemented?
一般系统面试情况下,对sandbox的expectation是什么?需要讲怎么实现sandbox吗?
不用很细,不会考具体实现,知道要达到什么效果就够了。