编者按:本期我们用导读的方式介绍加州大学伯克利分校一个研究团队发布的《Cloud Programming Simplified: A Berkeley View on Serverless Computing》。
无服务器云计算几乎代替程序员更容易使用云平台所需的所有系统管理操作。 它提供了一个接口,极大地简化了云编程,并代表了一种类似从汇编语言到高级编程语言的过渡和演变。 本文简要介绍了云计算的历史,包括对 2009 年 Berkeley View of Cloud Computing 论文的预测的说明,解释了无服务器计算的动机,描述了突破当前无服务器限制的应用程序,然后列出了行业发展障碍并研究对应的机会,无服务器计算充分发挥其潜力所需的条件。 正如 2009 年的论文确定了云计算面临的挑战并预测它们将得到解决,并且云计算的应用将加速一样,我们预测这些问题是可以解决的,并且无服务器计算将成长为云计算未来的主导。
无服务器计算简介
无服务器计算的起源
当今无服务器计算平台的局限
无服务器计算应该怎样发展
谬误和陷阱
概述和预测
文章第 1 部分引用 2009 年发表的《云计算的伯克利观点》(The Berkeley View on Cloud Computing)中提到的 6 个对云计算特性的总结,这些特性大部分都已实现,但开发者依然背负繁重的系统运维工作量,导致行业对 5、6 两点的实现进展差强人意。作者们提出,2009 年随后的几年内,云计算形态只不过是把之前本地运维的服务器概念搬运到了云端(远端),开发者们的系统运维压力并没有得到很好的缓解甚至工作负担因为这个层级的抽象而更重了。最后列出传统云中,开发者们不得不负担的 8 类繁重的系统运维工作。
文章第 2 部分以 AWS 的传统云节点计算和无服务器计算为例进行对比,介绍无服务器计算的起源,分别对「软件开发」和「系统运维」两个岗位任务分析了两者的特点。
传统云和无服务器云之于开发者、系统运维的工作内容对比作者们把传统云和无服务器云类比从汇编语言到高级编程语言的过渡,前者的开发者需要关注过多底层细节,而后者则可以更专注更高层级的业务逻辑。同时,作者们进一步提出传统云和无服务器云的三大关键区别:计算和存储的分离执行代码而无需关心资源分配按实际「使用量」而不是「按资源分配」计费结算第 2 部分分别从底层到高层,围绕硬件、基础云平台、无服务器、应用的顺序列出无服务器云的核心功能模块;同时也对比了 Kubernetes 模式的计算与理想的无服务器之间的异同,提出 Kubernetes 只是简化了服务器部署,算是一种从传统云到无服务器云的过渡服务形态。最后,对无服务器的应用场景进行分析,引用了 2018 年的一份行业调查报告得出的结论:2018 年无服务器的应用场景流行度
第 3 部分总结了目前(2019 年)无服务器平台产品的局限性。
第 4 部分是总结当前的局限性,提出伯克利大学研究团队们对行业产品未来发展方向的 5 个维度的发展指标,也就是,无服务器计算应该发展成什么样:抽象层、系统层、网络层、安全层、架构层。
第 5 部分讨论无服务器计算发展的 3 大谬误和 3 个陷阱。例如:「无服务器计算的运营费用不可预测」陷阱,可通过管理好一套无服务器应用的计费历史来粗略估算未来的运营预算/成本。
第 6 部分是总结以及对无服务器计算的未来提出展望。伯克利的研究者们大体上对无服务器计算的未来十分乐观,也指出不少行业的共同挑战。
最后列出他们对无服务器计算未来 10 年(2019 – 2029)的预测:
我们期望创建新的 BaaS 存储服务,以扩展在无服务器计算上运行良好的应用类型。这种存储将与本地块存储的性能相匹配,并具有临时和持久的不同选择。我们将看到用于无服务器计算的计算机硬件的硬件架构比今天为其提供动力的传统 x86 微处理器要多得多。
我们期望无服务器计算比有服务器计算更易于安全编程,受益于高级编程抽象和云功能的细粒度隔离。
我们认为无服务器计算的成本应该高于有服务器计算的成本是没有根据的,因此我们预测计费模型将不断发展,以使几乎任何无服务器应用(以几乎任何规模运行)的成本都不会增加,甚至可能会少得多。
服务器计算的未来将是促进 BaaS – Backend as a Service(应用后端云服务)。被证明难以在无服务器计算之上编写的应用程序(例如 OLTP 数据库或队列等通信基本组件)可能会作为所有云提供商的更丰富服务集的一部分提供。
尽管有服务器的云计算不会消失,但随着无服务器计算克服其当前的限制,这部分云的相对重要性将会下降。
无服务器计算将成为云时代的默认计算范式,在很大程度上取代服务器计算,从而结束「客户端-服务器」时代。