解决 Serverless 落地困难的关键,是给开发者足够的“安全感”
共 5845字,需浏览 12分钟
· 2021-11-18
作者:不瞋,阿里云 Serverless 技术负责人
前段时间,我与 InfoQ 大咖说合作了一期直播,跟开发者们聊了聊我眼中的 Serverless。大家对于 Serverless 热情很高,但是顾虑仍然存在,这也是我写作本文的原因。作为这一技术浪潮的见证者,我想跟大家一起思考 Serverless 诞生的原因,阿里云 Serverless 技术和产品的演进历程,以及我对 Serverless 未来趋势的判断。
云产品体系的 Serverless 化
虽然 Serverless 对很多人来说,仍然比较新鲜,但其实 Serverless 这种形态早已有之。
Serverless 走出幻想破灭的低谷
2017 到 2018 年,我们都有体感 Serverless 热度达到了一个高峰,但和很多新兴技术一样,从概念大讨论到企业落地应用,都会经历幻想破灭的低谷。从 Serverless 这十年的发展来看,无论是学术界还是工业界,都认为这是一项颠覆式的技术,在提升研发效率、资源效率上有着巨大的潜力。但作为一个新概念和新的计算形态,Serverless 最主要的挑战是对开发者心智的改变,在工具链、编程模型、应用架构上,都需要开发者转换思路。
今天,这些问题正在被快速的、持续的解决。
Serverless 正处于稳步上升期,我们能看到业界最主要的云服务商在不断推出不同形态的 Serverless 计算服务,比如 Google Cloud Run,亚马逊云科技的 App Runner,阿里云的 Serverless 应用引擎 SAE。另外,阿里云的函数计算这类最经典的 Serverless 计算服务,也正变得越来越通用,对应用的侵入越来越少。
无论在阿里巴巴上还是在阿里云上,开发者对 Serverless 的认识越来越客观、务实,并在越来越多的场景中引入 Serverless 技术和相关的工具链,驱动 Serverless 生态愈加成熟。
给开发者安全感,是最重要的事
我们经历了一个从 Serverless 非常受关注到落地困难,再到 Serverless 被广泛使用的全过程。这个过程中也确实遇到了不少挑战,解决 Serverless 落地困难的关键,在于给开发者安全感。对开发者来说,Serverless 把更多的技术层面的东西交给了云厂商去做,所以怎么给他们安全感,让他们无负担使用是非常关键的,也是他们做技术选型时最关注的点。
开发者这种安全感的担忧主要来自于两方面:
云厂商锁定问题:Serverless 让应用更深度的依赖于云服务商的能力,如何避免 vendor lock-in,从一个云迁移到另一个云,会有哪些障碍?
控制黑盒问题:云厂商接管了应用的运行平台,怎么能提供给用户控制力?比如用户怎么能看到足够丰富的指标来优化应用或者掌控应用运行的情况?云平台出问题了怎么办?出现问题时,用户有什么手段能快速查明问题,恢复服务?
正在全面落地的 Serverless
在企业赋能方面,尤其是疫情之后,能够看到用户对 Serverless 的认知变深,在很多场景下,切换到 Serverless 架构确实能够为用户带来明显的收益,用户逐渐认可这项技术。
Serverless 全链路、全场景覆盖天猫双11
网易云音乐音视频算法的 Serverless 探索
详情阅读:网易云音乐音视频算法的 Serverless 探索之路
南瓜电影 7 天全面 Serverless 化
另一个比较有意思的案例是南瓜视频使用 SAE 实现传统微服务应用的零迁移改造,只用了一周就完整迁移到 SAE 平台。
运维成本高。要管理基础设施,要规划网络,要升级系统等等,大量的时间花在这些低价值的工作上,而不是专注于业务的发展;
机器难以规划容量。热点电影经常造成访问热点,临时扩容操作复杂、慢。南瓜经历了业务的爆发式增长,因为一部热映电影,1 小时新增 80 万注册用户,比正常流量高了 80 倍,系统很快就崩了。
这次经历促使南瓜进行了技术升级。用户也对比了 K8s 和 SAE,最后认为要玩转 K8s ,需要组建好专业团队,代价不小。SAE 的产品形态非常有亲和力,南瓜只花了很短的时间就迁移到 SAE,现在所有的应用都运行在 SAE 上。
详情阅读:南瓜电影 7 天内全面 Serverless 化实践
Serverless 不是未来,是现在
接下来,Serverless 的产品形态会变得多样,早些年大家都把 Lambda 这样形态的产品等同于 Serverless 计算,这几年我们看到 Google Cloud Run,亚马逊云科技 App Runner 等针对 Web 应用场景的 Serverless 服务,阿里云函数计算也在不断演进,比如支持容器镜像、更少的运行限制等等。而且针对传统微服务等存量市场,我们还推出了 SAE 这样形态的服务,让用户能够非常方便的把存量应用迁移上来,享受 Serverless 的红利。
Serverless 底层技术发展上也有一些值得关注的趋势。包括在资源调度上更加智能,因为 Serverless 的计算模式给平台提供了更多的负载信息,使得平台有机会通过数据驱动的方式在资源调度、流量路由等方面做得更加精准。另外,Serverless 有望支持更多类型的硬件,包括 ARM 类型的 CPU、GPU 或者 FPGA 等异构硬件,给用户提供更有性价比的计算类型。
谈未来,就不免说到对 Serverless 终点的判断,我想云就像一台计算机,在过去的 10 年,云主要是通过 Cloud Hosting 的模式,在兼容原有编程模式的同时,为开发者提供了海量的算力。但这种模式有点像使用汇编语言编程,开发者需要处理相当多的细节。微软预测未来 5 年将新增 5 亿个应用,超过过去 40 年的总和,这是传统的开发模式难以支撑的。
所以我们看到现代应用、低代码等理念开始流行。下一个 10 年,云的编程模型将迎来巨大的创新。过去 PC、移动互联网,都从一开始的硬件创新,发展到形成自己的原生编程模型,形成完整的、繁荣的产业生态,云也正在经历这样的过程。最终,云会有属于自己的、原生的、高效的编程模型和应用研发模式。而 Serverless 在云的生态中,扮演应用运行时的角色,是承载应用运行的基础设施。
作者简介:
不瞋:阿里云 Serverless 产品研发负责人,致力于构建下一代弹性、高可用的无服务器计算平台。
Meetup 深圳站
12.04 深圳站 | Serverless Developer Meetup 开放报名啦!
名额有限,点击阅读原文报名!