淘宝首页serverless升级后的质量保障方案

简介: 本文主要介绍了serverless 架构升级在淘宝首页的应用,新架构对底层所依赖的容器、环境资源等与之前相比差异较大,并且对应的预发、安全生产、生产等环境,与旧架构的完全隔离。

背景


阿里巴巴集团大淘宝技术全面推进云原生2.0战役——serverless 架构升级,此次升级不仅可以帮助业务提升效率,也可以降低业务资源成本。淘宝首页作为响应此次战役的第一个试点业务,是否可以平稳升级,决定了后续其他业务的升级工作是否可以顺利进行。因此,首页侧的质量保障工作变得尤为重要。

系统改造方案

此次升级不仅涉及接入层以及上层业务的代码改造,也涉及底层链路的改造。新架构对底层所依赖的容器、环境资源等与之前相比差异较大,并且对应的预发、安全生产、生产等环境,与旧架构的完全隔离。首页侧作为上层应用,拟从三个方面进行改造,分别是业务代码改造、发布流程改造和切流方式改造。

 业务代码改造


首先需要在新环境上抽出业务基座层,并将部分业务二方包下沉到业务基座层。其次是改造mvn profile功能,支持一套代码能够同时运行于新旧环境(新环境代指serverless环境,旧环境代指改造前的非serverless 环境)中,且两类环境可以分别部署不同的二方包,实现依赖隔离。此外,依赖隔离时,也需要变更bean的初始化配置。


 发布流程改造


将从切流前,切流中和切流后三个环节进行改造。切流前支持新旧环境使用各自流水线进行独立发布,切流中实现单流水线向双环境发布,切流完成后流水线仅保留向新环境发布的环节。


 切流方式改造


从老架构过渡到新架构需要灰度放量,对应实现方式为接入层切流。本次切流,底层依赖集团内部切流系统,新旧环境分别使用不同的应用分组,而不同应用分组又绑定不同的集群KEY,统一接入层通过路由到不同的集群KEY实现流量控制。


从上述改造思路可以看出,本次改造范围较广,对业务稳定性影响较大。因此,在测试过程中需要尽可能覆盖所有的场景,确保改造后的业务功能可以正常如初。首页后端系统,本次升级改造架构图如下:

image.png

风险分析


本次架构升级具有高度不确定性,影响面未知,需要全回归验证,尽可能覆盖所有的业务场景。此外,由于涉及底层链路的改动,而底层测试具有局限性,因此也需要依赖上层业务进行全链路验证。基于首页精细化运营的特点,覆盖所有业务场景几乎是一件不可能的事情,且首页业务沉淀多年,历史包袱较重,包含大量复杂的业务场景。



质量保障方案


鉴于上述风险分析,从保障稳定性、减少核心业务损失以及降低测试成本等因素综合考虑,基于全流程层层拦截是一种有效的手段。在线下环节尽可能保证业务的全面覆盖,在上线后通过细致的数据观察来做后续的放量决策。放量过程中如果发现问题,可以通过切流的方式实现快速回滚。整体测试保障流程如下:


image.png

 预发验证阶段


  1. 核心功能梳理、验证——主要对核心功能以及下沉二方包涉及的业务场景进行梳理并验证。
  2. 录制回放——通过录制回放辅助验证遗漏的业务场景。


首页版面本质是基于多业务组件(卡片)组合而成,升级后可能会引发一些潜在问题,比如某类卡片缺失造成无法在淘宝透出;透出时缺少一些利益点,ui信息;或者点击无法跳转,点击时业务埋点参数丢失等,如下图所示。此类问题可能在逐步切流过程中导致相关业务曝光减少,ctr降低,功能无法正常使用等。若依赖人工回归这些内容,可能无法100%覆盖且耗时较长,性价比极低。为此,在预发阶段使用录制回放,从线上引流,然后在新旧环境分别回放,通过对比结果进行验证。

image.png

但是,采用这种方式又面临两个问题:一是淘宝通用录制回放工具平台无法支持指定两个IP进行回放,然后对回放结果进行对比;二是首页对比规则是基于业务特性产生的,较复杂,平台侧无法较好支持。

image.png

 发布阶段


  1. 加白验证——通过加白名单方式对核心业务场景进行再次验证。
  2. 录制回放——利用录制回放能力并行验证。此时,录制回放流程与预发验证的有所差异,改为从线上引流后,直接在serverless进行回放与对比。
  3. 单机压测——切流前,需要对新旧环境的各项参数指标进行压测对比,将新环境的各项参数调至最优,以减少机器差异造成的影响。压测方案如下:
    压测环境:隔离环境,通过在header中增加标识,分流到新老不同架构
    接口选择:选择首页主接口和购后信息流两个主接口(主接口和购后信息流是首页访问量最大的两个接口,比较具有代表性)
    压测步骤:两套隔离环境同步压测,观察各项系统指标


image.png

