高德最佳实践:Serverless 规模化落地有哪些价值?

来源 | 阿里巴巴云原生公众号

作者 | 何以然(以燃)

导读:曾经看上去很美、一直被观望的 Serverless,现已逐渐进入落地的阶段。今年的"十一出行节",高德在核心业务规模化落地 Serverless,由 Serverless 支撑的业务在流量高峰期# s } o + Q s的表现十分优秀g P } X i s K。传统应用也能带W E ! l ) H来同样的体验,r a +那么 Serverless 的差异化价值又是什么呢?本文分享高德 Serverless 规模化落地背后的实践总结。

随着 Serverless 概念的进一步普及,开发者已经从观望状态进入尝试阶段,更多的落2 U m @地场景也在不断解锁。“Server % p Q j zless 只适合小场景吗?”、“只能被事件驱动吗?” 这些早期对 Serverless 的质疑正在逐渐消散,用户正在更多的核心场景中,开始采p [ ; N b h用 Serverless 技术达到提效、弹性、成本优化等目的。作为地图应用的领导者,高德为带给用户更好的出行体验,不断在新技术领域进行探索,在核心业务规模化落地 Serverless,现已取得Z F ( V f显著成效。

2020 年的“十一出行节”期间,高德地图创造了记录 ——截止 2020 年 10 月 1 日3 K 7 a 13 时 27 分 27 秒,高德地图当日活跃用户突破 1 亿K 8 F C A v G,比 2019 年 10 月 1 日提前 3z 8 m W w h 时 41 分达成此记录。

期间,Serverless 作s ~ y v w A f为其中一个核心技术场景,平稳扛住了流量高峰期的v ) Z t考验。值得一提的是,由 Serverless 支撑的业务在流量高峰期的表现十分优秀,每分钟函数调用量接近两百万次。这再次验证了 Serverless 基础技术的价值,进一步拓展了技术场景。

业务场景

自主出行是高德地图的核心业务,涉及到用户出行相关的功能诉求,承载了高德地图 APP 内最大的用户流量。下图为自主出行R 7 # v核心业务中应用 Node FaaS 的部分场景,从左至右依次为:主图场景页、路线规划页、导航结束页。

高德最佳实践:Serverless 规模化落地有哪些价值?

随着功能的进一步拓展,高德地图从导航工具升级为出行l F Q J 7 , x a服务平台和生活信z j i息服务入口,进一步拓展了出行相关的生活信息服* ^ g S I + U Q务场景,带给用户更全面的用户体验。上图功能为场景推荐卡片,旨在根据用户出行意图推荐信息,提升用户出行体验。此功能需具备快速迭代,样式调整高灵活性的能力。因此,将卡片样式模版存放于云端,通过服务下发的形式渲染至! / U K D K客户端无疑为最优选择,可以满足业务快速灵活迭代的目k _ l ~ I W l J b的。

经过方案评估判断,此场景类型属于无状态服务,基于阿里云 Serverless 成熟的生态,高德最终选择接入 Node FaaS(阿里云函数计算)服务能力,出行前端搭建了场景推荐卡片服务。卡片的 UI 模版获取、数据请求聚合&逻辑+ y + w @ f g处理、拼接z z z 1 m Z生成 Schema 的能力均在 FE R Q 9 %aaS 层得到n l T实现,客户端根据服务下发的 Schema 直接渲染展示,达到更加` k + [ p t b j轻便灵活的目标

高德最佳实践:Serverless 规模化落地有哪些价值?

那么,Servg z rerless 场景在“十一出行节”峰值场景中的具体表现如何?

整体服务成功率均大于 99.99%,总计 100W+次触发/分钟,QPS 2W+,各场景的服务平均响应时间均在 60ms 以下,服务稳定性超出预期。

业务价值

从对以上业务场景的支撑中,我们可以看出 Serverless 的表现非常优秀。当然你也会问,传统的应用也能带来同样的体验,那么 Serverless 的T @ n o X F差异化价值又是什么呢?

1. 简单提效

传统 BFF(Back-n [ / bend For Front-end)层应用会随着时间推移,以及业务需求的增加, 其 BFF 层逐渐变 “富”, 冗余的代码逐渐变多,最后变成开发者的噩梦——A L X 6 E“牵一发而动全身”。随着人员迭代变化,模块的开发{ f w O z者也会变化,BFF 层就会慢慢变成一个无人知晓,无人敢动的模块。

当 BFF 层转换成 SFF (Serverless For Front-* 1 . ^ a 6 z T ]end) 层之后,会有什么变化?SFF 的职责会变的单一、零运维、R @ f / h J I成本更低,这些是 Serverless 本身自带的能力,而这些能力可以帮助前端进一步释放生产潜能。开发者不再需W e { n Q m A a要一个富 BFF 层,而只需一个接口或一个 SFF 就可以实现功能,天然解决了& . { h u a E“牵一发而动全身”的问题。如果接口停服或者没有流量,那么所用的实例会自动缩零,也就很容易分辨出是哪一个接x l Y C口函数,后期就可以删掉此接口的函数,有效提升资源利用率。

高德在 Serv` Q . 2 c I 6erless 应用上非常先进,实现了 FaaS 层与研发体系的完全对接,因此,应c W l x用从开发、测试、灰度、上线的全生命周期,A & ; Q J g到具备流控、弹性、容灾等标准化能力,y v *所用的时间较以前缩短了 40%,大大提高了人效。

高德最佳实践:Serverless 规模化落地有哪些价值?

2. 弹性以及成本

通过流量趋势数据,我们可以观察到地图场景流量特点z E b % j——高峰与低峰的落差十分明显。按照传统应用的资源准备,我们需要根据最高峰的流量进行资源准备,所以到了流量低峰期e ] + r 9 l . u K,多准备的机器会有很多冗余,这就造成了成本的浪7 9 {费。

针对以上情况,高德使用了阿里云函数计算,可以根据流量变化自动扩缩5 2 5 * / 5 K 2 7容。然而,提x C 4 9 B升扩缩容速度的复杂性较大,一直是大企业的{ - N ) 5 # T专属,但函数计算可以通过毫秒级别的启动优势,将快上快下的扩缩容能: T K r | . &力普及给用户,轻松帮助用户实现了计算资源的弹性利r V u用,并且大大降低了成本。

高德最佳实践:Serverless 规模化落地有哪些价值?
高德最佳实践:Serverless 规模化落地有哪些价值?

3. 可观测性

可观测性是应用上线诊断平台的必备属性,要让用户e a 2 G f观察到 RT 变化、资源的使用率、系统应用的全链路调用,从而快速诊断出系统应用的瓶颈问题。阿里云l Z 4 A E v h函数计算率先与日志服务、云监1 - ; N , J f N ~控、tracing 平台以及函数工作流编排做| n ; m | & n了完美的融合,用户 ] r Q [ lR l [需要配置一次,就可以完完整整的享受到以上这些功能,大大降低了用户的学习成本,实现了对应用程序的快速诊断。

高德最佳实践:Serverless 规模化落地有哪些价值?
高德最佳实践:Serverless 规模化落地有哪些价值?

Serverless 规模化落地的序幕已经拉开, 更多场景正在各行各业中解锁。Serverless 在高德的规模化落地,对于业务方来而言,业务迭代更快更灵活了,为业务创新创造了前提条件;对于前端开发者而言,进一步激活了开发者的生产潜能,提升了极大的能力自信。高德出行业务从 2020 年初的能力试点到“十一出行节”的自主出行核心场景,期间接入了阿里云函数计算,积累了非常宝贵的云原生落地经验,为未来业务整体上云打下了良好基础。

作者简介:何以然(以燃) 阿里巴巴前端技术专家,2016 年入职高德地图,目前负责高德出行业务研发以及 Serverless 相关技术落地