对话开发者:Serverless 落地的困境与破局

news2025/1/12 13:17:27

作者 | 阿里云开发者社区、InfoQ

从 2012 年提出 Serverless 到今年 2022 年刚好十年。

过去十年,上云是确定性趋势,在这个阶段企业一开始的关注点在于如何实现平滑上云。随着越来越多的企业上云,甚至很多企业系统第一天就是在云上构建,企业的核心关注点转变为如何更好地利用云的能力。

在新的阶段中,云服务的角色也从单纯的提供资源,变成了企业构建应用的新平台,帮助企业尽可能减小机器运维等低价值重复工作,聚焦于业务的创新。云厂商的核心能力转变为企业提供 Serverless 云服务,消除用云复杂度,用更简单的方式提高资源利用率,帮助企业降低成本。

这几年,不只是云厂商,大量的开源商业产品也采用了 Serverless 模式,包括Confluent Cloud、MongoDB Atlas、Snowflake、Databricks 等。

随着云厂商在存储、计算、中间件、大数据等领域推出越来越多的 Serverless 服务,云产品体系逐渐 Serverless 化,也推动着 Serverless 架构从概念进入到大规模生产落地阶段。2021 年 DataDog 发布 Serverless 研究报告,数据表明,从云原生初创公司到大型企业都在关注 Serverless,Serverless 生态已经超越了 FaaS,包含数十种服务,可以帮助开发人员构建更快、更动态的应用程序。

Serverless 奇点己来,所谓奇点,是由平稳发展转向高速发展的转折点,这也意味着 Serverless 在全行业的落地将全面爆发。

但与此同时,我们也看到,一方面是企业关注度不断上升、行业开始落地,另一方面,企业和开发者也对 Serverless 存在一些困惑和顾虑。

阿里云联合 InfoQ 收集了一些企业和开发者对现阶段 Serverless 的反馈,并于 12 月 16 日举办了云原生 Serverless 开发者评测局线下沙龙,邀请了阿里巴巴研究员、阿里云智能云原生应用平台负责人丁宇、阿里云 Serverless 研发团队、上海慧游文化、德基网络科技有限公司、南瓜电影、宝马等企业技术负责人,一起探讨 All on Serverless 过程中的挑战和经验,以期给更多落地 Serverless 的企业提供参考和借鉴。本文截取沙龙上的精彩发言。

完整版视频见阿里云云原生视频号↓

Serverless 到底是什么?

在谈论 Serverless 之前,我们先了解下,Serverless 是什么?云云原生 ,赞17 2012 年,Serverless 概念正式登上舞台。2016 年,首届 Serverless ConF 将这项技术的讨论推向高峰。2017 年,阿里云推出国内首个重磅 Serverless 产品服务--函数计算 FC(Function Compute),让开发者只需要专注于业务逻辑开发,而不是把大量精力花在服务器等基础设施的管理上,从而快速兑现业务价值。

2018 年至 2019 年,伯克利连续发表两篇论文对 Serverless 做出定义,预测 Serverless 将会成为云时代的最重要的计算范式,Serverless 获得了越来越多的关注。

Serverless 是一个非常广义的概念,并不局限于计算。一般同时满足以下条件可称为 Serverless 服务。

第一、全托管服务。意味着企业使用抽象的服务化接口,而不是直接面对底层资源,也就没有安装、配置、维护或者更新软硬件的负担。全托管服务通常也提供了内置的容错、安全、可观测能力,用户通常不需要再重新构建这些能力。

第二、自适应弹性。意味着服务能够根据负载大小自动弹性伸缩,不但让系统能够支撑快速发展的业务,也大大提升了资源使用效率。

第三、按实际用量付费。意味着只需根据实际的执行时间、流量或调用次数付费,降低了成本。 因此 Serverless 服务核心价值在于尽可能消除客户非功能性代码开发,简化应用基础设施管理的工作,从而实现研发效率的飞跃。

上海慧游文化 CEO 宋杰亲历首届 Serverless Conf 现场,在他看来:Serverless 是一项非常颠覆的技术和解决方案,它和之前出现的所有技术创新都有本质区别,因为它牵涉到的核心问题是商业模式的改变。“类似于机器语言到高级语言的飞跃,一下子就简化了做企业级应用的程序员要关心的问题,复杂度大大降低。”

