亚马逊AWS官方博客

餐饮业的“过山车”与亚马逊云上的“智能驾驶”–美餐集团 Amazon Aurora Serverless v2 的应用实践与思考

1、引言

对于以企业员工为服务对象的在线订餐平台来说,每个工作日都像是坐上了一辆过山车 ——中午和晚上的业务高峰时段订单如潮水般涌来,而其他时段则相对平静。不过,到了周末,情况就有所不同:虽然午晚餐时段依旧是业务高峰期,但相较工作日,波动就显得“温柔”许多。从技术角度来看,这种“工作日剧烈波动、周末相对平稳”的负载模式,给资源的准确配置和管理带来了极大挑战。

对于国内领先的企业员工餐综合解决方案提供商美餐集团来说,业务的“过山车”特征更为明显。他们每天要为全国数千家企业的上百万上班族提供团餐服务,流量的高峰与低谷相差可达 10 倍以上。如何在保证服务质量的同时,有效管控资源成本,一直是美餐集团面临的巨大难题。美餐集团的日常业务量变化具体情况参见下图:

美餐集团一周业务量变化情况示意图

2、传统做法的困境

如果采用传统的预置实例模式,美餐不得不为应对高峰时段而超配大量资源,但在非高峰时段,这些资源就会极度浪费。另一方面,如果手动或依赖自动扩缩容工具来调节资源,不仅操作繁琐,且很难完全匹配业务实际波动,响应往往滞后,资源利用率低下。

面对这一困境,美餐迫切需要一种真正的按需、细粒度自动扩缩容解决方案。这种解决方案应当能够实时感知业务流量变化,精准调整资源配置,彻底解决资源浪费和响应滞后的问题,最大限度发挥资源利用效率,同时免去运维的手动操作负担,真正实现业务成本的可控和优化。

这就好比在过山车的高高低低间,企业需要一个“智能驾驶”来自动调节车速,提供恰到好处的动力输出,以避免因手动操作可能带来的风险。

3、Amazon Aurora Serverless v2 – 美餐“智能驾驶”数据库

作为一家注重技术创新的企业,美餐集团产品部一直在云原生技术领域保持前瞻性布局,紧跟行业发展趋势,及时吸纳业内最佳实践,为公司业务增长注入新动能。尽管团队规模不大,但所需管理的基础服务种类多达 80 余种,因此在评估新技术时,美餐会从客户服务角度出发,优先考虑可用性、服务质量和综合成本三大核心因素。

自 2016 年起,美餐集团产品部就在亚马逊云平台上积极部署创新技术,先后采用了 API Gateway 和 Lambda 无服务器计算服务。2019 年,他们上线了 ECS Fargate,2022 年又引入了 EKS Fargate。这些前沿云原生技术均具备动态扩缩容和简化运维等优势,与美餐业务发展的需求高度契合,有助于提升 IT 资源的利用效率,优化运营成本,并为应用交付提供更高的灵活性和可靠性。

随着企业的高速发展,业务系统也面临着日益复杂的数据挑战,传统数据库架构在应对高并发、动态波动负载等场景时,越来越暴露出了诸多瓶颈和局限性。然而,作为企业信息化关键核心基础设施,数据库对性能和稳定可靠性等有着极高的要求。因此,美餐启动了全面的验证计划,包括功能覆盖测试、稳定性能评估以及持续压力测试等,以确保 Aurora Serverless v2 与传统预置实例在功能完备性、性能表现和可靠性等层面。

0.5 ACU ~ 8 ACU Min ACU 动态扩展过程  预热后 Max ACU 稳态性能表现

经过多轮严格测试,结果显示 Aurora Serverless v2 不仅在功能覆盖和性能表现方面媲美同等规格的预置实例,更为重要的是,Aurora Serverless V2 的自动弹性扩缩容能力,可以根据实际工作负载动态调整计算和存储资源,在确保服务质量的同时,极大优化了资源利用效率,达成了服务质量和成本支出之间更加优秀的平衡。

如何提升扩容速度

