简介:2020 年的“十一出行节”期间,高德地图创造了记录 ——截止 2020 年 10 月 1 日 13 时 27 分 27 秒,高德地图当日活跃用户突破 1 亿,比 2019 年 10 月 1 日提前 3 时 41 分达成此记录。 期间,Serverless 作为其中一个核心技术场景,平稳扛住了流量高峰期的考验。值得一提的是,由 Serverless 支撑的业务在流量高峰期的表现十分优秀,每分钟函数调用量接近两百万次。这再次验证了 Serverless 基础技术的价值,进一步拓展了技术场景。

客户介绍

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

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

客户痛点

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

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

解决方案

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

使用效果

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

  1. 简单提效

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

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

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

  1. 弹性以及成本

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

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

  1. 可观测性

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

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

原文链接:https://developer.aliyun.com/article/783386?

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

函数计算助力高德地图平稳支撑亿级流量高峰相关推荐

  1. 大型电商网站详情页是如何支撑亿级流量访问的?

    作者:老顾 https://www.toutiao.com/i6671093883025228301/?group_id=6671093883025228301 目录 前言 方案一:网页静态HTML化 ...

  2. 大型电商网站的页面静态化方案是如何支撑亿级流量的?

    前言 我们小伙伴们在访问淘宝.网易等大型网站时有没有考虑到,网站首页.商品详情页以及新闻详情页面是如何处理的?怎么能够支撑这么大流量的访问呢? 很多小伙伴们就会提出他们都采用了静态化的方案,这样用户请 ...

  3. 我是如何一步步让公司的MySQL支撑亿级流量的?

    1 主从读写分离 大部分互联网业务都是读多写少,因此优先考虑DB如何支撑更高查询数,首先就需要区分读.写流量,这才方便针对读流量单独扩展,即主从读写分离. 若前端流量突增导致从库负载过高,DBA会优先 ...

  4. 我是如何一步步让公司的MySQL支撑亿级流量的

    1 主从读写分离 当我们面临高并发的查询数据请求时,可以使用主从读写分离的方式,部署多个从库分摊读压力. 大部分互联网业务都是读多写少,因此优先考虑DB如何支撑更高并发查询,首先就需要区分读.写流量, ...

  5. 亿级流量系统架构之如何支撑百亿级数据的存储与计算

    "本文聊一下笔者几年前所带的团队负责的多个项目中的其中一个,用这个项目来聊聊一个亿级流量系统架构演进的过程. 一.背景引入 首先简单介绍一下项目背景,公司对合作商家提供一个付费级产品,这个商 ...

  6. 亿级流量系统架构之如何支撑百亿级数据的存储与计算【转载 石杉的架构笔记】-1...

    亿级流量系统架构之如何支撑百亿级数据的存储与计算[石杉的架构笔记] 原创: 中华石杉 "本文聊一下笔者几年前所带的团队负责的多个项目中的其中一个,用这个项目来聊聊一个亿级流量系统架构演进的过 ...

  7. 高德亿级流量接入层服务的演化之路

    来自:高德技术 阿里巴巴资深技术专家孙蔚在高德技术专场做了题为<高德亿级流量接入层服务的演化之路>的演讲,主要分享了接入层服务在高德业务飞速发展过程中,为应对系统和业务的各方面挑战所做的相 ...

  8. 互联网资讯早报:微店宣布打通微博小店,助力千万商家对接亿级流量....

    行业热点 1.微店宣布打通微博小店,助力千万商家对接亿级流量: 2.字节跳动推出线下实体"松果门诊", 构建互联网医疗生态闭环: 3.英国提新法案:使用华为等设备企业每天罚款10万 ...

  9. 微信支撑10亿用户背后核心技术:亿级流量Java并发与网络编程实战

    大家可能不知道,支撑微信10亿用户之后,最基础也是最核心的技术是什么?那就是网络编程. 越是大型互联网通讯项目,越是对网络编程的落地要求越高.落地,意味着对实战的要求更高. 所以,一些朋友更喜欢用类似 ...

最新文章

  1. groupby+(apply+agg+transform)方法的比较
  2. 20172328 2018-2019《Java软件结构与数据结构》第八周学习总结
  3. 第一天开通博客,记录自己在编程道路上的点点滴滴
  4. 二分查找(等于x,小于x,小于等于x,大于x,大于等于x )
  5. [vue-cli]怎么使用vue-cli3创建一个项目?
  6. mysql hugepage_因未配置Hugepage会话数添增悲剧案例
  7. 如何做WP的登录/注册功能
  8. 何为软件的Alpha、Beta、RC和GA发布版本?
  9. TCP/UDP压力测试工具
  10. 嵌入式软件可靠性设计
  11. Android,java敏感词,QQ,微信自动过滤组件
  12. 易语言 超文本浏览框
  13. Elasticsearch牛逼了! 这份携程、滴滴、今日头条、饿了么、360、小米、Vivo 应用实践合集都在这儿了...
  14. 王者荣耀在android目录下的名字,王者荣耀名字空白代码怎么弄_名字空白代码设置方法...
  15. python全套教程百度云-老男孩python全套视频教程百度云资源下载
  16. HttpRequest 介绍
  17. UVA207 ac心得
  18. iOS 像素图转高清大图
  19. 小学生都能学会的Python基础语法——代码规范判断语句循环语句
  20. 规划IBM Spectrum Scale

热门文章

  1. SpringBoot Controller接收参数的几种常用方式
  2. BAT大佬给的Python神器,内附资源
  3. Java后台管理系统,开箱即用
  4. ​一网打尽 Linux 必备技能,就靠它了!
  5. 又跌!6月全国程序员工资新统计,太扎心
  6. 一个程序员写多门语言不会记串么?
  7. 整理一份程序员常用的各类工具、技术站点
  8. Python 3 开发钉钉群机器人
  9. 2019 序列号_抖音发布2019年度报告;苹果序列号;熊猫互娱进入破产程序
  10. 九章算法班L5 Linked List