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

本文涉及的产品
可观测链路 OpenTelemetry 版,每月50GB免费额度
函数计算FC,每月15万CU 3个月
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: Serverless 奇点己来,所谓奇点,是由平稳发展转向高速发展的转折点,这也意味着 Serverless 在全行业的落地将全面爆发。

作者:阿里云开发者社区


从 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 是什么?


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


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


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


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


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


第三、按实际用量付费意味着只需根据实际的执行时间、流量或调用次数付费,降低了成本。


因此 Serverless 服务核心价值在于尽可能消除客户非功能性代码开发,简化应用基础设施管理的工作,从而实现研发效率的飞跃。


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


1.jpeg


Serverless 引领下一代应用结构


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


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


2.jpeg


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


在这样的背景下,阿里云逐渐走向 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 改造成本有适当增加,但一旦改造完成,后续开发效率就会高很多。”


3.jpeg


这就是 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 化,产品和产品之间的集成更加细腻,由点及面,将整个链路串联起来,普惠更多的企业和开发者。”丁宇表示。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
3月前
|
运维 JavaScript Serverless
Serverless革命:一键上云,Egg.js开发者的超级加速器!
【8月更文挑战第8天】本教程介绍如何结合Egg.js与Serverless技术简化Web应用部署。首先确保已安装Node.js及npm,并使用`egg-init`脚手架创建新应用。接着添加`egg-serverless`插件支持Serverless部署,编写基本的应用代码及路由规则。通过配置`fc.yml`文件集成阿里云Function Compute作为Serverless平台,并借助`@alicloud/fun`工具完成部署。最后,通过部署生成的URL验证应用是否成功上线。采用Serverless架构,开发者可以专注于业务逻辑,大幅提高部署效率和资源利用。
54 5
|
4月前
|
分布式计算 Serverless Spark
【开发者评测】E-MapReduce Serverless Spark获奖名单
E-MapReduce Serverless Spark获奖名单正式公布!
178 1
|
4月前
|
分布式计算 运维 Serverless
E-MapReduce Serverless Spark开发者评测
**EMR Serverless Spark测评概要** - 弹性处理大规模用户行为分析,提升产品优化与推荐精度。 - 相比自建Spark集群,EMR Serverless Spark展现更高稳定性、性能,降低成本,简化运维。 - 支持多种数据源,提供Spark SQL与DataFrame API,自动资源调度,适用于波动需求。 - 文档清晰,但可增强特定场景指导与故障排查。 - 建议优化监控、调度算法,增加内置分析工具,并强化与其他阿里云产品(如MaxCompute, DataWorks, QuickBI)的联动。 - 全托管服务减轻运维负担,但资源管理、查询效率与兼容性仍有提升空间。
73 1
|
6月前
|
运维 监控 Serverless
【专栏】无服务器架构,一种云计算模型,让开发者专注编写代码而不必管理服务器(Serverless)
【4月更文挑战第28天】无服务器架构,一种云计算模型,让开发者专注编写代码而不必管理服务器。它基于事件驱动,自动扩展资源并按需计费。优势包括缩短开发周期、优化资源利用、降低成本、提高可用性及简化维护。然而,冷启动延迟、调试困难、性能监控、安全性和学习曲线等挑战仍需解决。随着技术进步,无服务器架构将在科技发展中发挥更大作用。
121 2
|
6月前
|
关系型数据库 MySQL Serverless
《开发者评测》之PolarDB MySQL 版 Serverless评测活动获奖名单
PolarDB MySQL 版 Serverless评测最优奖、潜力奖、争优奖获奖名单正式公布!
113 0
|
6月前
|
Serverless 开发者
《开发者评测》之函数计算 FC 3.0 获奖名单
函数计算 FC 3.0评测最优奖、潜力奖、争优奖获奖名单正式公布!
310 0
|
12月前
|
Serverless 数据安全/隐私保护 开发者
《开发者评测》之Serverless应用引擎SAE获奖名单
Serverless应用引擎SAE评测最优奖、潜力奖、争优奖获奖名单正式公布!
677 0
|
2月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
130 13
|
3月前
|
Serverless API 异构计算
函数计算产品使用问题之修改SD模版应用的运行环境
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
运维 Serverless 网络安全
函数计算产品使用问题之通过仓库导入应用时无法配置域名外网访问,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。

热门文章

最新文章

  • 1
    猫头虎分享:鸿蒙生态带给开发者的全新机遇!轻松实现按需加载与多端适配,开发效率翻倍
    20
  • 2
    【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
    7
  • 3
    布谷一对一直播源码服务器环境配置及app功能
    11
  • 4
    网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS
    8
  • 5
    网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
    8
  • 6
    一份运维监控的终极秘籍!监控不到位,宕机两行泪
    11
  • 7
    网络空间安全之一个WH的超前沿全栈技术深入学习之路(3-2):渗透测试行业术语扫盲)作者——LJS
    4
  • 8
    网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
    7
  • 9
    网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-1):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
    6
  • 10
    网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
    9
  • 相关产品

  • 函数计算