Hasty Briefsbeta

双语

Building an AWS Lambda-Like Runtime with Firecracker MicroVMs

3 days ago
  • #microvm
  • #firecracker
  • #serverless
  • 构建了使用Firecracker微虚拟机的轻量级无服务器运行时,以更好地理解无服务器平台。
  • Firecracker具有快速启动时间和强隔离性,非常适合在无服务器环境中运行不可信代码。
  • 通过快照恢复,冷启动延迟(约200毫秒)降低至约1-5毫秒,性能提升40至200倍。
  • 系统架构包括控制平面和执行层,通过vsock进行通信。
  • 挑战包括PID 1问题(通过tini解决)、快照时机的两难困境,以及vsock IPC竞争条件。
  • 运行时设计在微虚拟机内使用Node.js,并通过重用预热运行时来提高吞吐量和降低延迟。
  • 多租户调度实现了按功能队列、并发限制和加权调度。
  • 基准测试结果显示吞吐量约5,400次请求/秒,p50延迟约1毫秒,p99延迟约4毫秒。
  • 考虑的权衡包括隔离性与吞吐量、运行时灵活性与复杂性。
  • 该项目深入了解了冷启动、隔离与性能的张力,以及最小系统中的可观测性。