背 景
测试环境是项目测试的关键环节,其部署效率、稳定性、连通性直接影响项目的迭代效率。在测试环节中测试环境一直是行业中的较为薄弱一环,面临很多的问题,比如:
测试环境的治理已经迫在眉睫,所以,爱奇艺测试团队立项测试环境平台,实现如下几个目标:
方便用户使用,按需随时使用,减少等待、使用成本。
测试环境管理要素
面对各业务的不同测试环境部署流程、不同类型系统架构,如何提炼通用的测试环境管理方案,是首要解决的难点。因此测试团队提炼出测试环境的通用性部署流程,从下图中可以看出,测试环境平台需要支撑的关键能力包括:支持人工梳理的业务拓扑及部署脚本的集中管理和对用户透明的资源使用,以及方便的动态部署和问题自动定位、恢复。
爱奇艺测试环境管理方案
爱奇艺测试环境拓扑
测试环境平台方案
爱奇艺测试平台产品方案
难点攻坚
随着测试环境平台产品架构的明确,后续的落地也遇到了很多难点,我们将一些关键问题进行了详细解读。
搭建测试环境依赖众多资源,诸如虚机、容器、mysql、redis、rocketMQ、zookeeper等,如果全部由测试环境平台来统一管理,那将是一项非常大的维护成本,结合行业经验,我们采取了一种合作模式:与公司各资源管理的服务合作,各服务负责提供各类资源的动态创建、更新、销毁机制,测试环境平台统一集成,并创建自己的资源池,预留小部分资源来支撑实时部署,同时可根据部署资源需求动态扩容资源池,如下图所示:
二、测试环境的安全保障
各业务之前测试环境全部部署在生产网络下,存在干扰线上服务的安全隐患,此次测试环境治理目标之一也包括将QA测试环境部署在隔离网络。在与公司服务治理团队的一起努力下,共建了测试环境迁移整体方案,已完成一期QA测试环境的迁移试点,同时也加速了RD测试环境的隔离迁移进度。
隔离网络方案如下图所示:
隔离网络方案
目前,测试环境平台支持同时在生产区、测试区部署测试环境,我们的最终目标是测试环境只在测试区部署。
三、测试环境的高效部署
随着越来越多的系统接入测试环境平台,整体性能逐渐吃紧,单个应用部署耗时最高达到了60分钟,所以测试团队将之前架构进行优化,逐步拆解成了微服务架构,并通过削峰、缓存、重试、及时丢弃的组合方案,逐步将单个应用部署耗时由最高60分钟降低到10分钟、平均4分钟,部署成功率由60%提升到95%以上,基本上搭建一套测试环境在5分钟左右完成。
四、资源的高利用率
一套测试环境搭建完成后,首要目标是保证该套测试环境连通、可用,因为不能连接线上服务,所以在部署完成所需的系统后,所依赖的系统如何部署,直接决定了资源的利用率。因此,我们采取智能链路判断的方案,一方面保证新的测试环境连通、可用,一方面最大程度复用现有的基准测试环境保证资源利用率最大化。
当前已具备一级依赖的判断,可尽量复用基准测试环境,下一步将进行全链路的智能环路判断,可完整保证测试环境连通、可用,同时资源利用率相对最大化。
面对各业务测试环境错综复杂的现状,一步到位完成高质量的测试环境搭建可行性较低,再综合考虑测试环境的治理目的是解决项目测试的block问题,我们制定了QA测试环境成熟度:
经过以上内容的讲解,我们将环境平台的整体架构呈现如下:
平台功能简介
平台初期定位是解决QA同学的测试环境高成本问题,当前也有部分RD同学在使用,实际上,同一个系统,无论是RD还是QA,只要有一方接入环境平台,另一方都可以0成本使用,此处关键的功能就是模板,即一次性组装应用,可重复使用0成本搭建多套测试环境,如下图:
未来规划
目前环境平台日均部署次数约1000次,部署成功率高于95%,平均部署耗时4分钟,支撑了爱奇艺会员、播放、支付等关键业务线QA的100+系统、700+应用的日常测试环境部署。
测试环境管理平台初见成效,最重要的是实现了单业务测试环境的快速搭建复制,保证了业务自身的迭代效率和质量。后续规划主要围绕跨业务测试环境的快速部署,为项目联调、集成测试验收提供坚实基础。关键要点如下:
也许你还想看