Serverless架构基础详解(4)

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: Serverless架构的发展,离不开云厂商的驱动,离不开开源社区的支持,在过去的几年时间,无论是高校、实验室、云厂商等对Serverless架构的研究,还是CNCF等基金会对Serverless架构的持续关注和赋能,还是其他的Serverless社区、开源项目对Serverless架构的建设,Serverless架构都在逐渐的成为更通用,更好用的技术架构,都在成为更简单、更具价值的技术选型

1.1.4 生态发展
Serverless架构的发展,离不开云厂商的驱动,离不开开源社区的支持,在过去的几年时间,无论是高校、实验室、云厂商等对Serverless架构的研究,还是CNCF等基金会对Serverless架构的持续关注和赋能,还是其他的Serverless社区、开源项目对Serverless架构的建设,Serverless架构都在逐渐的成为更通用,更好用的技术架构,都在成为更简单、更具价值的技术选型。

学术建设
Serverless架构从诞生到今天,正在逐渐的被更多人所关注,包括学术界也逐渐有越来越多的人,将目光投向Serverless架构,助力Serverless领域快速腾飞。这一部分,将会通过部分论文对Serverless架构在学术界的建设进行初步的分析和探索。

2018年,Serverless的发展速度要比想象中的更加快速,这一年UC Berkeley发文《Serverless Computing: One Step Forward, Two Steps Back》,表达了对Serverless架构的担忧和挑战,在这篇文章中,作者认为“通过提供自动缩放功能,今天的FaaS产品在云编程方面迈出了一大步,它提供了一种实际上可管理的,看似无限的计算平台。但是,他们忽略了高效数据处理的重要性;其次,它们阻碍了分布式系统的开发”。任何一个新的技术、概念出现都会遇到一定的挑战和担忧,就如同当年云计算出现时,也被一些人(如Oracle公司总裁Larry Ellison、GNU发起人Richard Stallman)认为只是又一个商业炒作的概念,毫无新意,甚至蠢不可及。当然,事实也证明,任何一个新的事物,都只有在经历各种挑战和质疑之后,才能更茁壮的成长,Serverless也不例外。

2019年,时隔一年,UC Berkeley针对Serverless架构再次发文《Cloud Programming Simplified: A Berkeley View on Serverless Computing》,在这篇文章中,作者犀利断言Serverless 将会在接下来十年被迅速采用,获得飞速发展,并对Serverless架构进行了更为激进的断言:Serverless 将会成为云时代默认的计算范式,将会取代 Serverful 计算,这也意味着服务器 - 客户端模式的终结,Serverless架构将会引领云计算的下一个十年。

在学术界,不仅仅UC Berkeley 对Serverless发表过多篇论文,很多国内外高校都在Serverless领域投入了足够的精力进行科研探索。就目前来看, Serverless 已经成为学术界的研究热点,每年Serverless架构相关的论文都有比较明显的增长趋势:

image.png

(该图片来自掘金社区)

而到了2021年,Serverless架构在学术界的论文数量不仅仅再次上升,其研究内容和方向也是越发的完善和全面,其中包括不限于冷启动优化、镜像加速、调度策略、缓存机制等诸多热点问题。

以阿里云函数计算团队和美国George Mason University Leap Lab合作发表在顶会USENIX ATC (USENIX Annual Technical Conference) 的论文《FaaSNet: Scalable and Fast Provisioning of Custom Serverless Container Runtimes at Alibaba Cloud Function Compute》为例,在文章中就针对容器镜像生态与Serverless架构结合之后的问题“镜像拉取与冷启动优化”问题进行了更为深入的探索,在加速镜像的分发速度方面,常见的业界成熟的 P2P 方案没有做到 function 级别的感知,并且集群内的拓扑逻辑大多为全连接的网络模式,对机器的性能提出了一定需求,这些前置设定不适配 FC ECS 的系统实现,为此设计并提出了一个具有高伸缩性的轻量级系统中间件FaaSNet,FaaSNet利用到镜像加速格式进行容器分发,目标作用场景是 FaaS 中突发流量下的大规模容器镜像启动(函数冷启动),FaaSNet 的核心组件包含 Function Tree (FT),是一个去中心化的、自平衡的二叉树状拓扑结构,树状拓扑结构中的所有节点全部等价。FaaSNet 可以根据 workload 的动态性实现实时组网已达到 function-awareness,无须做预先的 workload分析与预处理,进而帮助Serverless平台解锁高伸缩性和快速的镜像分发速度技术瓶颈,赋能自定义容器镜像场景的更为深入和广泛的应用。

