联手系统软件专业委员会:“服务器无感知计算”术语发布 | CCF术语快线
本期发布术语热词:服务器无感知计算(Serverless Computing)。
\ | / ★ 开篇导语: 服务器无感知计算是云计算的新型范式,是云计算的重要发展方向之一。传统服务器感知计算以资源为中心,开发者需基于应用需求对云资源进行管理。新型服务器无感知计算以函数为中心,开发者只需专注于编写云函数来实现应用逻辑,云资源管理完全由云计算系统软件负责,对开发者透明。服务器无感知计算简化了开发者编写和部署云应用的流程,能根据应用需求自动扩容和缩容,并提供细粒度的计费模式,从而节约云应用的运行成本。 服务器无感知计算 (Serverless Computing) 作者:金鑫(北京大学)、魏星达(上海交通大学)、 李振华(清华大学)、吴松(华中科技大学)、 曹春(南京大学) InfoBox: 中文名:服务器无感知计算 外文名:Serverless Computing 学科:云计算 实质:服务器无感知计算让开发者无需考虑服务器等云资源管理,只需要专注于编写云函数来实现应用逻辑。服务器无感知计算平台负责服务器配置和维护等资源管理任务,在应用对服务器无感知的情况下实现云资源的高弹性和高可用性,从而简化云应用的开发、部署和运行。 背景与动机: 云计算是重要的数字化和信息化基础设施,通过数据中心汇聚海量计算资源为各行各业的应用提供支撑。传统云计算以虚拟化的方式提供计算资源,聚焦于“云资源”的底层抽象,但应用仍然能感知到服务器的存在。开发者通过租用云计算平台提供的虚拟计算资源来开发和部署应用,无需关心物理的硬件资源。然而,开发者仍需要管理和配置虚拟资源,考虑为应用租用的虚拟资源数量以应对动态变化的流量,处理负载均衡、故障容忍等问题,面临管理负担大、空闲成本高、资源利用率低和系统扩容难等挑战。 新型服务器无感知计算(Serverless Computing)提供基于“云函数”的高层次抽象,开发者只需要向平台提供函数代码及调用方式。当函数被调用时,平台会自动分配和管理执行函数所需的资源,不需要开发者介入,极大降低了开发者的管理负担。相比于传统的服务器感知计算,服务器无感知计算提供基于函数使用次数和执行时长的细粒度按需计费,降低了应用的部署和运行成本。服务器无感知计算平台提供自动扩缩容策略,通过实时监控应用流量和动态增减应用函数实例,为应用分配处理其流量所需的计算资源,提高资源利用率,解决系统扩缩容难的问题。基于这些优点,服务器无感知计算被工业界和学术界认为是云计算的重要发展方向之一。国内外主流云提供商均推出了相应的平台和产品,比如阿里云函数计算、华为云函数工作流、腾讯云云函数、亚马逊AWS Lambda、微软Azure Functions等。 研究概况: 近年来,服务器无感知计算正成为一个快速发展的研究领域。其对传统应用进行函数级解耦,从而带来高资源利用率和高弹性。由于简单使用云数据库或云存储的状态管理方法很难在实现强一致性和容错的同时获得高性能和高可扩展性,因此需要研究如何基于无状态函数构建有状态应用中的应用状态管理功能。Pocket[1]通过精细化的资源分配策略为不同应用选择合适的状态存储节点和存储介质,兼顾应用性能和运行成本。Jiffy[2]在此基础上进一步提出函数粒度的资源管理机制,实现了有限内存资源的复用。Cloudburst[3]在计算节点上构建远端存储节点的缓存,并实现了不同节点函数访问状态时的分布式会话一致性。Faasm[4]实现了本地和全局两级状态架构,并将本地层级状态映射到同节点函数中实现应用状态在函数间的快速共享。由于共享日志是构建存储系统时常用的兼顾扩展性、强一致性和容错的方法,Boki[5]向函数提供了共享日志抽象用于状态管理,并通过元日志技术实现了共享日志的高性能读写。 服务器无感知计算利用以轻量级虚拟机和容器为代表的虚拟化技术进行资源分配与函数间性能隔离,同时实现函数的快速启动并降低系统开销。以Firecracker[6]为代表的轻量级虚拟机技术在保证租户级隔离的基础上,通过对虚拟机监视器及客户机内核进行裁剪来降低启动延迟和内存开销。gVisor[7]通过在用户态劫持和监控负载运行时指令,加强容器的隔离性。Catalyzer[8]在gVisor的基础上,通过按需加载及沙箱复制等技术实现函数的快速启动。SAND[9]和Faasm[4]分别使用进程级隔离和软件故障隔离(software fault isolation)代替容器。前者在单个应用的函数间未考虑性能隔离,在不同应用函数间采用Linux控制组(cgroups)实现性能隔离;后者通过cgroups和网络流量控制实现性能隔离。SOCK[10]指出容器中实现性能隔离的cgroups子系统存在较大初始化开销,通过构建cgroups池实现cgroups复用从而降低开销。 未来展望: 服务器无感知计算是近年来学术界和产业界的热点,其未来发展主要包括以下几个方面。 1)更多的硬件支持:现有服务器无感知计算平台以CPU支持为主,未来服务器无感知计算平台将支持更多类型的硬件,包括GPU、DPU、FPGA等,从而更好地适应不同类型应用在性能、功耗、成本等方面的需求。 2)更多的编程语言支持:目前,服务器无感知计算主要支持Python、Go、Java、C#等语言。随着服务器无感知计算技术的发展,未来需要支持更多的编程语言,为开发者提供更多的选择,使服务器无感知计算更好地应用于更多的应用场景。 3)更便捷的开发环境:未来服务器无感知计算平台将会提供更加便捷的开发工具和环境,让开发者能够更加容易地创建、测试、部署和维护应用程序,提高开发效率,降低开发成本。