背 景

测试环境是项目测试的关键环节,其部署效率、稳定性、连通性直接影响项目的迭代效率。在测试环节中测试环境一直是行业中的较为薄弱一环,面临很多的问题,比如:

  • 搭建成本高:复杂业务的梳理成本高;搭建测试环境,需要经过申请资源、部署组件、连通性测试等一系列流程,路径长、成本高;搭建完成后需要持续人力投入等;

  • 复制成本高:绝大部分系统的测试环境无法一键0成本复制,也无法快速满足多项目多套测试环境的需求,影响项目进度;

  • 联调成本高:涉及多个系统的联调项目,整体可用性较差,经常阻碍项目,且一旦出问题,排查耗时;

  • 使用成本高:无法快速找到所依赖系统的测试环境,尤其是站在客户端角度。

测试环境的治理已经迫在眉睫,所以,爱奇艺测试团队立项测试环境平台,实现如下几个目标:

  1. 统一测试环境管理方案,整合资源,减少各业务环境的开发、维护成本;

  2. 解决各业务联调测试环境部署、问题定位等带来的人力投入;

  3. 方便用户使用,按需随时使用,减少等待、使用成本。

测试环境管理要素

面对各业务的不同测试环境部署流程、不同类型系统架构,如何提炼通用的测试环境管理方案,是首要解决的难点。因此测试团队提炼出测试环境的通用性部署流程,从下图中可以看出,测试环境平台需要支撑的关键能力包括:支持人工梳理的业务拓扑及部署脚本的集中管理和对用户透明的资源使用,以及方便的动态部署和问题自动定位、恢复。

爱奇艺测试环境管理方案

测试环境梳理流程清晰后,聚焦到测试环境部署环节提炼出不同种类系统的测试环境拓扑,并得出了测试环境管理的五要素:存储、中间件、应用、组件、依赖,而其中,应用就是测试环境管理的最小单元。

爱奇艺测试环境拓扑

测试环境平台方案

综合测试环境的痛点、治理目标、核心要素,我们提炼出了爱奇艺测试环境平台的核心设计理念:用户一次性梳理测试环境核心要素,0成本任意搭建测试环境,测试环境问题自动定位和恢复。并提出了测试环境产品方案,如下:

爱奇艺测试平台产品方案

难点攻坚

随着测试环境平台产品架构的明确,后续的落地也遇到了很多难点,我们将一些关键问题进行了详细解读。

一、资源的高效管理

搭建测试环境依赖众多资源,诸如虚机、容器、mysql、redis、rocketMQ、zookeeper等,如果全部由测试环境平台来统一管理,那将是一项非常大的维护成本,结合行业经验,我们采取了一种合作模式:与公司各资源管理的服务合作,各服务负责提供各类资源的动态创建、更新、销毁机制,测试环境平台统一集成,并创建自己的资源池,预留小部分资源来支撑实时部署,同时可根据部署资源需求动态扩容资源池,如下图所示:

二、测试环境的安全保障

各业务之前测试环境全部部署在生产网络下,存在干扰线上服务的安全隐患,此次测试环境治理目标之一也包括将QA测试环境部署在隔离网络。在与公司服务治理团队的一起努力下,共建了测试环境迁移整体方案,已完成一期QA测试环境的迁移试点,同时也加速了RD测试环境的隔离迁移进度。

隔离网络方案如下图所示:

隔离网络方案

目前,测试环境平台支持同时在生产区、测试区部署测试环境,我们的最终目标是测试环境只在测试区部署。

三、测试环境的高效部署

随着越来越多的系统接入测试环境平台,整体性能逐渐吃紧,单个应用部署耗时最高达到了60分钟,所以测试团队将之前架构进行优化,逐步拆解成了微服务架构,并通过削峰、缓存、重试、及时丢弃的组合方案,逐步将单个应用部署耗时由最高60分钟降低到10分钟、平均4分钟,部署成功率由60%提升到95%以上,基本上搭建一套测试环境在5分钟左右完成。

同时,为降低不同类型业务、系统架构的接入成本以及平台开发成本,采用工作流模式,灵活编排不同的测试环境部署流程。

四、资源的高利用率

一套测试环境搭建完成后,首要目标是保证该套测试环境连通、可用,因为不能连接线上服务,所以在部署完成所需的系统后,所依赖的系统如何部署,直接决定了资源的利用率。因此,我们采取智能链路判断的方案,一方面保证新的测试环境连通、可用,一方面最大程度复用现有的基准测试环境保证资源利用率最大化。

当前已具备一级依赖的判断,可尽量复用基准测试环境,下一步将进行全链路的智能环路判断,可完整保证测试环境连通、可用,同时资源利用率相对最大化。

五、测试环境建设标准明确

面对各业务测试环境错综复杂的现状,一步到位完成高质量的测试环境搭建可行性较低,再综合考虑测试环境的治理目的是解决项目测试的block问题,我们制定了QA测试环境成熟度:

  1. 环境搭建能力(不具备,部分可搭建,全部自主搭建)

  2. 数据管理能力(不具备,部分可搭建,全部自主搭建)

  3. 问题定位与恢复能力(天级,小时级,分钟级,秒级)

  4. 环境安全程度(与线上混用,逻辑隔离,物理隔离)

环境成熟度一方面可以帮助各业务QA摸清现状,一方面可以帮助更准确的制定测试环境治理的短、中、长期目标,同时我们联合端QA,从上到下倒退关键链路系统的测试环境治理。

经过以上内容的讲解,我们将环境平台的整体架构呈现如下:

平台功能简介

平台初期定位是解决QA同学的测试环境高成本问题,当前也有部分RD同学在使用,实际上,同一个系统,无论是RD还是QA,只要有一方接入环境平台,另一方都可以0成本使用,此处关键的功能就是模板,即一次性组装应用,可重复使用0成本搭建多套测试环境,如下图:

未来规划

目前环境平台日均部署次数约1000次,部署成功率高于95%,平均部署耗时4分钟,支撑了爱奇艺会员、播放、支付等关键业务线QA的100+系统、700+应用的日常测试环境部署。

测试环境管理平台初见成效,最重要的是实现了单业务测试环境的快速搭建复制,保证了业务自身的迭代效率和质量。后续规划主要围绕跨业务测试环境的快速部署,为项目联调、集成测试验收提供坚实基础。关键要点如下:

  • 基于业务链路的交互测试环境一键部署;

  • 最小链路部署,保证环境联通性的同时,减少资源使用;

  • 健康检查,智能运维,自动恢复,进一步保证测试环境的整体可用性和稳定性。

也许你还想看

一站式机器学习平台Deepthought的建设与初探

爱奇艺大数据实时分析平台的建设与实践

扫一扫下方二维码,更多精彩内容陪伴你!

爱奇艺QA测试环境管理平台初探相关推荐

  1. 走出回归测试困境,爱奇艺精准测试体系建设

    01 为什么要做精准测试? 精准测试是为了解决回归测试的质量和效率问题. 在具体的业务中,产品功能的迭代.缺陷修复等等是极为常见的需求场景,但这些看似微小且常见的改动都有可能会对产品庞大的历史功能产生 ...

  2. 爱奇艺大数据实时分析平台的建设与实践

    0 导语 生活在信息爆炸时代的我们越来越清晰的认识到海量信息与数据分析的重要性,如提高数据挖掘能力.为运营决策提供关键数据.通过数据分析助力业务创新.在商业决策中的提供较有价值的信息等成为关键,于是大 ...

  3. 低代码在爱奇艺鹊桥数据同步平台的实践

    前言 为应对软件危机,诞生了软件工程,以期望其达到降低软件生产成本 .改进软件产品质量.提高软件生产率水平的目标.自上个世纪60年代以来,从模块化.面向对象设计到设计模式,从瀑布流模型到敏捷开发,de ...

  4. 爱奇艺的测试工程师笔试题

    题目: 解答: #include <iostream> #include <vector> using namespace std;int main() {int nNum,n ...

  5. 爱奇艺知识播放体验优化的探索和实践

    前 言 德鲁克说:未来社会最大的改变一定是会发生在知识领域. 知识付费商业形式在2014年甚至更早之前就已经开始有了,只是当时还没有内容创业的概念,没有被完全重视.到了2016年,移动互联网的成熟.短 ...

  6. 爱奇艺全链路压测探索与实践

    背 景 爱奇艺除了每天都为数以亿计的用户提供优质的视频服务,同时还有体育.直播.文学等业务服务于更多的圈层用户,海量的业务几乎每天都在进行营销活动,由此带来的流量随时可能会给我们的服务引入不确定性.爱 ...

  7. 基于 Apache Druid 的实时分析平台在爱奇艺的实践

    - 导读 - 最近几年大数据技术在各行各业得到广泛应用,为企业的运营决策和各种业务提供支持.随着数据的增长,业务对数据时效性的要求,给企业的大数据分析带来了巨大挑战.针对海量数据的实时分析需求,近年来 ...

  8. 爱奇艺平台的架构设计与演进之路

    近年来爱奇艺快速发展,优质内容层出不穷,爱奇艺广告也随之发展和壮大,广告在线服务同时服务于品牌.中小.DSP 等不同客户,形成了可以满足不同需求类型的较为完善的商业广告变现布局,广告库存涵盖视频.信息 ...

  9. 爱奇艺智能前端异常监控平台的设计与实践

    背景 前端监控一般包括三方面:异常监控.性能监控(First Meaningful Paint.First Contentful Paint等性能指标监控)及行为数据监控(PV.UV.页面停留时长等监 ...

最新文章

  1. php mysql or_mysql条件查询and or使用方法及优先级实例分析
  2. WIKI 开发工具网站收藏
  3. 获取表中的某个字段名
  4. 2019年前端的3个趋势
  5. 2019年下信息系统项目管理师真题讲解【视频+PDF下载】
  6. 分析IBASE save 白屏问题
  7. 简单说明c语言程序步骤,C语言的入门简介和三个简单的C语言程序详细说明
  8. windows下mysql主从同步_详解windows下mysql的主从同步
  9. redmine-project.net vs redmine vs trac vs apis项目管理软件选型比较
  10. 2018年手机保值排行榜出炉:华为P20成最大赢家?
  11. ubuntu系统debootstrap的使用之二:启动
  12. git21天打卡day12切换分支修改文件
  13. 在Docker和Kubernetes上运行MongoDB微服务
  14. SQL 判断表是否存在
  15. UVa 10499 - The Land of Justice
  16. zabbix微信报警
  17. Mac OS开发之icns文件
  18. app登录的token设计
  19. h3c登录交换机的配置方法
  20. 个人支付宝h5支付源码,即时到个人账户

热门文章

  1. Ubuntu18.04禁止conda自动激活base环境
  2. 论文导读:CoAtNet是如何完美结合 CNN 和 Transformer的
  3. l05173芯片针脚图_L05173TR
  4. DocuWare 文件管理与工作流程自动化案例研究——DocuWare 工作流程功能使在家工作的员工能够保持沟通和高效工作,支持混合环境
  5. win7旗舰版怎么降级到专业版
  6. 豌豆荚工程师谈其新版应用搜索技术
  7. 5G RRC消息解码 工具
  8. 给定一个十进制数,将其转化为N进制数-----17年滴滴笔试题
  9. uniapp onReachBottom不触发
  10. Web狗的CTF出题套路