Aurora Serverless v2 提供了动态弹性扩缩容的能力,可根据实际负载需求自动调整资源规模,最小容量配置为 0.5 ACU(对应 1GB 内存),最大可扩展至 128 ACU(对应 256GB 内存),以 0.5 ACU 为基本扩展单位,并按实际使用的 ACU 小时数进行按需付费。

在评估该功能时,美餐团队着重关注了 Aurora Serverless v2 的扩容响应速度问题。经测试发现,Aurora Serverless v2 在扩容速度方面表现出色,可实现秒级响应,且实际扩容速率与启动时的容量基线呈正相关关系。以最大容量(Max ACU)设定为 128 ACU 为例,如果一个 Aurora 实例的启动容量(Min ACU)为 0.5 ACU,另一个为 4 ACU,后者在遇到突发流量时的扩容速度将明显更快。这一扩容策略的本质是,启动容量越接近最大容量,扩容速度就越快,以满足高负载场景下对即时资源扩展的急切需求。同时,起始容量水平的设置也会影响综合成本的高低。

结合餐饮业务流量的明显波峰波谷特征(峰值流量可达谷值的 10 倍),美餐团队采用了触发式干预与自动扩容相结合的混合策略,以期在保证服务质量的同时最大限度降低成本开支。

具体做法是,他们通过 EventBridge 与 Lambda 的无服务器集成,对 Aurora Serverless V2 实例进行提前扩容速度管控。在预计流量高峰来临之前,会主动触发 Lambda 调用,提高 Aurora 实例的最小资源容量基线,以确保能够快速扩容应对即将到来的大流量:过峰之后,Aurora 实例会自动缩减至最低规格,实现真正按需、精细化的弹性伸缩,避免了资源浪费。

该混合策略的关键是提前预判,并主动调整 Aurora 实例的启动容量基线,使其能够快速扩容响应突发流量,满足高峰期的服务需求;同时在闲时将容量缩减至最低水平,削减开支。通过自动化与人工干预的合理结合,不仅确保了业务的服务质量,也有效控制了成本支出,充分发挥了 Aurora Serverless V2 的弹性优势。

容量预热,在流量激增前通过 EventBridge 触发 Lambda 调大 Min ACU

快速扩容过程中的数据预热

在确认 Aurora Serverless v2 的资源容量配置能够满足业务需求后,美餐团队着手将其推向线上生产环境进行实际应用。初期运行过程中,虽然 Aurora Serverless v2 能够按需动态扩容至预期的容量水位,但美餐团队发现在遇到突发业务流量情况时,读请求的响应时间在最初的短暂时间内出现了明显下降,之后才逐渐恢复正常并符合预期的服务质量水平。经过全面分析,美餐团队发现导致这一短暂服务质量下降的根本原因在于关系型数据库引擎的缓冲池在遭遇突发大流量时,早期尚未完成数据缓存加载。由于缓存未命中,最初的一批读请求需要产生较多的磁盘 I/O 操作,从而导致了响应时间的短暂下降,影响了整体的服务质量表现。

为进一步提升读请求的服务质量,确保在突发流量场景下也能保持稳定的高性能,美餐团队采取了一项主动优化措施:在 Lambda 完成对 Aurora Serverless v2 实例的最小资源容量调整后,主动运行一系列常用查询语句,对冷数据进行提前加载,从而实现数据缓存的提前预热。这一方法不仅能提升数据缓存命中率,还能确保计算资源与实际负载需求保持及时匹配,有效规避了类似的服务质量短暂下降问题。

该优化举措不仅显著优化了 Aurora Serverless v2 在突发流量场景下的响应时间表现,也进一步验证和巩固了该服务在美餐的线上生产环境中的高可用性和稳定性,为其大规模应用奠定了坚实的技术基础。

基于 Aurora 的数据库混合架构

美餐集团采用了 Aurora 混合架构模式,合理整合预置实例和无服务器实例的优势。其中,Aurora 预置实例承载稳态服务,确保关键工作负载的高可用性和性能稳定性;而 Aurora Serverless v2 则弹性部署于周期性负载场景,实现计算资源的动态调配和精准匹配业务需求。该混合架构模式实现了资源池按需伸缩,有效降低了总体运维成本,提升了资源利用效率。