Serverless 引领下一代应用架构

Serverless 服务契合了研发模式演进的趋势,过去十年,各大云厂商都在不断将产品体系 Serverless 化。

作为最早推进 Serverless 在中国落地的阿里云,Serverless 演进的过程,也是云计算的发展历程。阿里巴巴研究员、阿里云智能云原生应用平台负责人丁宇在分享中提到,阿里云是国内最早做云计算的企业,从 2009 年成立开始,第一阶段从资源和 IaaS 开始做起,在这个阶段,很多技术被开源并开始大规模流行,包括大数据、AI、中间件等微服务和应用层的技术。

从云的角度来看,这时候云厂商和开源具有非常好的协同关系,于是在云上出现了很多全托管的云产品。从企业客户角度来看,要确保应用在云上可靠、高效的运行,上云后的复杂度是非常高的,这时企业进入到想要更好用云的阶段,对于云的进化来讲,也开始向服务化的方式演进,也就是说,云开始从提供资源逐渐转变成提供服务。

在这样的背景下,阿里云逐渐走向 Serverless 服务形态,包括诞生诸如计算类、存储类、数据类、数据库类、大数据类甚至音视频类等 Serverless 的产品。

阿里云 Serverless 演进和实践

2017 年,阿里云推出 FaaS 产品函数计算 FC,这是一种以事件驱动为核心的全托管计算服务,用户只需编写代码并上传,函数计算就会自动准备好计算资源,以弹性、可靠的方式运行代码,并提供完整的可观测能力,大幅简化开发运维过程。第二年阿里云又推出了 Serverless 应用引擎 SAE,SAE 是业内首款面向应用的 Serverless PaaS 平台,屏蔽底层 IaaS 和 Kubernetes 的复杂度,提供了零代码改造、成本更优、效率更高的应用托管方案,帮用户实现单体 Web 应用、微服务应用以及定时任务的 Serverless 化。

同年领先业界推出 Serverless 容器服务 ASK,基于弹性容器实例 ECI(Elastic Container Instance),实现 1min 扩容 2000 个 pod,降低了 Kubernetes 使用门槛,让用户更专注应用程序,而非管理底层基础设施。

2020 年阿里云开源 Serverless Devs,成为业内首个支持主流 Serverless 服务/框架的云原生全生命周期管理的平台。2022 年 9 月该项目正式进入 CNCF Sandbox,也成为业内首个入选的 Serverless 工具项目。

Serverless 将云计算的粒度变得很细,企业选择是否采用 Serverless 产品不是单纯的软件问题,Serverless 背后需要有足够大的计算机集群和产品体系能力,才能保证其弹性满足企业复杂的业务需求 。阿里云提供了从容器到应用等各个层次的 Serverless 产品组合,并且坚定的推进产品体系的全面 Serverless 化。

目前阿里云已有 20 余款核心产品实现了 Serverless 化,阿里云函数计算 FC 日调用次数超过 200 亿次,有效支撑历年双 11 百万 QPS 洪峰,业务增速超过 300%,整体规模位居国内首位,经历超复杂场景的锤炼。Serverless 计算产品凝聚了阿里云在云原生领域的技术沉淀和最佳实践经验。

除了产品形态的改变之外,Serverless 同样带来了软件研发范式的改变。Serverless 云产品是模块化、可组合、高可用的,他们是构建应用的要素。通过 Serverless 计算组合多个云产品就可以快速构建应用。

Serverless 为基础,研发方式升级到组装式研发。组装式研发彻底颠覆了原有的软件研发方式,大幅提升研发效率,灵活应对业务挑战。根据权威机构调研统计,组装式研发相比传统模式,可为研发提效 50% 以上。

德基网络科技有限公司大前端技术负责人刘晓伟对 Serverless 的降本提效效果表示肯定。他说:“过去一年我们在做前端的 Serverless 升级改造。从支出成本角度来讲降低很多;从服务角度来看的话,需要分为几个方面,单一应用切成 Serverless 改造成本有适当增加,但一旦改造完成,后续开发效率就会高很多。”

