原文链接:Cloud Programming Simplified: A Berkeley View on Serverless Computing
不愧是世界一流学府,对实时技术的把握精准且及时。2009年,UCB发表了关于云计算的文章,并且预测了挑战与需要解决的问题,2019年,他们发表此篇文章,对无服务进行了一番探讨。文章总体分为了8个部分,我们看看核心的4个部分说了什么。
对无服务计算的介绍
在2009年,UCB的学者就曾经对云计算提出过一些观点,主要在以下六方面有很大的优势:
- 无限的计算资源可以按需分配
- 消除云用户的前期承诺(其实和第一点类似,都是根据需求提供计算服务,不用再提前算好可能需要的计算力)
- 根据实际需要支付短期使用计算资源的费用
- 规模经济显著降低了成本,因为数据中心非常大
- 通过资源虚拟化简化操作成本,提升使用率
- 通过多路复用技术,分担不同组织的负载,提升硬件利用率
过去十年间,上述优势基本都被实现了,但是最后两点实现的并不好。因此,云用户依然忍受着操作复杂的缺点,同时也没有从高效的多路复用中受益。
在2009年的时候,有两种不同的途径实现云端虚拟化:
- Amazon的EC2:用户几乎可以操控整个软件栈,包括内核。
- Google App Engine:在无状态计算层和有状态存储层之间强制使用分离的应用程序结构,App Engine 的自动扩展和高可用性机制。
市场选择了Amazon的EC2。文章作者猜测原因是部署方便,因为云端和本地的环境可以是一样的,不用重新为其需求重新写程序。但是这种做法也有缺陷,比如对虚拟机或者系统的维护,要知道这种做法对于小微企业是很困难的,他们没有足够的人力资源做到面面俱到,因此用户有了新需求:你设置一切,我只写代码。
于是在2015年,AWS开发了新的服务——AWS Lambda Service。现在就是我们常说的Faas,也就是无服务的核心。无服务计算的最初定义是不用服务器的计算,但是这压根是不可能的,没有服务器就无从计算,那这个名字是哪来的呢?主要还是为了解决“你设置一切,我只写代码”的需求,开发者不再为服务器怎么工作而担心,因此“无服务”这个名字就沿用了下来。
但是呢,有些特殊需求的程序要有后端的存在(抱歉,水平不够,不知道这种程序指哪些),于是AWS又提供了无服务框架“Ba