不改代码也能全面 Serverless 化,阿里中间件如何破解这一难题?( 十 )

L2 的每个 SNAOSHOT 对应一个可运行的实例 , 例如预计一个应用需要最大启动100个实例 , 那么需要提前生成100个 SNAOSHOT , 每个 SNAOSHOT 对应一个运行实例 , 需要启动时 , 从远程磁盘加载这个 SNAPSHOT 。

此方案通过 L1 和 L2 的组合来达到加速应用启动的目的 , 在支持一定流量脉冲能力下 , 可以最大50ms内启动任意应用 , 平均在10ms内完成 。

方案二:应用热复制启动加速方案

L1 采用通过 fork 种子进程达到快速启动的效果 , 操作系统团队专门为此开发了 fork2 技术 , 与 Linux Native fork 的关键区别在于可以指定 PID 来 fork 一个进程 。

L2 的单个 SNAPSHOT 可以创建多个进程 , 一对多关系 。

两种自研方案的对比