这就是 Serverless 带来的价值:真正让开发者回归业务本身,让企业做得更少而收获更多。

Serverless 推进中的困境与破局

对于目前的 Serverless 来说,价值已经不言自明,当然,在规模化落地的道路上,Serverless 也会遇到一些阻力。企业开发者在是否采用这一问题上仍有犹豫和顾虑,认同技术趋势与实际应用落地之间存在一道无形的鸿沟。

丁宇认为:这就是一个技术发展过程中常见的现象,是符合技术发展规律的。Serverless 规模化落地需要一个契机,而这个契机已经到来。当前企业及开发者拥抱云计算更加积极,云已经成了一个创新平台。同时,更多产品具备了云特性,如自适应弹性、免运维等。从 Serverless 本身来讲,因为它足够先进,不是简单地替代互联网分布式架构,而是对互联网分布式架构的升级,从而形成了自己的一套体系,能够为企业带来很多显而易见的变化。

由于处在不同的时期,企业会有自己不同的选择,随着 Serverless 技术发展得更成熟,相信会有更多的企业愿意拥抱 Serverless,也许像互联网分布式架构一样成为主流架构还需要 5-10 年的时间,但是先行者往往是会拿到第一波红利的,这会让企业更具有竞争力。

目前,Java 语言仍占据国内后端开发主导地位,而 Java 语言的冷启动特性在函数计算上的并不友好。冷启动时长使得用户很难享受到 FC 毫秒计费,秒级扩容等特性带来的技术红利。

不久前 AWS 发布了消除冷启动的产品 SnapStart,使得冷启动再次成为热议话题。

冷启动包含了系统冷启动和应用冷启动两个部分。对于系统冷启动,阿里云在硬件、MicroVM、操作系统、语言运行时等进行了全栈优化。阿里云函数计算 FC 在系统冷启动阶段的性能指标业界领先。而应用冷启动和用户选择的语言以及程序逻辑本身有关系。比如 Java 类应用,启动时间通常远远高于 Node.js、Python、Go 等语言,阿里云内部一直在打磨这类技术,但实际应用会比较谨慎。因为 SnapStart 这类技术需要客户的应用程序对 SnapStart 进行适配,否则会出现程序正确性问题。今天 AWS 支持了这个技术,做了大量基础库、三方库的适配,虽然简化了客户的复杂度,但最终仍然需要客户自己保证正确性。因此阿里云提供了一些保证兼容性的方案,希望通过持续优化尽可能减少用户的适配负担。

目前,阿里云主要通过预留和闲置处理冷启动问题,另外,今年云栖大会函数计算 FC 发布了 vCPU 和内存解绑的策略,客户可以更精细化管理资源配比,资源利用率再一次得到优化,成本会进一步降低。

除此之外,厂商锁定(vendor lockin)也是阻碍 Serverless 规模化的一大困扰。对此,阿里云也有解法。

首先,阿里云已开源了 Serverless Devs,Serverless Devs 是一个开源开放的 Serverless 开发者平台,致力于为开发者提供强大的工具链体系。得益于功能的可插拔特性,Serverless Devs 可以非常简单的支持不同云厂商的项目部署,或者一键部署到不同云平台。

其次, Serverless 架构的理念本身是重塑应用的研发模式,云平台提供完整的 Serverless 产品体系,云平台提供一整套 Serverless 化的 BaaS 以及提供更为标准化、流程化的桥接。而 FaaS 更细粒度的业务处理拆分可以让业务代码开发更加简单,进而让企业多云方式的构建更加简单。

最后,企业采用多云方式,也不代表所有的业务都要进行多云,平均地分布在各朵云上,很多时候是在差异化的能力上选择最好的云,只有选择最合适的云、深度用云才能真正发挥云厂商的优势,获得更好的云资源。综上所述,如何做无锁定,厂商开放规范,不做限制,海纳百川,在一定程度上就是无厂商锁定。

Serverless 未来的畅想与规划

除了技术需要通关,思维的转变也是横亘在开发者面前的一道鸿沟。

