主要观点:
- 虚拟化的主要用例是隔离,如 AWS Lambda 函数会被置于 Firecracker VM 中以获得完全隔离的计算环境,但这很昂贵。
- 如今使用的语言和运行时未设计用于“多租户”,默认情况下运行时可无限制访问所在系统,虽可通过操作系统或运行时进行访问控制,但通常粒度较粗且难以正确实现。
- 提出一种替代虚拟化的方法,即资源控制内置到语言本身,通过运行具有不同能力的运行时实例来实现隔离,可完全摆脱虚拟化。
关键信息:
- 虚拟化能确保同时运行的应用不相互干扰,但代价高。
- 现有语言和运行时易导致租户间相互干扰等问题。
- 替代方法包括 WebAssembly(SpiderLightning 是其实现)、“无平台”语言(如 Roc)、静态验证(为现有语言提供定制库并静态验证代码)。
重要细节:
- AWS Lambda 函数在 Amazon 服务器上通过 Firecracker VM 实现隔离。
- WebAssembly 可解耦字节码和 VM 实现,主机可选择暴露给访客进程的能力。
- SpiderLightning 以 WebAssembly 实现相关想法,暴露常见 web 编程组件。
- Roc 是“无平台”语言但仍处于初期。
- 静态验证可通过为现有语言提供定制库并静态验证代码来实现隔离。
总结:提出将应用隔离在语言层解决的观点,介绍多种实现方式,如 WebAssembly、“无平台”语言和静态验证,认为这样可避免虚拟化的开销和复杂性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。