测试环境不稳定&复杂的必然性及其对策

本文分析了测试环境不稳定和复杂性的必然性,提出测试环境比生产环境更复杂,主要在于共振问题和隔离需求。解决方案包括环境复用、隔离以及确保环境稳定性。文章强调,测试环境应按生产级标准保障,利用Service Mesh解决隔离问题,并通过数据证明环境的稳定性和路由准确性。
摘要由CSDN通过智能技术生成

这篇文章想要讲的,的确是两件事情:

  1. 为什么测试环境的不稳定是必然的,怎么让它尽量稳定一点?
  2. 为什么测试环境比生产环境更复杂,怎么让它尽量简单一点?

此外,还会谈一谈对测试环境和生产环境的区别的理解。

这里是本文的主要观点:

  1. 测试环境与生产环境是两个不同的场景,测试环境的不稳定是必然的,在没有实现TiP(Test in Production)之前,当前我们能做的是尽量让它稳定一点;
  2. 测试环境比生产环境更为复杂,最核心的是要解决共振问题,即做好隔离能力,Mesh 是解决隔离问题的一个未来方向;

在 DevOps 领域,测试环境其实是介于 Dev 和 Ops 中间重叠的部分,一提到测试环境,打开就会说测试环境不够用、测试环境不稳定,尤其是在微服务化了之后,对测试环境的诉求与挑战也愈发明显。

从软件研发过程的角度来说(如上图),从左往右呈现一个漏斗模型,随着研发的阶段推进,复杂度和稳定性都在逐步收敛:

  1. 在开发和集成阶段,代码等变更是非常频繁的,在这个阶段里研发人员在不断的迭代、联调、验证等,从本质上来说,高复杂度和低稳定性是必然的,对于依赖的中间件等基础设施的不稳定,这是偶然的;
  2. 到了预发、灰度和发布阶段,变更已经趋于稳定,经过了前面阶段的洗礼,复杂度是相对低的,稳定性也能得到保证;

另一方面,如上图所示,生产环境只有一套,链路和应用间的调用关系比较清晰,但在测试环境中,因为涉及到多个项目的自测、联调、验证等,相当于千军万马过独木桥,很容易产生共振效应,影响所有人的研发,在这方面来讲,测试环境比生产环境要复杂很多,亟需解决隔离、低成本以及稳定的依赖这几个重要的问题。

测试环境不稳定的必然性

测试环境和生产环境的区别是什么?有的人说线下的容量没有线上大,有的人说线下没有真实用户,有的人说线下缺少生产的真实数据,等等,各种答案都有。在我看来,测试环境和生产环境的本质区别是:它们是两个不同的场景。对于生产环境,准确与稳定性最重要;对于测试环境,隔离、低成本和稳定的依赖最重要。

在日常的研发中,会面临诸多场景,涉及的测试环境总结如下:

  • 开发环境(dev):开发或测试同学自己的电脑或服务器,非 Aone 管理的应用服务器
  • 项目环境(project):关联到某个变更的环境,仅部署该变更对应的分支
  • 单应用测试
  • 多应用联调
  • 性能测试:对该变更对应的分支做性能测试
  • 日常集成环境(daily):我们最熟悉的 daily 环境&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值