从实践路径上,鉴于美餐集团生产数据库采用主备高可用集群架构,为降低风险,美餐首先将次要业务应用 2 集群的只读副本(Read Replica)迁移至 Aurora Serverless v2 实例以作为先行试点,并随后进一步将核心业务应用 1 集群的只读实例替换为 Aurora Serverless v2 实例。目前,绝大部分 Aurora 集群中的只读实例以及部分主实例已顺利迁移至 Aurora Serverless v2。分步骤、循序渐进的迁移方式,为美餐集团最大限度规避风险夯实了基础。

美餐 Aurora 混合部署架构图

4、收益

截至目前,美餐集团通过将集群中部分预置实例迁移至 Aurora Serverless v2,工作日集群账单成本较原预置实例环境降低 30% 以上,周末成本则降低 50% 以上。除自动触发集群预热机制外,美餐未对该集群投入额外人力进行管理监控。由于最大设置到 128 ACU,相较于预置环境,集群的容量扩展空间提升了一倍,且在整个弹性扩缩容过程中,数据库无需停机即可顺利完成。根据业务负载和集群容量分析,预计至少还有 33% 的预置资源可被缩减,并最终实现美餐在采纳 Aurora Serverless v2 架构之初所设定的目标:在确保系统可用性和服务质量的前提下,将综合运维成本降至最小,为业务的长期增长注入源源不断的新动能。

应用 Aurora Serverless v2 的收益

5、附录

关于 Amazon Aurora Serverless v2

Amazon Aurora Serverless v2 是 Amazon Aurora 的一种按需自动扩展配置版本,能够根据应用程序的实际需求动态调整计算和内存资源,实现无缝扩展和收缩,无需手动管理任何数据库实例。它具备以下优势:1、动态弹性伸缩,可在不到一秒内扩展至数十万笔交易处理能力,精准匹配应用负载;2、适用于多种场景,包括业务周期波动、批量作业、开发测试环境、微服务等;3、按需付费模式,仅为所使用资源付费,有效降低数据库总体拥有成本;4、自动化运维,免去数据库容量规划和实例管理的运维开销。Aurora Serverless v2 通过云原生架构和按需扩缩容技术,为企业带来前所未有的敏捷性和经济性,是实现数字化转型的绝佳基础设施选择。

关于美餐集团

美餐集团创立于 2011 年,是全国领先的企业级餐饮综合解决方案运营商,目前已成为国内最大的行业数字化团餐平台。美餐集团服务全国 4000+ 企业客户,合作商户规模突破 30000+,日均服务人次 1,900,000 人次。美餐的使命:竭尽全力,专注于每一个细节,让产品更好用,让服务更贴心,致力于创造更好的用户使用体验,帮助企业提升员工幸福感。

本篇作者

黄岩硕

美餐首席研发工程师,主要负责云原生平台的建设及基础设施的运维。具有先进的开发理念,持续提升产品质量和开发效率。目标是打造业内领先的技术实力,为用户提供卓越的体验。

马梁

美餐首席研发工程师,主要负责 AWS 云上基础设施的建设及运维。专注于构建高性能、高可用的系统架构,优化成本的同时,带领团队不断创新,推动技术积累和创新,助力公司在激烈市场竞争中取得更大成就。

张靖宇

亚马逊云科技 RDS 数据库产品经理,具有丰富的关系型数据库和大规模数据库架构经验,对互联网和金融业态有深入理解。

贾晓梅

亚马逊云科技数据库产品经理。在企业架构、数据库等领域有丰富经验。先后供职于 Oracle、SAP 等大型 IT 公司。

杨昌君

亚马逊云科技解决方案架构师,曾服务于某 IDC&云服务提供商。拥有数据中心,互联网,云计算技术等经验,2021 年加入 AWS,负责零售,快消,餐饮等行业,多年服务于零售快消行业。擅长 CI/CD,Devops 等技术。

章平

亚马逊云科技数据库架构师。2014 年起就职于亚马逊云科技,先后加入技术支持和解决方案团队,致力于客户业务在云上高效落地。对于各类云计算产品和技术,特别是在数据库和大数据方面,拥有丰富的技术实践和行业解决方案经验。此前曾就职于 Sun,Oracle,Intel 等 IT 企业。