写点什么

奇点已来,推进 All on Serverless 有哪些困难、如何破局?| 解读 Serverless 的 2022

阿里云开发者社区

  • 2022-12-27
    北京
  • 本文字数:5122 字

    阅读完需:约 17 分钟

奇点已来,推进All on Serverless有哪些困难、如何破局?| 解读Serverless的2022

从 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 研发团队、上海慧游文化 CEO 宋杰、德基网络科技有限公司大前端技术负责人刘晓伟以及南瓜电影、宝马等企业技术负责人,一起探讨 All on Serverless 过程中的挑战和经验,以期给更多落地 Serverless 的企业提供参考和借鉴。本文截取沙龙上的精彩发言。


本文是“2022 InfoQ 年度技术盘点与展望”系列文章之一。

Serverless 到底是什么


在谈论 Serverless 之前,我们先了解下,Serverless 是什么?


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


2018 年至 19 年,伯克利连续发表两篇论文对 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 化,产品和产品之间的集成更加细腻,由点及面,将整个链路串联起来,普惠更多的企业和开发者。”丁宇表示。


如果你对本文感兴趣,欢迎在文末留言,或加入 InfoQ 写作平台话题讨论:https://xie.infoq.cn/


【2022年度技术盘点与展望】专题已上线,添加进收藏夹,精彩不错过。


同时,InfoQ 年度展望直播周将于 2023 年 1 月 3 日首场开播,并持续输出精彩内容,关注 InfoQ 视频号,与行业技术大牛连麦~

2022-12-27 14:478721

评论

发布
暂无评论
发现更多内容

ARTS 第 3 周

乌拉里

138 张图带你 MySQL 入门

苹果看辽宁体育

MySQL 数据库

架构师训练营第三周作业

CATTY

每周学习总结 - 架构师培训 3 期

Damon

架构师训练营-第 03 周总结

Eric

极客大学架构师训练营

设计模式练习及感想(训练营第三课)

看山是山

设计模式 极客大学架构师训练营

技术学习进阶(死磕法)

dudu

学习 技术

架构师训练营-第 02 周作业

Eric

架构师训练营 - 第 02 周学习总结

Eric

Open-Falcon安装注意事项

wong

Open-Falcon Nightingale Monitor

Prometheus 2.19.0 新特性

耳东@Erdong

Prometheus

易纲:上海可以在人民币自由兑换等方面先行先试

CECBC

数字货币 区块链技术 金融科技中心

搞定 HTTP 协议(三):如何严谨地描述一个 HTTP 报文?

零和幺

https HTTP

单例模式和组合模式

鲁米

ARTS-WEEK4

一周思进

ARTS 打卡计划

架构师训练营 - 学习笔记 - 第三周

心在飞

极客大学架构师训练营

信息的表示与存储-整数的运算

引花眠

计算机基础

week3 学习总结

任小龙

架构师训练营 - 第三周作业

teslə

代码重构-学习总结

飞雪

故障演练利器之ChaosBlade介绍

心平气和

故障演练 故障注入

ARTS打卡 第4周

引花眠

ARTS 打卡计划

ARTS-WEEK3

Allen

极客时间 - 架构师培训 -3 期作业

Damon

架构师训练营-第 03 周作业提交

Eric

极客大学架构师训练营

week3.课后作业

个人练习生niki👍

单例模式 组合模式

十万同时在线用户,需要多少内存?——Newbe.Claptrap 框架水平扩展实验

newbe36524

程序员的晚餐 | 6 月 21 日 自制小火锅

清远

美食

三周作业

飞雪

Go:使用Delve和Core Dump来调试

陈思敏捷

debug gdb Go 语言

架构师训练营 - 第三周总结

teslə

奇点已来,推进All on Serverless有哪些困难、如何破局?| 解读Serverless的2022_服务革新_InfoQ精选文章