IT 论文精读 · PAPER 63

A Berkeley View on Serverless Computing

Jonas, Schleier-Smith 等 · UC Berkeley · 2019(配同年反方 Hellerstein 等 · CIDR 2019 对读)

EN →

这篇论文干了什么?

你打开一个网站,背后总得有台机器一直开着等你。Serverless(无服务器)想省掉这件事:你只交一段代码,云平台在有请求时才把它跑起来,跑完就撤,没人访问时一分钱不收——「无服务器」不是真没有服务器,而是服务器不再归你管。2019 年,伯克利一群人写下这篇判断书:一边说「这就是云的未来」,一边老实列出它今天还干不了哪些事。

打个比方

旧办法像包月租厂房:你得提前猜最忙那天要多大地方——租小了挤爆,租大了空着也照付,而它一年里绝大多数时间都空着。Serverless 像按趟叫车:来一单派一辆,没单时路上一辆都没有,你也不必付停车费。

新在哪

旧世界里,工程师得先回答一堆和业务毫无关系的问题:租几台机器?什么型号?多少内存?半夜没人用要不要关?突然上热搜怎么加机器?——猜错任何一个,要么白烧钱,要么当场宕机。Serverless 把这些问题整个拿走:你说「这段代码该跑了」,剩下的归云。 论文自己给的类比是:像当年从汇编语言换到高级语言,程序员不必再亲手安排每一个寄存器。

它是怎么做到的

秘密在于把「运行」切碎成一个个短命的小工:来一个请求就现开一个,干完立刻消失。正因为小工随生随灭,它们身上不能存东西(下次来的是全新的一个,什么都不记得),也不能互相打电话(你不知道对方在哪台机器上、这会儿还在不在)。于是所有要保存、要交换的东西,都得寄存进一个公共储物柜(云上的存储服务),谁要谁自己去取。

这既是它省钱的原因,也是它所有麻烦的根源:几个小工要来回倒腾大量数据时,本来当面一句话的事,现在得写进柜子、再从柜子取出来;人一多,柜子前排起长队。这篇论文的主体,就是把这类「今天干不了的事」列成清单:缺一个又快又便宜的临时储物柜、缺让小工互相打招呼的办法、也缺稳定可预期的速度。

带来了什么

同年一篇反方文章把话说得更狠:这等于把数据运到代码那儿去,而分布式系统四十年的经验恰恰相反——要把代码送到数据身边,因为数据重、代码轻;所以数据量大、要反复交换中间结果的活,搬上去就是又慢又贵。两篇合起来成了这个领域的公共词汇表,清单上的坑也在被一条条填。诚实说一句:六年过去,「serverless 将取代普通服务器、成为云的默认形态」这个预言并没有兑现——它成了工具箱里很好用的一把,而不是唯一那把。

一句话记住

Serverless = 你只交代码,云替你开关机器、闲着不收钱;代价是函数短命、彼此不能直连,一切共享都得绕道存储。伯克利这篇把这笔交换讲清楚了,并把「它还差什么」列成了一张后来所有人都在用的清单。

想看它给 serverless 下的正式定义、四大障碍与反方的完整论证? → 切到精读版