高德

Serverless作为高德出行的一个核心技术场景,平稳扛住了2020年的十一出行节流量高峰期的考验。值得一提的是,由Serverless支撑的业务在流量高峰期的表现十分优秀,每分钟函数调用量接近两百万次。这再次验证了Serverless基础技术的价值,进一步拓展了技术场景。

公司介绍

2020年的十一出行节期间,高德地图创造了记录——截止2020年10月01日13时27分27秒,高德地图当日活跃用户突破1亿,比2019年10月01日提前3时41分达成此记录。

客户需求

自主出行是高德地图的核心业务,涉及到用户出行相关的功能诉求,承载了高德地图App内最大的用户流量。自主出行核心业务中应用Node FaaS的部分场景,包括主图场景页、路线规划页和导航结束页等。

随着功能的进一步拓展,高德地图从导航工具升级为出行服务平台和生活信息服务入口,进一步拓展了出行相关的生活信息服务场景,带给用户更全面的用户体验。例如场景推荐卡片,旨在根据您的出行意图推荐信息,提升您的出行体验。此功能需具备快速迭代,样式调整高灵活性的能力。因此,将卡片样式模板存放于云端,通过服务下发的形式渲染至客户端无疑为最优选择,可以满足业务快速灵活迭代的目的。

解决方案

经过方案评估判断,此场景类型属于无状态服务,基于阿里云Serverless成熟的生态,高德最终选择接入Node FaaS(阿里云函数计算)服务能力,出行前端搭建了场景推荐卡片服务。卡片的UI模板获取、数据请求聚合与逻辑处理、拼接生成Schema的能力均在FaaS层得到实现,客户端根据服务下发的Schema直接渲染展示,达到更加轻便灵活的目标。在十一出行节峰值场景中,Serverless整体服务成功率均大于99.99% ,总计每分钟触发100万次以上,QPS达2万以上,各场景的服务平均响应时间均在60 ms以下,服务稳定性超出预期。

使用效果

从对以上业务场景的支撑中,可以看出Serverless的表现非常优秀。与传统的应用相比,Serverless有以下差异化价值:

  • 简单提效

    传统BFF(Back-end For Front-end)层应用会随着时间推移,以及业务需求的增加,其BFF层逐渐变富,冗余的代码逐渐变多。随着人员迭代变化,模块的开发者也会变化,BFF层就会慢慢变成一个无人知晓,无人敢动的模块。

    当BFF层转换成SFF (Serverless For Front-end) 层之后,SFF的职责会变的单一、零运维、成本更低,这些是Serverless本身自带的能力,而这些能力可以帮助前端进一步释放生产潜能。开发者不再需要一个富BFF层,而只需一个接口或一个SFF就可以实现功能,天然解决了牵一发而动全身的问题。如果接口停服或者没有流量,那么所用的实例会自动缩零,也就很容易分辨出是哪一个接口函数,后期就可以删掉此接口的函数,有效提升资源利用率。

    高德在Serverless应用上非常先进,实现了FaaS层与研发体系的完全对接。因此,应用从开发、测试、灰度、上线的全生命周期,到具备流控、弹性、容灾等标准化能力,所用的时间较以前缩短了40%,大大提高了效率。

    image
  • 弹性以及成本

    通过流量趋势数据,高德观察到地图场景流量特点——高峰与低峰的落差十分明显。按照传统应用的资源准备,高德需要根据最高峰的流量进行资源准备,所以到了流量低峰期,多准备的机器会有很多冗余,这就造成了成本的浪费。

    针对以上情况,高德使用了阿里云函数计算,可以根据流量变化自动扩缩容。然而,提升扩缩容速度的复杂性较大,一直是大企业的专属,但函数计算可以通过毫秒级别的启动优势,将快上快下的扩缩容能力普及给用户,轻松帮助用户实现了计算资源的弹性利用,并且大大降低了成本。

    gaode2gaode3

  • 可观测性

    可观测性是应用上线诊断平台的必备属性,要让用户观察到RT变化、资源的使用率、系统应用的全链路调用,从而快速诊断出系统应用的瓶颈问题。阿里云函数计算率先与日志服务、云监控、链路追踪平台以及函数工作流编排做了完美的融合。您只需要配置一次,就可以完整的享受到以上这些功能,大大降低了您的学习成本,实现了对应用程序的快速诊断。

    gaode4gaode5

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