Serverless技术演进
Serverless在云计算的下一个十年将起到举足轻重的作用,从业务使用视角看,当前的Serverless技术仍然有一些不足,完全替换传统的技术架构尚需时日。
传统中间件的Serverless化
当前谈到的Serverless技术,狭义上主要是函数,广义上还包含了数据库、存储、云托管、API网关等。未来Serverless发展的一个重要趋势就是越来越多的中间件Serverless化,比
较典型的案例就是微服务的Serverless化
- 传统采用SpringMVC、SpringCloud或微服务框架开发的业务,如果全部使用函数重写,成本会非常高。
- 如果有一个Serverless微服务,可以将已有的业务代码直接Serverless化,业务只需要进行少量的适配性修改,就能享受Serverless带来的免运维、弹性伸缩等性能,就会有更强的迁移动力。
Serverless模型化
将Serverless模型化、规范化之后,在部署应用时,可以通过Serverless部署描述文件,自动开通依赖的服务,实现一键式自动化部署
与遗留系统的对接
打通网络是第一步,Service SDK集成方案成本较高,未来会演进到如下两种形态。
- 通过事件进行数据交互和新老系统对接,一种方案是Serverless提供CloudEvents,制定规范,遗留系统依赖的相关服务支持Event接入,通过Event实现系统之间的互通,例如华为元戎提供的Event Bridge。
- 另一种参考方案是提供Serverless总线或桥接器,屏蔽异构云、异构系统的差异,通过Serverless总线实现Serverless服务与传统系统的对接,降低开发成本,例如华为元戎提供的Service Bridge。
关键技术瓶颈的突破
函数的冷启动时间是影响函数应用范围的主要障碍,如果函数常驻内存,会导致资源浪费,增加成本。如果每次调用都进行冷启动,耗时约在200ms左右
当前也有一些优化措施:
- 函数执行完可以驻留一段时间,如果驻留期间仍然没有调用,则自动释放
- 用户可以根据流量特点,事先预留一些函数实例,当请求接入时,优先从预留的实例池中调用,避免冷启动
当前的优化方向:
- 华为元戎的资源池化、代码缓存、调用链预测机制等
- 底层容器和操作系统的优化也是一个重要方向
未来如果能够彻底解决函数的冷启动问题,将冷启动时间压缩到10毫秒级,函数的适用范围将会更广泛