马逊云科技re:Invent全球大会发布了Amazon Lambda SnapStart,基于Java函数的重大改进,专门解决了Java函数冷启动引起的延迟问题。Lambda SnapStart可将Lambda函数冷启动持续时间从超过6秒降低至不到200毫秒,并使延迟率降低90%,而且无需额外费用,而且通常无需更改用户的功能代码。
Lambda SnapStar MicroVM快照是一种机制,通过该机制,运行中的MicroVM及其资源可以序列化并以快照的形式保存到外部介质中。 该快照稍后可用于在特定时间点恢复具有客户机工作负载的microVM。
这种优化思路和国内的大厂截然相反,被亚马逊的创新惊到了!下面介绍5个专用于serverless平台的轻量级容器(沙箱)
Firecracker
Firecracker 是一个轻量级的虚拟机监视器(VMM) 由亚马逊开发并针对无服务器进行了优化应用程序。 它通过执行来提供高隔离级别VM 中的无服务器功能。 它还提供了 VM 级快照,以便可以恢复 VM 级别的快照,并且由多个 VM 实例共享。
gVisor
gVisor 是一个基于容器的沙箱,提供强大的安全保障。 之前的一项研究报告说容器允许最多的系统调用(例如,350 次中的 306 次Linux 系统调用),这样暴露的系统调用可以被用于安全攻击。 gVisor 通过拦截容器对 Linux 的访问来解决此漏洞内核并限制一些系统调用以提高安全性 具体来说,gVisor拦截系统中的Sentry和Gofer来自容器的调用和 I/O 请求并过滤它们在允许它们被主机操作系统处理之前 。
Cloudflare Workers
Cloudflare Workers 是一个基于运行时的轻量级Node.js 的沙箱。 与其他无服务器计算平台不同,Cloudflare Workers 不使用容器或 VM隔离。 相反,它使用 V8:Isolate,一个轻量级的V8 javascript 引擎中的上下文。 Cloudflare Workers 表现出高性能,因为单个进程可以执行数百个 V8:Isolate。 然而,多种功能在单个 V8 进程中执行,因此其隔离级别为比的容器弱。
Catalyzer
Catalyzer是一个基于 gVisor 的无服务器平台,专为减少启动时间而设计。 它提供了一个沙箱从检查点镜像恢复功能的 fork 方法。 通过从检查点镜像重新启动,它可以显着减少启动时间。 此外,它还提出了一个新的操作系统primitive,sfork,进一步降低warm start。 sfork 原语使用干净状态的沙箱用户应用程序的模板。 Catalyzer保证与 gVisor 相同的隔离级别,因为它基于 gVisor。
Fireworks
Fireworks 是第一个无服务器计算平台,该平台具有高性能、内存效率高并保证高度 VM 级别隔离。 Fireworks通过利用即时编译 (JIT) 和 VM 级快照的组合来满足高性能的表现。该框架只发布了一篇论文,没有发布可用的产品。
结尾
后续会深入介绍这些容器,感谢关注!
参考
- Fireworks: A Fast, Efficient, and Safe Serverless Framework using VM-level post-JIT Snapshot