作者 | 阿里云开发者社区、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 落地的困境与破局的更多相关文章

  1. 破局AI落地难,数据标注行业需率先变革丨曼孚科技

    ​2019年,国内人工智能领域的投融资热情大幅降低,相当数量的AI企业彻底消失在了历史的长河中,“人工智能寒潮已至”甚至成为行业年度热词. 与前几年创业与投资热情齐头并进的盛况相比,近段时间的AI行业 ...

  2. 破局人工智能:构建AI,与腾讯云一起探索语音应用场景

    本文来自腾讯云技术沙龙,本次沙龙主题为AI平台及智能语音应用解析 近年来,人工智能技术快速发展,与其他行业的结合也成为业界不断探索的方向.在人工智能基础和工具方面,AI平台已成为降低人工智能门槛的关键 ...

  3. 国产FPGA市场分析 该如何破局

    2018年上半年对于中国半导体行业而言是多事之秋,发生了几件让国人深入思考的大事.我作为IC产业的逃兵,最近也在思考很多的问题,包括资本市场.集成电路行业和研究所的一些不成熟的想法. 2008年进入华 ...

  4. 敏捷史话(八):敏捷的破局之道——Martin Fowler

    在 Martin Fowler 的世界里,任何事情都有最优解. 1963年,Martin 出生于英格兰的沃尔索尔(Walsall),也在同样位于沃尔索尔的玛丽女王文法学校中接受中等教育.在这里的乡村中 ...

  5. 研发效率破局之道 Facebook工作法

    如果你问中国和美国互联网公司都有什么差别,很多人会回答:低效加班文化.最近爆出的996大讨论,通过糙快猛打拼和996加班去抢占市场获得机会的成功案例越来越少.至此,只有提高效能才是出路. 由于软件开发 ...

  6. 电影成生活O2O必争之地,破局之战就此拉开

    这一次的两会过后,互联网最流行的一个词恐怕当属“互联网+”.尤其是总理关于“以互联网为载体.把线上线下互动的新兴消费搞得红红火火”的一席话,更是让国内的O2O从业者兴奋不已.百度李彦宏在两会接受记者采 ...

  7. 高倍币VAST,如何破局NGK算力市场?

    2020年,全球经济危机的爆发,无疑是给全球经济蒙上了一层阴影.而世界主要经济体也开启了无节制的放水,通过一轮又一轮的宽松货币政策,以刺激经济的发展.然而宽松的货币政策也加速了以美元为首的货币贬值,同 ...

  8. 数据孤岛下的新破局 Real Time DaaS:面向 AP+TP 业务的数据平台架构

    从传统数仓,到大数据平台,再到数据中台和湖仓一体新数据平台,在日益加重的数据孤岛困扰下,面向AP场景的解决方案可谓浩如烟海.但实际上,企业在TP类型业务上的投入和AP的比率却高达9:1,为什么没有为T ...

  9. TKE 超级节点,Serverless 落地的最佳形态

    陈冰心,腾讯云产品经理,负责超级节点迭代与客户拓展,专注于 TKE Serverless 产品演进. 背景 让人又爱又恨的 Serverless Serverless 炙手可热,被称为云原生未来发展的 ...

  10. 风物长宜放眼量,人间正道是沧桑 - 一位北美 IT 技术人破局

    引言 我对于本科时光的印象,还停留在那所普通 211 大学的建筑物之间,我坐在大学的时光长廊里,满眼望去,都是经历的过的故事.可毕业后回首,却很少有人能说,自己从来没有迷茫过.迷茫,仿佛就是一团乌云, ...

随机推荐

  1. timeSetEvent()函数定时器的使用

    1.定时器函数的使用 微软公司在其多媒体Windows中提供了精确定时器的底层API支持,利用多媒体定时器可以很精确地读出系统的当前时间,并且能在非常精确的时间间隔内完成一个事件.函数或过程的调用. ...

  2. Axure实战应用:Axure设计可视化大屏!

    Axure是一款功能强大的原型设计工具,可以用于设计可视化大屏.设计一个有效的可视化大屏需要考虑多个方面,包括布局规划.信息展示.交互设计等. 以下是一个详细的描述,希望对你有所帮助. 第一部分:可视 ...

  3. 什么是oa软件?oa软件能做什么?

    什么是OA软件? OA软件是办公自动化软件(Office Automation Software)的简称,是一种通过计算机技术,对办公业务流程进行管理和自动化处理的软件系统.它主要用于协调和管理企业内 ...

  4. three.js 汽车行驶效果

    实现原理是使用TWEEN.Tween实现动画效果 实现 汽车模型加载 使用Promise编写模型的异步加载方法 Car.prototype.loadCar = function (position, ...

  5. lua完整学习笔记

    lua注释 -- 单行注释 --[[ 多行注释 ]]-- lua数据结构 nil          无效值与Java的Null类似,但是在条件表示中是false boolean      布尔值,tu ...

  6. 【matlab混沌理论】1.4.双摆杆的不同参数模型

    双摆杆运动模型.初始条件的微小差异,会导致千差万别的运动现象,这是混沌理论重要体现.主要考虑初始条件有两摆杆长度.质量.初始摆杆角度.重力加速度. input: % 参数定义 L1 = 1; % 第一 ...

  7. Hexo 主题开发之自定义模板

    关于 Hexo 如何开发主题包的教程在已经是大把的存在了,这里就不在赘述了.这边文章主要讲的是作为一个主题的开发者,如何让你的主题具有更好的扩展性,在用户自定义修改主题后,能够更加平易升级主题. 问题 ...

  8. yarn的常用命令

    yarn 安装 npm install -g yarn 查看版本 yarn -v 开始一个新工程 yarn init 与 npm init 一样通过交互式会话创建一个 package.json yar ...

  9. .NET Conf China 2023 活动纪实 抢先看

    ​ 今天2023年12月16日.NET Conf China 2023举办的日子,北京昨天上午还在飘起雪花,到今天早上的天气就有了极大的改观,大清早就能看到外面徐徐升起的朝阳,这也预示着今天将是一个大 ...

  10. LeetCode15:三数之和(双指针)

     解题思路:常规解法很容易想到O(n^3)的解法,但是,n最大为1000,很显然会超时. 如何优化到O(n^2),a+b+c =0,我们只需要判断 a+b的相反数是否在数组中出现,而且元素的取值范围在 ...