酒店测试环境 V3.0 设计和实践

本文介绍了去哪儿旅行在测试环境3.0阶段的设计与实践,通过软路由机制提升了交付效率,同时确保了环境稳定性和业务连通性。通过智能数据推荐实现数据隔离,基准环境保障计划确保基础可靠性,业务检查工具提升问题定位速度。未来展望中,将进一步优化同步机制和业务检查自动化,探索Test in Production的可能性。
摘要由CSDN通过智能技术生成

 、背景

去哪儿旅行非常重视测试环境治理,提高开发和测试人员的使用效率。从  2018 年就开始了测试环境治理和优化之路,到目前为止总共进行了三轮环境治理和优化。

1. 测试环境1.0

环境 1.0 中使用的固定环境,总共有十台固定机器组成,每台机器部署全链路的环境,但随着业务不断发展,原有环境已经不能满足需求:

  • 随着微服务越来越多,人工在 beta 机器上维护越来越难;

  • 环境有限,经常出现环境争抢,导致环境使用效率低下。

2. 测试环境2.0

测试环境 2.0 使用了基础研发自研的 noah 环境管理系统(下面简称 Noah ),通过模板化解决测试环境微服务应用的管理问题。所有环境信息(应用配置,数据库,配置)都在模板中维护。

需要创建环境时,使用最新的模板数据构建全新环境:

  • 创建环境速率的提升,从配置一套固定环境的几天到 noah 拉起一套酒店环境 30 分钟左右(整个环境约 200+ 服务(应用+数据库/ redis / es ));

  • 随着环境交付速率提升,每个项目可以单独创建一套环境,减少环境争抢和干扰现象。

3. 测试环境3.0

测试环境 2.0 在同规模环境管理/创建方面已经做到行业前列,在 2021 年进行环境效率摸底,收集环境使用痛点问题,准备进行下一轮优化。

问题主要有:

  • 排查问题很难,全链路的问题排查耗费时间长;

  • 测试环境机器服务容易宕机;

  • 创建环境是不是能更快一点,等待时间还是有点长。

将大家使用遇到的痛点问题归纳成三类问题(交付效率,基础可靠性,业务连通性):

二、环境 3.0 设计

1. 交付效率如何提升

1.1 交付效率提升分析

在环境 2.0 阶段,酒店同规模环境创建速率已经达到行业前列(200模块/30分钟交付)。

如果想进一步提高环境交付速率,有两种思路:

  • 提升单个模块构建时间;

  • 降低模块规模。

第一个方案,和基础研发同学分析一下,单个模块的时间优化空间不大(投入时间长收益较少), 最终我们选择从第二个思路开始优化,是否能够降低单个环境的应用规模。

而在实际项目中,项目环境其实并不需要全部模块,我们可以让项目环境按需拉取所需要的模块即可,这种方式既可以降低整体创建时间,也可以提高测试环境资源利用率。

1.2 软路由提升交付效率

这里需要介绍下软路由机制,软路由环境主要包含两部分:

  • 基准环境, 基准环境是一套全链路的稳定环境,当线上代码发布的时候,基准环境代码也会同步更新;

  • 软路由环境,软路由是我们日常使用的项目环境。每个项目都只需要按需拉取自己使用的模块即可,缺省的模块会由基准环境的稳定服务代替,组成一套互不干扰的软路由环境。

1.3 软路由的整体方案

软路由方案整体包括两大核心功能, 环境绑定 和 流量分发:

1.3.1   环境绑定功能

环境使用者通过 Noah 环境绑定工具将 uid (去哪儿用户标识,下称 uid )和环境绑定,建立环境绑定关系并存储。绑定完环境后,请求到网关(openresty)时读取环境绑定关系,将 uid 转换成环境标识,然后将环境标识植入 HTTP Header 中,方便后续的流量分发。

1.3.2 软路由环境的流量分发

流量分发中涉及 or/dubbo/qmq(去哪儿消息中间件)三个中间件,主要分为服务感知和服务选择两个步骤:

(1)  服务的感知

核心思路是将环境信息统一上报,方便后续路由选择。

Or:所有环境入口使用同一套域名(比如 ortest.qunar.com ),在环境创建/更新时新增/更新 对应的upstream

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值