Serverless 从技术创新走到应用再走到普及,对开发者而言最大挑战是系统设计模式和编码习惯的改变。

不少开发者对 Serverless 架构的学习都有疑问,到底是用原有开发范式还是需要学习新的范式?对于这个担忧,慧游文化 CEO 宋杰认为:“Serverless 会对传统开发模式和逻辑实现颠覆,对成熟的开发人员而言挑战可能更大,学习成本方面,对于经验丰富的程序员来说,进入云原生世界,最大的障碍不是‘学习’,而是‘遗忘’。”

云原生技术打破了原有的限制,CPU、硬盘、内存没有大小限制。对于越是经验丰富的程序员来说,思维的转换就越是困难。“程序员要需要不断学习 Serverless,才能够克服固有的思维模式。希望阿里云能够提供更多的培训帮助大家实现思维定式的转换。”宋杰表示,这也是他对阿里云的期待。

除了提供更加全面丰富的 Serverless 产品与方案,作为 Serverless 中国的先行者,阿里云将持续拥抱开源,为 Serverless 用户提供多样化、可选择、更灵活的方式,提升开发者的幸福感。

“未来阿里云整个产品体系都将 Serverless 化,产品和产品之间的集成更加细腻,由点及面,将整个链路串联起来,普惠更多的企业和开发者。”丁宇表示。

更多内容关注 Serverless 微信公众号(ID:serverlessdevs),汇集 Serverless 技术最全内容,定期举办 Serverless 活动、直播,用户最佳实践。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/145907.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

7-2 出生年

以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的…

【数据结构与算法——C语言版】5. 排序算法(1)——冒泡排序

前言 上篇文章【数据结构与算法——C语言版】4. 排序算法(1)——选择排序我们介绍了排序算法中的选择排序,其时间复杂度是O(n2),本篇文章我们将介绍另一种同样时间复杂度是O(n2)的排序算法——冒牌排序,这两种算法思路…

面向对象编程看这一篇文章就够了

第一章 面向对象和面向过程 面向对象(OOP[Object Oriented Programming])和面向过程(POP[procedure oriented programming])都是一种软件编程设计思想 1. 面向过程强调功能行为 2. 面向对象是将功能封装进对象,强调具备了功能的对象 3. 面向对象强调运用人类在日常的思维逻辑中…

Java 程序员都该懂的 HashMap

HashMap 一直是非常常用的数据结构,也是面试中十分常问到的集合类型,今天就来说说 HashMap。 但是为什么要专门说明是 Java8 的 HashMap 呢?我们都知道,Java8 有很多大的变化和改动,如函数式编程等,而 Hash…

SpringBoot 请求参数处理详解

目录 请求参数处理 0、请求映射 1、rest使用与原理 1、普通参数与基本注解 1.1、注解: 1.2、Servlet API: 1.3、复杂参数: 1.4、自定义对象参数: 2、POJO封装过程 3、参数处理原理 1、HandlerAdapter 2、执行目标方法…

maplab2.0安装

项目链接: GitHub - ethz-asl/maplab: An open visual-inertial mapping framework. 安装流程很简单.按照github流程安装就行,建议使用脚本自动安装, 安装指南: https://maplab.asl.ethz.ch/docs/master/pages/installation/A_Installation-Ubuntu.html 值得注意的点包括: 1…

【阶段二】Python数据分析数据可视化工具使用03篇:词云图与相关性热力图

本篇的思维导图: 词云图 词云图(word cloud chart)是通过使每个字的大小与其出现频率成正比,显示不同单词在给定文本中的出现频率,然后将所有的字词排在一起,形成云状图案,也可以任何格式排列:水平线、垂直列或其他形状,也可用于显示获分配元数据的单词。在词云…

2022 OpenMLDB 硕果累累,颁奖台上荣耀连连

岁末年初, 既是回望过去和规划未来的日子, 也是总结成长与收获成果的时间。 2022 年即将结束之际, OpenMLDB 在颁奖台上惊喜连连, 获得了 IT168 和 中国开源云联盟 的认可。 技术改变世界,创新引领未来。业界知名 IT…

Redis缓存穿透、缓存击穿、缓存雪崩详解