灰度期间,如何保障大促例行化压测?


切流过程较长,期间会叠加大促场景,而大促前需要对集群进行例行化压测摸底。初次切流后压测,可能会存在一些潜在问题。首页作为流量入口层,很多下游业务的压测流量都对其有依赖,首页压测出现问题时,会对下游的压测实施产生影响。因此我们需要确保新环境压测出现问题后不影响原有压测计划继续执行。

综合考虑,最终采用双环境压测隔离方式,如下图所示。构造两套压测模型供新旧环境使用,旧环境按照100%流量压测,新环境根据流量比例压测 。当新环境压测出现问题时,停止即可,而旧环境可以继续执行压测。

image.png


相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
11月前
|
消息中间件 存储 弹性计算
云端问道13期方案教学-告别资源瓶颈,函数计算驱动多媒体文件处理
《云端问道13期方案教学》由阿里云技术团队周博宇主讲,聚焦如何使用函数计算突破资源瓶颈,高效处理多媒体文件。方案涵盖六大要点:寻找云需求解决方案、选择函数计算的原因、对比不同文件处理方式、实现多媒体文件处理、应用场景广泛性及优惠购买推荐。通过将文件处理从主应用拆分,利用函数计算的按需扩展和自动弹性特性,确保核心业务稳定,并大幅降低成本。适用于图片、视频处理等多种场景。
163 1
云端问道13期方案教学-告别资源瓶颈,函数计算驱动多媒体文件处理
|
8月前
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
754 69
|
消息中间件 运维 安全
C5GAME 游戏饰品交易平台借助 RocketMQ Serverless 保障千万级玩家流畅体验
游戏行业蓬勃发展,作为国内领先的 STEAM 游戏饰品交易的服务平台,看 C5GAME 如何利用 RocketMQ Serverless 技术,为千万级玩家提供流畅的游戏体验,同时降低成本并提升运维效率。
666 134
C5GAME 游戏饰品交易平台借助 RocketMQ Serverless 保障千万级玩家流畅体验
|
存储 消息中间件 人工智能
ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用
本文整理自2024年云栖大会阿里云智能集团高级技术专家金吉祥的演讲《ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用》。
478 96
|
9月前
|
人工智能 Cloud Native Serverless
Serverless Devs 官网全新升级,Serverless+AI 重磅来袭
Serverless Devs 官网全新升级,Serverless+AI 重磅来袭
174 3
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
企业级API集成方案:基于阿里云函数计算调用DeepSeek全解析
DeepSeek R1 是一款先进的大规模深度学习模型,专为自然语言处理等复杂任务设计。它具备高效的架构、强大的泛化能力和优化的参数管理,适用于文本生成、智能问答、代码生成和数据分析等领域。阿里云平台提供了高性能计算资源、合规与数据安全、低延迟覆盖和成本效益等优势,支持用户便捷部署和调用 DeepSeek R1 模型,确保快速响应和稳定服务。通过阿里云百炼模型服务,用户可以轻松体验满血版 DeepSeek R1,并享受免费试用和灵活的API调用方式。
629 12
|
Cloud Native 关系型数据库 Serverless
基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
本文带大家了解一下如何使用阿里云Serverless计算产品函数计算构建生产级别的LLM Chat应用。该最佳实践会指导大家基于开源WebChat组件LobeChat和阿里云函数计算(FC)构建企业生产级别LLM Chat应用。实现同一个WebChat中既可以支持自定义的Agent,也支持基于Ollama部署的开源模型场景。
1721 117
|
12月前
|
SQL 存储 缓存
EMR Serverless StarRocks 全面升级:重新定义实时湖仓分析
本文介绍了EMR Serverless StarRocks的发展路径及其架构演进。首先回顾了Serverless Spark在EMR中的发展,并指出2021年9月StarRocks开源后,OLAP引擎迅速向其靠拢。随后,EMR引入StarRocks并推出全托管产品,至2023年8月商业化,已有500家客户使用,覆盖20多个行业。 文章重点阐述了EMR Serverless StarRocks 1.0的存算一体架构,包括健康诊断、SQL调优和物化视图等核心功能。接着分析了存算一体架构的挑战,如湖访问不优雅、资源隔离不足及冷热数据分层困难等。
|
9月前
|
存储 消息中间件 人工智能
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
211 0
|
11月前
|
人工智能 Cloud Native Serverless
Serverless Devs 官网全新升级,Serverless+AI 重磅来袭
Serverless Devs 官网迎来全新升级,主站以 AI 应用开发的叙事透出项目特性和解决方案。应用中心(Registry)将各类热门 AI 应用模版、实用 AI 工具以及 AI 工作流等呈现给用户。本次升级主题为“一站式 AI/函数/应用开发”,希望为开发者提供更加便利的应用模版搜索和展示服务,本文将对本次升级的三大看点进行整理,欢迎您来体验!

热门文章

最新文章

相关产品

  • 函数计算