AI智能总结
姓名:李景康 个人简介 李 景 康 去 哪 儿 测 试 高 级 经 理 •2018年加入去哪儿旅行,负责酒店供应链的质量保障工作。•期间负责酒店测试环境3.0设计和实践,并推动公司级落地推广。对环境治理有深入的理解和实践经验 预发平台背景 目录 预发平台落地实践 未来展望 预发平台背景 预发平台背景 挑战:质量的要求日益严格,机遇 旅游行业规模的不断扩大 挑战挑战 对于系统稳定性的要求日渐严格,每一次故障/问题都会造成大量损失对于系统稳定性的要求日渐严格,每一次故障/问题都会造成大量损失 预发平台背景-变更风险问题 变更和故障紧密相连:SRE的经验告诉我们,70%的生产事故由某种部署的变更而触发 --<<SRE:Google运维解密>> 根据统计来看从配置到基础层变更1.变更频率降低2.变更影响变高 预发平台背景-变更风险问题典型案例 网络安全公司“众击”(CrowdStrike)的一次技术更新失误,导致微软蓝屏事件 影响范围大:1.影响范围扩散到全球2.涉及民航、医疗、金融机构 问题损失大:经济损失超过10亿美元 预发平台背景-如何降低变更问题风险 如何降低变更问题风险? 预发平台背景-降低变更风险 预发平台目标是降低变更风险,通过控制影响范围和合理评估影响范围来降低变更风险,最终提高系统稳定性 •从百分比流量控制(用户随机)->用户维度流量控制 变更链路完整性(影响范围评估) •从单模块灰度->全链路灰度•避免单个变更影响范围评估不全的问题 变更链路可观测性(发现定位问题) •链路可视化•监控预警•日志预警 预发平台价值 01.人 用户:稳定的用户体验开发和测试:预发验证提前发现问题并降低变更风险 03.系统 02.流程 预发变更风险控制:从变更流量控制精细化和链路完整性提升两个方向上优化变更流程,降低变更风险 通过流程优化,降低变更风险,保障系统稳定 预发平台原理和设计 2.1预发平台整体方案2.2预发平台变更流量控制-流量染色方案2.3预发平台变更链路完整性-流量路由方案2.4预发平台可观测性方案 预发平台整体方案 预发平台-流量染色方案 流量染色目标给用户流量打标,保证后续路由的正确性 预发平台-流量染色方案选型 预发平台-流量路由方案 硬路由(物理隔离) 物理层面和线上环境隔离,冗余部署中间件和流量网关 软路由(逻辑隔离) 逻辑上的环境隔离,通过流量网关和中间件转发 预发平台-流量路由方案选型 硬路由方案(物理隔离) 软路由方案(逻辑隔离) 方案简述;物理层面和线上环境隔离,冗余部署中间件和流量网关1.技术改造成本高,平台侧无改动,业务应用有改造成本,随着应用增多剧增(全司活跃应用3000+)2.资源成本高,资源成本高,需要支持3000+应用资源成本和中间件资源成本3.拓展成本高,拓展新应用,需要额外投入改造成本4.维护成本高,单独维护硬路由环境,需要持续投入维护 方案简述;逻辑上的环境隔离,通过流量网关和中间件转发1.技术改造成本中,有技术改造难度,但平台一次性改造成本,业务应用无需修改2.资源成本低,使用平台按需拉取模块和应用3.拓展成本低,拓展新应用,无需额外投入改造成本4.维护成本低,环境维护跟随项目周期,不需要长期维护 预发平台-流量路由方案-OpenResty改造方案详解 核心动作 Ø服务感知 •预发环境构建时进行预发OR注册 Ø服务路由 •集群转发:根据染色标记,转发到OR预发集群•规则匹配:转发到匹配的预发环境/缺省时转发线上环境 预发平台-流量路由方案-中间件dubbo改造方案详解 核心动作 Ø服务感知 •provider端根据环境变量,在zk注册预发平台环境 Ø服务路由 •consumer端根据染色标识,判断和选择对应环境 预发平台-可观测性方案 背景:传统百分比灰度方案,监控,报警和线上一致,往往在小流量场景时,不能及时发现和定位问题目标:通过可观测性方案,提升预发环境的问题发现、定位能力 预发平台-可观测性方案-系统/业务问题发现机制 预发平台-可观测性方案-链路排查可视化 背景:在预发平台引入后,线上环境增加了一种环境类型,链路排查的复杂性随着增加解决:通过qtracer客户端和展示改造,在链路中区分预发环境和线上环境,方便问题排查定位 路由信息可视化 qtracer客户端改造:1.将header中的染色标识写入qtracecontent,后续透传染色标识2.同时将染色标识写入本地日志 链路可视化 qtracer平台拓扑展示改造:1.环境拓扑展示时,识别预发环境环境名prepare-grey-xx,在拓扑中展示2.将染色标识在qtracecontent中展示 预发平台-可观测性方案-链路排查可视化 背景:在预发平台引入后,线上环境增加了一种环境类型,链路排查的复杂性随着增加解决:通过qtracer客户端和展示改造,在链路中区分预发环境和线上环境,方便问题排查定位 预发平台落地实践 3.1预发平台使用和效果3.2预发平台典型案例 预发平台-平台使用-嵌入项目流程 适用于重要变更项目(影响范围大,风险性高),通过预发环境验证,提前发现问题,降低变更风险 预发平台-平台使用-准入标准 预发环境是特殊的线上环境,使用标准除了项目上线的质量门禁,还会应用准入校验(保证安全性和可用性) 预发平台-平台使用-环境交付流程 交付流程:通过自动化工作流的方式,进行环境编排,提升使用效率,降低使用成本 环境构建 预发平台-平台使用-多入口支持 预发平台-平台使用-风险预案(一键回退) 一键回退:支持快速回退,通过一键回退机制,能比传统发布回滚,更快降低变更影响 预发平台-平台使用-使用效果 发现问题&风险 通过预发平台验证流程,发现问题和风险13个,降低整体变更风险 预发平台-典型案例-基础层变更案例(OR升级项目) 在进行核心流量网关升级时,通过增加预发验证环节,进行uid级别灰度验证,进一步降低变更风险 预发平台-典型案例-混沌演练案例 预发平台能力复用:通过使用预发平台机制(流量染色和路由),提高演练有效性的同时,降低演练风险 未来展望 04 未来展望-预发平台数据隔离 预发平台数据隔离:降低预发验证过程中的数据污染风险 未来展望-预发平台质量体系建设 以预发平台为载体,构建预发平台质量体系建设 预案演练 通过使用预发平台,提高预案演练有效性的同时,降低演练风险险 自动化测试 通过预发平台真实的链路和数据进行自动化测试回归,降低变更风险 性能测试 在预发验证流程中,增加自动化性能测试,保障核心变更后整体链路的性能 T h a n k s 荣誉出品