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

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 本文主要介绍了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


相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
10天前
|
人工智能 Serverless 数据处理
极速启动,函数计算弹性降本能力再升级
在数字化转型的大潮中,云计算成为推动创新和优化业务流程的关键力量。作为阿里巴巴集团的核心产品之一,函数计算(Function Compute)引领着 Serverless 计算的新时代。本文将深入探讨函数计算如何通过技术革新实现提效降本,以及其在 AI 业务、数据处理和 Web 应用等多个领域的广泛应用。
|
1月前
|
分布式计算 大数据 Serverless
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
在2024云栖大会开源大数据专场上,阿里云宣布推出实时计算Flink产品的新一代向量化流计算引擎Flash,该引擎100%兼容Apache Flink标准,性能提升5-10倍,助力企业降本增效。此外,EMR Serverless Spark产品启动商业化,提供全托管Serverless服务,性能提升300%,并支持弹性伸缩与按量付费。七猫免费小说也分享了其在云上数据仓库治理的成功实践。其次 Flink Forward Asia 2024 将于11月在上海举行,欢迎报名参加。
178 1
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
|
30天前
|
存储 消息中间件 人工智能
ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用
本文整理自2024年云栖大会阿里云智能集团高级技术专家金吉祥的演讲《ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用》。
|
2月前
|
Cloud Native 关系型数据库 Serverless
基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
本文带大家了解一下如何使用阿里云Serverless计算产品函数计算构建生产级别的LLM Chat应用。该最佳实践会指导大家基于开源WebChat组件LobeChat和阿里云函数计算(FC)构建企业生产级别LLM Chat应用。实现同一个WebChat中既可以支持自定义的Agent,也支持基于Ollama部署的开源模型场景。
392 17
|
2月前
|
弹性计算 关系型数据库 Serverless
告别资源瓶颈,函数计算驱动多媒体文件处理方案:https://www.aliyun.com/solution/tech-solution/fc-drive-file
本文介绍了一种基于阿里云的一键部署解决方案,利用云服务器ECS、RDS MySQL、OSS、函数计算FC及MNS等服务,实现高效的多媒体文件处理。方案通过事件驱动机制,将文件处理任务解耦,并自动弹性扩展,按需付费,简化部署流程,提高处理效率。本文还提供了详细的部署步骤与体验反馈,展示了从配置到文件处理的全过程。
|
3月前
|
弹性计算 Kubernetes 安全
Kubernetes 的架构问题之在Serverless Container中保障应用的安全防护如何解决
Kubernetes 的架构问题之在Serverless Container中保障应用的安全防护如何解决
153 8
|
3月前
|
存储 弹性计算 Serverless
函数计算驱动多媒体文件处理方案评测体验分享
近期参与了函数计算处理多媒体文件的评测。阿里云提供了丰富的文档资源,覆盖实施全流程,适合新手上手;但部分配置细节说明不足,有待完善。示例代码优质且实用,便于学习与二次开发。函数计算展现出良好的性能与稳定性,并采用按需计费模式,有助于企业节省成本。配合阿里云生态中的其他产品,如云数据库与云存储,能有效提升多媒体文件处理的整体效能。
71 10
|
6月前
|
人工智能 弹性计算 Serverless
函数计算 3.0 版本升级
【4月更文挑战第2天】函数计算 3.0 版本升级
31 2
|
6月前
|
监控 架构师 Serverless
函数计算再升级,脱胎换骨出新意
作为一个解决方案架构师,我每天的工作几乎都会用到函数计算,用其来自动检测Web应用的一些页面数据、定时任务、视频转换等等。那么说到函数计算,大家是否能够清晰的说出函数计算是什么,用其来做什么呢? 首先让我们首先来明确一下函数计算的概念,按照阿里云官方网站对于函数计算3.0的一个个产品简介: “函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码或镜像。函数计算为您准备好计算资源,弹性地、可靠地运行任务,并提供日志查询、性能监控和报警等功能。”
102873 14
函数计算再升级,脱胎换骨出新意
|
6月前
|
消息中间件 存储 Cloud Native
阿里云消息产品全面升级为 ApsaraMQ,并发布 Serverless 版,助力企业降本
阿里云消息产品全面升级为 ApsaraMQ,并发布 Serverless 版,助力企业降本
62522 6

热门文章

最新文章

相关产品

  • 函数计算