除此之外,作为云计算领域的顶级会议SoCC,在2021年接收的论文中,也可以看到诸多Serverless架构的影子,例如以Microsoft Azure Functions作为实验平台的论文《FaaT:ATransparentAuto−ScalingCacheforServerlessApplications》,针对Serverless架构中函数stateless的特点,针对FaaS平台的Cache问题,提出了一种用于Serverless应用程序的自动伸缩分布式缓存FaaT: A Transparent Auto-Scaling Cache for Serverless Applications》,针对Serverless架构中函数 stateless 的特点,针对FaaS平台的Cache问题,提出了一种用于Serverless应用程序的自动伸缩分布式缓存FaaT:ATransparentAuto−ScalingCacheforServerlessApplications》,针对Serverless架构中函数stateless的特点,针对FaaS平台的Cache问题,提出了一种用于Serverless应用程序的自动伸缩分布式缓存FaaT,可以大幅度提升 Serverless 函数的性能,与已有的通过外部存储作为 Cache 系统的方法相比,Faa$T可以降低绝大多数的开销。另一篇文章《ServerMore: Opportunistic Execution of Serverless Functions in the Cloud》针对Serverless函数短执行时间与低资源需求的特点,介绍了一种服务器级资源管理器ServerMore,可将Serverless 函数与 Serverful 的虚拟机调度在同一台物理机上执行任务,ServerMore 动态调节服务器上的 CPU、内存带宽和 LLC 资源,以确保 Serverful 和 Serverless 工作负载之间的托管不会影响应用程序tail latencies。通过选择性地使用Serverless架构并推断相对黑盒的Serverful工作负载的性能,ServerMore 与之前的模式相比,平均提高了 35.9% 到 245% 的资源利用率;同时对 Serverful 应用程序和 Serverless 架构的延迟影响最小。

Serverless架构的学术研究日渐火热,各领域的顶会也出现了诸多优秀的Serverless架构相关论文,这不仅有助于Serverless学术生态的繁荣,也非常有助于突破Serverless架构的技术瓶颈,实现云计算领域技术架构升级。

除此之外,近年来国内的Serverless图书专著也逐渐多了起来,仅仅2021年一年的时间就先后有包括《前端Serverless:面向全栈的无服务器架构实战》、《Serverless从入门到进阶:架构、原理与实践》、《Serverless工程实践:从入门到进阶》、《华为Serverless核心技术与实践》等在内的图书被出版,大大丰富了国内的Serverless培训与教育的资料生态。

随着时间的发展,Serverless架构在更多领域发挥着越来越重要的作用,在被更多人关注的同时,Serverless架构也逐渐的成为了诸多学者、实验室的研究对象,如何将学术和工业进行有机结合,如何通过工业赋能学术届的科研,通过学术届的科研赋能工业界技术架构的迭代升级,赋能整个行业的前进,这不仅仅是Serverless架构需要做的,也是如今的Serverless架构正在做的。

工具链建设
Serverless 正在改变未来软件开发的模式和流程,并被预测将引领云计算的下一个 10 年,但尽管如此,开发者在选择使用 Serverless 时仍有诸多担忧,这其中最受关注的无疑就是工具链体系的匮乏。所谓的工具链匮乏,一方面表现在市面上工具链不完善,这导致开发和部署难度大,进而增加成本;另一方面表现在,缺乏相关的工具链在体验层将 Serverless 体验进一步规范,优质工具链的匮乏导致本来就担心被厂商绑定的 Serverless 开发者变得更难与厂商解绑。2020年 10月,中国信息通信研究院发布国内首个《云原生用户调查报告》明确指出在使用 Serverless 架构之前,49% 的用户考虑部署成本,26% 的用户考虑厂商绑定情况,24% 的用户考虑相关工具集完善程度,这些数据背后透露的实际上是:开发者对于完善工具链的强烈需求。尽管,有一些开发者认为入门Serverless架构,通过白屏化的操作相对来说会更容易入门,在一定程度上通过各个云厂商的控制台进行函数的创建、更新也会更为方便。但是不可否定的是,Serverless开发者工具在一定程度上却有着更为重要的价值和作用:

通过脚手架,快速创建Serverless架构的应用;

在开发过程中,通过开发者工具进行应用的调试等;

在开发完成之后,通过开发者工具将应用(可能包括多个函数以及相对应的BaaS类产品)一键部署到线上;

项目运维阶段,通过开发者工具进行项目的可观测以及问题定位等;

若需要实现科学部署,通过某些CI/CD平台/工具发布Serverless架构的应用,通常是离不开开发者工具的;

目前Serverless领域,工具链建设分为两类:

云厂商/Serverless框架所提供的针对自身的开发者工具,例如AWS的SAM CLI,阿里云的Funcraft,OpenWhisk的Ask等;

由第三方提供的多云开发者框架(包括不限于开源社区驱动),例如Serverless Framework项目,Serverless Devs项目等;

通过Serverless开发者工具,开发者可以非常简单的学习和使用Serverless架构,也可以在生产的过程中快速的使用这些工具进行开发效能的提升。以Serverless Framework为例,作为拥有近4万Star的海外老牌Serverless工具链开源项目,目前Serverless.com的官方网站支持11个常见的Serverless平台产品:

image.png

可以通过Serverless Framework开发者工具,以AWS Lambda为例进行实践,可以通过几行命令快速体验AWS Lambda:

# 安装
npm install -g serverless
# 配置密钥
serverless config credentials --provider aws --key key--secret secret
# 创建一个项目
serverless create --template aws-python3 --path my-service
# 进入项目
cd my-service
# 部署项目
serverless deploy -v

除了对项目的部署和发布操作之外,Serverless Framework还支持项目的删除,回滚等更多的操作,以常见的部分云厂商和开源项目为例,Serverless Framework的常见能力表如下:

QQ截图20230113224954.png

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
27天前
|
监控 Serverless 数据库
探索 Serverless 架构:云计算的新浪潮
【10月更文挑战第18天】Serverless架构,即无服务器架构,是一种新兴的云计算模式,让开发者无需管理服务器即可构建和运行应用。本文探讨了其核心概念、优势、挑战及最佳实践,强调了按需付费、自动扩展和开发效率等优点,同时也指出了冷启动、状态管理和调试监控等挑战。
|
19天前
|
机器学习/深度学习 监控 Serverless
探索Serverless架构:云计算的新前沿
【10月更文挑战第26天】本文探讨了Serverless架构作为新兴的云计算范式,如何改变应用的构建和部署方式。文章介绍了Serverless的核心概念、优势和挑战,并提供了开发技巧和实用工具,帮助开发者更好地理解和利用这一技术。
|
19天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
57 1
|
22天前
|
监控 Serverless 数据库
探索 Serverless 架构:云计算的新浪潮
【10月更文挑战第23天】Serverless 架构是一种新兴的云计算范式,允许开发者构建和运行应用程序而无需管理服务器。本文深入探讨了 Serverless 的核心概念、优势、挑战及最佳实践,帮助开发者更好地理解和应用这一技术。
|
23天前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
53 1
|
23天前
|
运维 监控 Serverless
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
30 1
|
27天前
|
机器学习/深度学习 监控 Serverless
无服务器架构(Serverless)
无服务器架构(Serverless)
|
1月前
|
存储 消息中间件 人工智能
ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用
本文整理自2024年云栖大会阿里云智能集团高级技术专家金吉祥的演讲《ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用》。
|
1月前
|
运维 监控 Serverless
利用Serverless架构优化成本和可伸缩性
【10月更文挑战第13天】Serverless架构让开发者无需管理服务器即可构建和运行应用,实现成本优化与自动扩展。本文介绍其工作原理、核心优势及实施步骤,探讨在Web应用后端、数据处理等领域的应用,并分享实战技巧。
|
1月前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
58 3

热门文章

最新文章

相关产品

  • 函数计算
  • 下一篇
    无影云桌面