《Serverless从入门到进阶:架构、原理与实践(2).docx》由会员分享,可在线阅读,更多相关《Serverless从入门到进阶:架构、原理与实践(2).docx(5页珍藏版)》请在第一文库网上搜索。
1、当前FaaS平台主要运行在CPU的硬件上,而在特定领域如机器学习,GPIJ计算是十分必要的,它为许多算法和工作流提供了非常重要的加速作用。因此,RISE1ab团队在调研如何将GPU和Server1ess计算以更好的方式结合在一起。由于成本或价格等原因,当前商业化的FaaS平台并没有提供GPU函数,这是因为GPU服务器的价格昂贵,需要针对机器利用率做进一步优化后才能真正实现商业化应用。内核即服务(Kerne1asaService,KaaS)的概念,类似FaaS平台支持Node.js和PythOn等不同类型的运行时,KaaS中的运行时支持的是面向GPU的编程语言,如CUDA、OpenC10但目前研
2、究的主要挑战在于,是否可以完全通过GPU语言编写KaaS服务,从而摆脱对CPU代码的依赖。图15-3可以进一步解释这个理念,Server1essGPU有两种实现方式:第一种是在函数平台同时提供CPU和GPU的支持,即每个函数的底层架构既有CPU、内存卡,也有GPU加速器。这种架构也是当前较为通用的支持方式。图15-3Server1essGPU支持方案1第二种实现方式在技术层面有更高的挑战。有挑战的地方在于,是否可以像图15-4一样,提供一个只有GPU的纯GPU底层来运行函数呢?这样可以彻底区分CPU/内存型函数和GPU型函数,由于当前从通信模式上还比较难将CPU和GPU从硬件上彻底分开,这将是
3、研究中比较大的一个挑战。图15-4Server1essGPU支持方案215.2.2SerVer1eSS文件系统由于FaaS平台在状态性存储和共享方面还存在着较多限制,因此Server1ess文件系统状态性方面的优化也是一个非常有价值的研究方向。图15-5可以解释当前Server1ess计算的状态共享/存储模式。Server1ess架构的状态性主要有两个层面。在计算层,主要通过FaaS提供服务,特点是实例之间相互隔离,并且只有短暂的状态性。短暂的状态性指的是FaaS服务运行完毕后,销毁实例,状态也随之销毁。如果希望永久存储,则需要将云函数运行时的状态持续写入存储层即BaaS服务中(例如对象存储、
4、KT存储等),实现状态信息的长期存储和共享。图15-5Server1ess状态存储但这样的模式面临着两个重要问题:一方面是延迟问题,也是许多BaaS服务目前存在的问题;另一方面,对象存储或者KT存储是通过AP1提供服务的,并不能感知底层的存储情况,因此在开发应用或迁移时难以信任这些存储资源(改变了以往的开发使用方式)。那么,用户的诉求很简单,是否可以在云端提供与本地磁盘一样的存储能力呢?这就是SerVerIeSS云函数文件系统(C1oudFunctionFi1eSystem,CFFS)要提供的能力。该文件系统有以下几个特点。- 基于标准的POSIXAPI文件系统,提供持久化的存储能力。- CF
5、FS提供了透明传输机制,也就是在函数启动时,CFFS也随之启动一个传输管道;而当函数销毁时,这个传输会被提交。这样做可以获取函数执行过程中的许多状态信息。- 虽然通常情况下传输会对性能有影响,但如果能够积极利用本地状态和缓存,这种方式相比传统的文件存储系统,对性能有更好的提升。CFFS在云服务商的FaaS环境中运行,在前端通过标准的PoSIXAP1进行调用,后端的存储系统则利用了缓存,专为云函数FaaS设计并提供服务。除了CFFS之外,研究课题CIoUdbUrSI也是致力于解决SerVer1eSS中状态问题的项目。相比而言,CIoUdbUrSt侧重于将SerVerIeSS应用在状态敏感、延时敏
6、感的场景中,例如社交网络、游戏、机器学习预测等。C1OUdbUrSt主要基于PythOn环境,能够低延迟地获取共享可变状态。和CFFS类似,C1oUdbUrSt也在函数执行器中利用数据缓存提升性能。但和CFFS不同的是,C1oudburst可以保证因果一致性,以达到更好的性能。实验结果也表明了,C1OUdbUrSt有很强的性能优势:在相同条件下,用了Dynan1ODB服务的1aInbda函数约有239ms的延迟,而用C1oudburst的延迟低于10ms。15.2.3Server1ess数据中心另一个研究方向是Server1ess数据中心。当我们思考服务器的组成时,一般会想到CPU、内存,有时
7、候还有GPU和硬盘这些基本硬件。而千千万万这些硬件组合在一起进行网络连接,就构成了数据中心。个人电脑、服务器集群等都是通过这样的方式构建的,如图15-6所示。图15-6服务器的组成但是从应用层的角度看,这样的组合方式并不是唯一的。所以有一种新的概念叫作分布式集群,是将同类型的硬件元素(如CPU、内存)组合在一起,当用到对应的资源时,例如需要GPU加速,才会分配。同理,这种组合方式可以用在硬盘或者一些自定义的加速器上面。这个概念类似于将数据中心看作一台计算机,提升资源的利用率,如图15-7所示。硬盘定制化加速器togJjScFe?由屈屈屈曲由fSC?f3E27*XS7*99JfSES9fSEZ?
8、图15-7SerVerIeSS数据中心的组成针对计算机数据中心Warehouse-sca1ecomputer的硬件开发已经开始了,因此Server1ess也应该考虑怎样适配和使用这种集群模式,而且这将对当前针对单机的应用开发模式做出改变。1图片来自Server1essdaysChina中Johann的演讲。15.3Server1ess未来的发展趋势早在2009年,加州大学伯克利分校就对云计算的未来做过一次预测。回看当时的分析,有些预测已经实现了,例如无限大的资源池、无须为前期使用付费等。同时,有一些预测并不那么准确,因为当时的研究者并没有意识到云计算将进入第二阶段,即SerVer1eSS阶段。
9、因此,在十年后的2019年,加州大学伯克利分校重新发表了SerVerIeSS计算未来方向的预测。1 .特定应用场景及通用场景将会成为使用Server1ess计算的主流如图15-8所示,在特定应用场景下,用户可以在弹性伸缩平台中实现特定的操作,例如写数据库、实时数据队列或者机器学习等。同时,用户的业务代码需要遵循平台限制,例如运行环境、运行时长、没有GPU加速等,当然这些限制也会随着技术成熟而逐步放宽,更好地支产场景。应用级别Server1ess通用Server1ess应用应用软件层旧志分析事件疝IImmII.I图15-8Server1ess的未来:更通用场景的支持2 .更通用的Server1e
10、ss架构在这种场景下,用户的FaaS函数会被其他BaaS服务拓展,例如StarbUrst、缓存等,并且有对象存储或文件存储用于长期存储状态信息。在此基础上,用户可以自定义一些软件服务,例如提供SQ1的能力,并在上面运行相应的应用,从而实现流数据处理、机器学习等场景。通用的SerVer1eSS能够支持任何应用场景,从底层架构来看,所有能运行在服务器上的场景都可以被视为通用Server1ess场景支持。3 .在成本上,未来的Server1ess架构会比服务器更有竞争力当前SerVerIeSS被诟病的一个问题是很多情况下依然比服务器贵。即使是现在,虽然SerVerIeSS架构的价格比服务器更贵一些,
11、但用户使用SerVerIeSS架构,可以获得高可靠、弹性扩缩容等附加的平台能力。此外,SerVerIeSS的计费模式更加精确,资源利用率也将逐步提升,确保做到真正的按需使用和付费。因此相比于预留资源,Server1ess架构在价格上会更有竞争力,更多人也会因此选择Server1ess架构。4 .云服务商会针对机器学习等场景做优化云服务商会提供一些类似工作流调度、环境配置等能力来实现对场景的支持(例如预置内存)。通过这些上下游能力,也可以进一步提升通用场景的平台性能。5 .各类硬件方面的发展和支持当前云计算已经强依赖x86架构,但SerVer1eSS可以引入新的架构,让用户或云服务商自行选择合适
12、的硬件处理任务,从而实现更高的利用率和更强的性能。6 .Server1essWeb框架目前流行的Web框架还是面向传统的服务器部署方式,对Server1ess架构还不够友好,未来面向Server1ess的服务框架也会越来越多,而且会针对不同的服务压力对APT进行函数粒度的拆分,针对ServerIeSS架构会做出更多优化,这样基于事件触发的函数也不再需要将API网关触发事件JSON对象转化为HTTP请求的适配层了。15.4本章小结当前,许多学界的研究课题已经和商业产品紧密结合并逐步落地,例如针对用户希望将自己熟悉的运维工具和函数平台集成的需求,AWS1aInbda开放了EXtenSiOnAP1能
13、力,提供了易于与用户自定义的监测、安全、监管等工具、服务集成的产品形态,并对1ambda的运行时生命周期做了进一步的规范定义。EXtenSiOn与生命周期深入集成,使得SerVerIeSS架构在可观测性、准确性、实时性等方面得到了更好的提升。本章介绍了当前学术界对SerVerIeSS领域的研究趋势和方向,包括效率的提升(性能、可用性)、具体应用的抽象(如机器学习、数据处理等)和通用层面的抽象,并且针对一些亮点课题和成果进行了简要说明。由于SerVer1eSS被誉为“云计算的下一个十年”,因此本章解读了加州大学伯克利分校对SerVer1eSS计算在未来十年发展趋势的预测,包括特定场景的支持、更通用能力的提供、降低成本和硬件发展等。Server1ess可能会改变我们对传统计算机的看法,这项技术进一步摆脱了本机硬件的限制,用户可以直接从云端获取无限的资源,随取随用。作为下一代的云计算平台,SerVerIeSS的前景十分广阔,值得期待。