2022云栖精选—Serverless Computing技术架构

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
函数计算FC,每月15万CU 3个月
简介: 陈全上海交通大学教授

lQLPJxbcF2cqNBvMiM0FeLCMz4ifcSGHeANpqgFLAEAA_1400_136.png

一、Serverless Computing技术特点

幻灯片4.PNG

Serverless Computing 是介于基础云计算平台和上层用户应用之间的新层次,通过函数计算提供通用计算能力。这种新型计算模式具有以下几个典型特点:

第一,无需进行底层运维管理,所有运维交由云提供商进行上层业务人员仅需关注业务本身逻辑。

第二,采用 Pay-as-you-go 计费模式,无需长时间租用服务器。

第三,按需资源扩展,需要多少资源使用多少资源。

第四,事件驱动可以提供更加灵活函数和容器调度。


幻灯片5.PNG

想要实现以上目标,将会面临以下挑战。

第一,底层运维时,云提供商需要考虑如何能够实现多个租户不同函数之间高效隔离,保证其安全性。

第二,因为事件驱动内在调用方式,需要保在新型函数调用方式下实现快速响应。

第三,如何实现高效任务调度,提高云计算平台资源利用率。

针对以上挑战,我们需要解决以下几个问题:

第一,如何将底层各式各样硬件进行高效抽象基于抽象即可设计高效隔离策略。

第二,如何权衡性能和资源问题,分配给函数多少资源能够恰好满足性能需求

第三,需要在整个云层面、集群层面进行高效负载均衡,提高其资源利用率。


二、Serverless Computing的分层架构

幻灯片7.PNG

在分层结构上,我们调研了大量学术界和工业界采用 Serverless Computing 平台,发现他们大多将平台分为三个层面,从下至上分别为虚拟化层、封装层和系统层。系统层又可以进一步分为协调层和编排层。

幻灯片8.PNG

上层系统层主要负责协调和调度工作。其中协调指提供很多后台软件支持,比如数据库支持、内存数据库支持通过后台软件,函数计算才能正确地运行。调度功能主要解决单个函数资源扩展问题,函数调用多次,需要为其分配多少副本多少容器才能满足性能需求,是调度层需要解决事情,另外,海量容器同时存在一个节点上如何进行负载均衡也是调度层需要解决的问题

容器封装层将用户函数调用封装在低开销容器中运行要避免容器本身启动开销导致函数响应时间过长,因此涉及到预热,需要预先为函数启动好容器。

虚拟化层提供了更基础支持,比如函数具体实现容器具体实现以及资源隔离机制计算资源存储资源具体的隔离机制在虚拟化层实现。

幻灯片9.PNG

虚拟化层有多种实现方式,可以基于容器实现资源分配和隔离,也可以基于传统虚拟机实现资源分配和隔离。

幻灯片10.PNG

现有的虚拟化层隔离技术基本可以分为四类,各具优缺点。

第一类:基于虚拟机虚拟化方法。它具有更高安全性,因为虚拟机实现了资源完全隔离。

第二类基于传统 runc容器runc 容器资源开销较小,运行快但是隔离性安全性较差。

第三类:基于安全容器。安全容器将虚拟机技术和传统容器技术做了一定权衡,运行资源开销较小,同时隔离性和启动速度比虚拟机更好。现有发展趋势大多为使用安全容器技术。

第四类:基于 unikernel 。兼容性较差,需要针对特定函数以及特定应用提前编译镜像,且一旦编译好之后则无法修改。

幻灯片11.PNG

封装层需要解决容器冷启动开销问题,我们不希望容器启动开销造成函数运行时间急速增长。最为广泛的解决方法容器预热技术。

幻灯片12.PNG

容器预热技术分为两种。

独立容器预热池:该方法会为每个函数构建独立预热容器池。但缺点在于会占用过多系统资源因为每容器都有自己池,池中都需要预热一批容器为函数服务。

模板容器池:该方案会为所有函数预热同一套模板容器,里面可以运行所有函数。当函数需要容器时,会从模板池中取出容器出,对其进行特异化。特异化是指为其安装函数本身需要各种依赖数据。其优点在于资源占用较少但特异化本身也存在开销,甚至可能比冷启动容器开销更大。

幻灯片13.PNG

系统层主要负责协调和编排工作。


幻灯片14.PNG

目前学术界对系统层进行研究的关键问题包括:

① 复杂拓扑逻辑支持单个函数功能非常有限,需要将多个函数将组合成有无环DAG实现复杂功能。对应 Serverless Computing 平台需要提供DAG图引擎支持复杂拓扑逻辑。

② 集群资源管理器需要实时地监控集群中各个节点上资源使用量,保证可用性和性能稳定。

③ 负载均衡器需要考虑应用中各个服务之间冲突情况数据传输压力以及资源使用量进行全局负载均衡,设计高效调度策略满足资源利用率提升目标。


