本文是 serverless 入门与实践 的第14篇
学习<华为 Serverless 核心技术与实践>, 计划: 1篇前言 + 10篇/章 + 1篇总结
高性能函数运行时: 函数冷启动
函数的冷启动有两种场景
- 当函数首次收到调用请求时
- 函数长时间没有被调用而导致Serverless平台将已存在的函数实例删除(即收缩到0),再次收到函数调用请求
使函数的冷启动时延最低可达10~20ms
函数冷启动流程通常包括:
- 资源调度
- 容器启动
- 函数代码下载
- 函数启动
- 函数初始化
- 函数处理调用请求
资源池化 - 空间换时间
资源池化是指系统维护一个容器池,提前启动一定数量的容器并将其放到容器池中,系统部署函数实例时直接从容器池中申请容器,这样省去资源调度和容器启动的时间,大大缩短函数冷启动时延
代码缓存
代码缓存服务(Code Cache),该系统始终从代码缓存服务中下载函数代码包,若在代码缓存服务中未命中,则由代码缓存服务从云存储服务中下载函数代码包
调用链预测
为了使函数冷启动时延表现得更好,对用户使用Serverless平台开发应用时有如下建议
- 减小代码包体积
- 减小代码包体积: 选择 nodejs python 等轻量语言