查看原文
其他

关于无服务器计算的伯克利观点

常华Andy Andy730 2024-03-16

Source: Cloud Programming Simplified: A Berkeley View on Serverless Computing

http://www2.eecs.berkeley.edu/Pubs/TechRpts/2019/EECS-2019-3.html

By Electrical Engineering and Computer Sciences, University of California at Berkeley




无服务器计算简介


2009年,为了帮助解释云计算的兴起,"伯克利云计算观点"确定了六个潜在的趋势:


1.无限计算资源按需出现。

2. 消除云用户的前期承诺。

3.能够根据需要短期支付计算资源的使用费用。

4. 由于许多非常大的数据中心,规模经济显著降低了成本。

5. 通过资源虚拟化简化操作并提高利用率。

6. 通过多路复用来自不同组织的工作负载提高硬件利用率。


在过去的十年中,这些优势已经在很大程度上实现,但云用户继续承担复杂操作的负担,许多工作负载仍然没有从高效的多路复用中受益。这些不足主要对应于未能实现最后两个潜在优势。云计算减轻了用户的物理基础架构管理负担,但给他们留下了大量需要管理的虚拟资源。多路复用适用于批处理式工作负载,如MapReduce或高性能计算,它们可以充分利用它们分配的实例。它不太适用于有状态服务,例如将企业软件(如数据库管理系统)移植到云中时。


在 2009 年,云中的虚拟化有两种相互竞争的方法。正如论文所解释的那样:


Amazon EC2 处于架构的一端。EC2 实例看起来很像物理硬件,用户可以从内核向上控制几乎整个软件堆栈。...在架构的另一个极端是特定于应用域的平台,例如Google App Engine...在无状态计算层和有状态存储层之间强制实施清晰分离的应用程序结构。应用引擎令人印象深刻的自动扩展和高可用性机制...依靠这些约束。


市场最终接受了亚马逊的底层虚拟机云计算方法,因此谷歌,微软和其他云公司提供了类似的界面。我们认为,底层虚拟机成功的主要原因是,在云计算的早期,用户希望在云中重新创建与本地计算机上相同的计算环境,以简化将其工作负载移植到云的过程。这种实际需求,明智地,优先于专门为云编写新程序,特别是因为目前还不清楚云会有多成功。


表 1:为云用户设置环境时要解决的八个问题

1. 可用性冗余,以便单台计算机故障不会导致服务中断。

2. 冗余副本的地理分布,以在发生灾难时保留服务。

3. 负载均衡和请求路由,以有效利用资源。

4. 自动缩放以响应负载变化,以纵向扩展或缩减系统。

5.监控以确保服务仍然正常运行。

6. 日志记录以记录调试或性能调整所需的消息。

7. 系统升级,包括安全补丁。

8. 在新实例可用时迁移到这些实例。


这种选择的缺点是开发人员必须自己管理虚拟机,基本上是通过成为系统管理员或与他们一起设置环境。表 1 列出了在云中运行环境时必须管理的问题。一长串的底层虚拟机管理职责激励着拥有更简单应用程序的客户为新应用程序寻求更简单的云路径。例如,假设应用程序想要将图像从手机应用程序发送到云,云应创建缩略图,然后将其放置在 Web 上。完成这些任务的代码可能是几十行JavaScript,与使用适当的环境来运行代码的服务器相比,这将是一个微不足道的开发量。


认识到这些需求,亚马逊在2015年推出了一个名为AWS Lambda服务的新选项。Lambda提供了云功能,并引起了人们对无服务器计算的广泛关注。尽管无服务器计算可以说是一个矛盾体 —— 您仍在使用服务器进行计算 —— 但该名称可能卡住了,因为它表明云用户只需编写代码并将所有服务器配置和管理任务留给云提供商。虽然云功能 —— 打包为FaaS(Function as a Service)产品 —— 代表了无服务器计算的核心,但云平台还提供专门的无服务器框架,以满足BaaS(Backend as a Service)产品的特定应用程序需求。简而言之,无服务器计算 = FaaS + BaaS。在我们的定义中,要将服务视为无服务器,它必须自动缩放,无需显式预配,并根据使用情况计费。在本文的其余部分,我们将重点介绍云功能的出现、发展和未来。云功能是当今无服务器计算中的通用元素,并引领了云的简化和通用编程模型。



总结和预测


通过提供简化的编程环境,无服务器计算使云更易于使用,从而吸引了更多能够并且将要使用它的人。无服务器计算包括FaaS和BaaS产品,标志着云编程的重要成熟。它消除了当今服务器计算强加给应用程序开发人员的手动资源管理和优化需求,这种成熟类似于四十多年前从汇编语言到高级语言的转变。


我们预测无服务器使用率将飙升。我们还预计,混合云本地应用程序将随着时间的推移而减少,尽管由于法规限制和数据治理规则,某些部署可能会持续存在。


虽然已经取得了成功,但我们发现了一些挑战,如果克服这些挑战,将使无服务器在更广泛的应用程序中流行起来。第一步是无服务器临时存储,它必须以合理的成本提供低延迟和高 IOPS,但不需要提供经济的长期存储。第二类应用程序将受益于无服务器持久存储,这确实需要长期存储。新的非易失性存储器技术可能有助于此类存储系统。其他应用程序将受益于低延迟信令服务以及对流行通信基元的支持。


未来无服务器计算面临的两个挑战是提高安全性和适应可能来自特殊用途处理器的性价比提升。在这两种情况下,无服务器计算都具有可能有助于解决这些挑战的功能。物理共存是侧信道攻击(side-channel attacks) 的要求,但在无服务器计算中更难确认,并且可以轻松采取措施随机化云功能处置。使用JavaScript,Python或TensorFlow等高级语言对云函数进行编程,提高了编程抽象的级别,并使创新变得更加容易,以便底层硬件可以提供更高的性价比。


伯克利云计算观点的论文预测,云计算在2009年面临的挑战将得到解决,它将蓬勃发展,它已经做到了。云业务每年增长50%,并且对云提供商来说是高利润的。


在本文中,我们对未来十年的无服务器计算进行了以下预测:


  • 我们期望创建新的 BaaS 存储服务,以扩展在无服务器计算上运行良好的应用程序类型。这种存储将与本地块存储的性能相匹配,并具有临时和持久的变体。我们将看到用于无服务器计算的计算机硬件的异构性比今天为其提供支持的传统x86微处理器要多得多。


  • 我们希望无服务器计算比服务器计算更容易安全地编程,这得益于高水平的编程抽象和云功能的细粒度隔离。


  • 我们没有看到任何根本原因,为什么无服务器计算的成本应该高于服务器计算的成本,因此我们预测计费模型将不断发展,因此几乎任何应用程序,以几乎任何规模运行,将不会花费更多,也许更少。


  • 服务器计算的未来将是促进BaaS。事实证明,难以在无服务器计算之上编写的应用程序,如 OLTP 数据库或通信原语(如队列),可能会作为所有云提供商提供的更丰富服务的一部分提供。


  • 虽然有服务器的云计算不会消失,但随着无服务器计算克服其当前的局限性,这部分云的相对重要性将下降。无服务器计算将成为云时代的默认计算范式,在很大程度上取代服务器计算,从而为客户端-服务器时代画上句号。

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存