缓存处理流程接收到查询数据请求时,优先从缓存中查询,若缓存中有数据,则直接返回,若缓存中查不到则从DB中查询,将查询的结果更新到缓存中,并返回查询结果,若DB中查不到,则返回空数据…

PSR规范

PSR规范 PSR 不是PHP官方标准,而是从如Zend、Symfony2等知名PHP项目中提炼出来的一系列标准,目前有越来越多的社区项目加入并遵循该标准。 PSR-0 自动加载 X已废弃 PSR-1 基本代码规范 PSR-2 代码样式 PSR-3 日志接口 PSR-4 如何指定文件路径从而自动加载…

怎么搭建自己的网站赚钱,个人网站怎么操作

大家好,我是蝶衣王的小编接触过互联网的应该很多都想过能不能搭建自己的网站赚钱,无论是用来带货,引流,还是做广告都会是一笔不错的收入,而且网站做好之后打理起来简单,后期工作量也是比较小的,…

【论文简述】Vis-MVSNet: Visibility-Aware Multi-view Stereo Network(IJCV 2022)

一、论文简述 1. 第一作者:Jingyang Zhang 2. 发表年份:2022 3. 发表期刊:IJCV、BMVC 4. 关键词:MVS、可见性、MVSNet 5. 探索动机:MVS的可见性 One critical factor in MVS is the pixel-wise visibility: whet…

Clion配置导致中文乱码问题 char长度限制导致中文乱码问题

🍰 个人主页:__Aurora__ 🍞如果文章有什么需要改进的地方还请各位大佬指正。 🍉如果我的文章对你有帮助➡️ 关注🙏🏻 点赞👍 收藏⭐️ 问题1:中文乱码问题(配置原因) #…

【Linux】复制进程、了解逻辑地址以及写实拷贝

目录 fork()方法原型 父子进程 父子进程的pid 物理地址和逻辑地址 写实拷贝 fork()方法原型 pid_t fork(void); pid_t是int类型代表进程的pid号 Linux内核2.4.0定义: typedef int __kernel_pid_t; typedef __kernel_pid_t pid_t; 每一个进程的pid都是唯一…

MySQL多实例管理(mysqld_multi)

定义:就是在一台mysql机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务 1.MySQL多实例介绍 1.1.什么是MySQL多实例 MySQL多实例就…

移动智能终端安全技术要求及测试评价方法

声明 本文是学习移动智能终端安全技术要求及测试评价方法. 下载地址 http://github5.com/view/627而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 移动智能终端测试评价方法 硬件安全 硬件安全的测试方法、预期结果和结果判定如下: a&am…

版本控制 | 一文了解虚拟制作,进入影视制作新赛道

作为一种能够引领未来趋势,颠覆影视制作流程的全新技术,虚拟制作已经慢慢普及到影视制作领域。嗅觉灵敏的资本和目光前瞻的大厂纷纷布局虚拟制作赛道。阅读本篇文章,您将了解到什么是虚拟制作,它的优势所在、如何开展虚拟制作以及…

SpreadJS 16.0.1 中英版 SpreadJS-EN-CN

SpreadJS具有 500 多个 Excel 函数的完整 Angular 电子表格解决方案 快速提供真正类似 Excel 的电子表格体验 - 对 Excel 零依赖。创建财务报告和仪表板,预算和预测模型,科学,工程,卫生保健,教育,科学实验室和更多。 Ω578867473创建自定义电…

【MySQL数据库入门】:库的操作

文章目录库的操作1 创建数据库2 创建数据库案例3 字符集和校验规则3.1 查看系统默认字符集以及校验规则3.2 查看数据库支持的字符集3.3 查看数据库支持的字符集校验规则3.4 校验规则对数据库的影响4 操纵数据库4.1 查看数据库4.2 显示创建语句4.3 修改数据库4.4 数据库删除4.5 …

时序预测 | MATLAB实现SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络时间序列预测

时序预测 | MATLAB实现SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络时间序列预测 目录时序预测 | MATLAB实现SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络时间序列预测预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 MATLAB实现SSA-CNN-GRU麻雀算法优化卷…