三、Serverless Computing的未来展望

幻灯片16.PNG

未来,Serverless Computing 向着通用化、高效化和智能化三个方向进行发展。

通用化除了计算,也可以设计 Serverless存储系统,设计更高效的执行架构以用于各种应用场景,不再局限于普通计算加速。

高效化:能够做硬件异构硬件统一抽象,使得 Serverless Computing平台不仅支持 CPU 函数,可以使用 GPU 神经网络加速器等各种异构硬件,做统一抽象和管理研究预热模板和应用画像结合尽量使用最少的资源满足每一个函数都可以获得热容器目标。

智能化指导容器规格恰好合适”,需要知道为每个容器分配多少 CPU 资源内存资源可以刚刚好达到预期目标,保证资源不浪费的同时也保证了延迟。实现Serverless混部 SLA 保障成千上万个容器混合在一个物理节点上,互相之间会存在严重资源竞争。如何在混合部署情况下控制容器之间冲突,也是未来需要探索方向。

关于龙蜥峰会 eBPF & Linux 稳定性专场课件获取方式:


【PPT 课件获取】:关注微信公众号(OpenAnolis),回复“龙蜥课件” 即可获取。有任何疑问请随时咨询龙蜥助手—小龙(微信:openanolis_assis)。


【视频回放】:视频回放可前往龙蜥官网https://openanolis.cn/video 查看。


lQLPJxbcF2cqM2TM-M0CnrCgW_7LDpyh1wNpqgFKAPsA_670_248.png

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
17天前
|
消息中间件 SQL 监控
Serverless 应用的监控与调试问题之BMQ的架构是怎么支持流批一体的
Serverless 应用的监控与调试问题之BMQ的架构是怎么支持流批一体的
|
21天前
|
人工智能 Serverless API
Serverless 架构实现弹幕场景问题之用SAT进行双主键的插入操作如何解决
Serverless 架构实现弹幕场景问题之用SAT进行双主键的插入操作如何解决
27 0
|
21天前
|
分布式计算 Serverless MaxCompute
Serverless 架构问题之Serverless架构助力云计算如何解决
Serverless 架构问题之Serverless架构助力云计算如何解决
26 1
|
21天前
|
数据可视化 NoSQL Serverless
现代化 Web 应用构建问题之Serverless架构的Web站点费用计算如何解决
现代化 Web 应用构建问题之Serverless架构的Web站点费用计算如何解决
32 1
|
16天前
|
弹性计算 运维 Serverless
揭秘ADB Serverless架构:如何实现无服务器计算的神奇魔法?
【8月更文挑战第27天】随着云计算的演进,Serverless架构作为一种新兴计算模式崭露头角。阿里云函数计算(简称ADB)提供了一种无需管理服务器即可运行代码的服务。本文通过案例探讨ADB Serverless模式的实现方式。首先介绍Serverless架构的基础概念,即事件驱动模型,使开发者仅需关注业务逻辑,减轻了基础设施构建与维护的负担。ADB采用分布式、无状态的设计,确保高可用性和弹性伸缩能力。以一个简单的Web应用为例,展示了如何利用ADB快速实现根据用户输入返回问候语的功能,突显出其简化开发流程、提高性能与可扩展性的优势。
29 0
|
17天前
|
存储 监控 Cloud Native
Serverless 应用的监控与调试问题之Flink流批一体在架构层面有什么演进
Serverless 应用的监控与调试问题之Flink流批一体在架构层面有什么演进
|
19天前
|
存储 边缘计算 监控
探索云计算的未来:无服务器架构的兴起与挑战
【8月更文挑战第23天】在这篇文章中,我们将深入探讨无服务器架构——一种现代的云计算执行模型,它允许开发者构建和运行应用程序和服务而无需管理服务器。我们将从基本概念出发,逐步揭示无服务器计算的核心优势、面临的挑战以及未来可能的发展方向。文章旨在为读者提供对无服务器技术全面而深刻的理解,同时激发对云原生技术未来可能性的思考。
|
21天前
|
NoSQL Serverless 数据库连接
Serverless 架构实现弹幕场景问题之initializer方法在执行过程中遇到错误如何解决
Serverless 架构实现弹幕场景问题之initializer方法在执行过程中遇到错误如何解决
26 0
|
21天前
|
存储 Serverless API
Serverless 架构实现弹幕场景问题之在initializer方法中初始化数据库实例如何解决
Serverless 架构实现弹幕场景问题之在initializer方法中初始化数据库实例如何解决
12 0
|
21天前
|
NoSQL Serverless API
Serverless 架构实现弹幕场景问题之API Gateway和OSS域名未绑定成功的问题如何解决
Serverless 架构实现弹幕场景问题之API Gateway和OSS域名未绑定成功的问题如何解决
26 0

相关产品

  • 函数计算