Po Linn Chia 在波士顿 Dev Summit 的演讲《没有QA环境?没问题》中介绍了他们如何重用单一开发环境来部署多个服务版本,以测试他们的分布式系统。一个小型的实施团队,文化的引进,以及逐步的学习可以帮助团队协作,减少认知负荷,并扩展测试实践。
如果没有专门的 QA 环境,团队在测试分布式系统时将面临技术和协调问题,Chia 在 InfoQ 新闻《如何在单一环境中使用代理路由启用分布式系统的测试》中解释道:
一个缓慢的、不可维护的 CLI 导致一个组织转向自动化测试。他们使用 CI 和代理路由构建了一个用于版本化部署的工具,使开发人员能够在多个版本上运行隔离测试,以更早地发现错误。
在实现了内部部署工具之后,他们意识到他们的团队结构对于他们正在尝试做的事情来说不再可行。Chia 解释说,虽然公司已经发展壮大,但由于没有能够跨开发和运维的团队,所以无法扩大规模。
每当有一个团队试图测试某项内容时,我们就会阻塞其他 N-1 个团队。随着规模扩大,这种阻塞不仅无法扩展,反而会愈发严重。
为了解决问题,他们认为如果能够很好地测试后端,就可以减少对前端和移动端测试的影响。他们组建了一个小团队,但问题太大了,无法解决。他们还了解到他们的测试基础架构需要改变。
接下来,他们尝试在生产环境中进行测试。问题是他们的生产系统还没有准备好接受测试数据。他们做了一些监控,但监控不能取代测试;监控器只会告诉你已经着火了,Chia 说。
他们想出了建立一个支持团队的想法,像老虎团队一样工作。Chia 提到,他们虽然很小,但很重要,他们会为他们扫清道路,完成他们需要做的工作。她解释说,最困难的部分是为你的组织找出不言而喻的标准:
* 不能太贵
* 不能太复杂
* 必须连接平台和产品
* 不能太具破坏性:必须在启用不同类型的现有测试的同时启用集成测试
他们并没有破坏当前的开发者体验,但是他们为开发者提供了一个稳定的影子领域,并且能够在他们的 PR 中临时启动内容,并按需进行任何他们想要的测试,Chia 解释道:
我们授权移动端和前端工程师使用他们熟悉的工具来定位版本。
Chia 提到,就像采用任何新技术一样,教育人们是困难的。这需要大量的学习,即使是最专业的工程师也必须处理无尽的认知负荷。人们被他们需要知道的东西所淹没;在这一点嵌入我们的工程文化之前,我们必须要求我们的开发人员进行知识获取。
Linn Chai 说,你可以有一个小团队,但只要有战略和政治意愿,你就可以做伟大的事情。尝试启用尽可能多的测试类型,即使它并不符合完美的实际测试金字塔与所有漂亮的线性框;你会成功的,但你必须从小处着手,她总结道。
InfoQ 就组织结构和工作方式的变化采访了Po Linn Chia。
InfoQ:你们是如何在开发和运维之间轮换工程师的?
Po Linn Chia:在 Playlist 的 Classpass 组织中,我们有不同工程领域的协会——在我们的例子中,包括后端、前端和移动开发——以及一个独立的平台运维团队。协会有固定的员工——例如,我是后端协会的负责人——并且公会与产品工作流程是分开的。我们专注于技术卓越、开发人员生产力以及与平台运维团队的协作。
工程师可以临时进入公会。这使他们能够获得跨团队、跨平台项目的工作经验,而且通常是他们第一次接触运维类工作。特别是后端协会与我们的平台团队保持着密切的工作关系,我们的工作经常有很多重叠。
InfoQ:你在轮换工程师方面有什么经验?
Chia:总的来说,这些轮换都很受欢迎!我认为工程师喜欢在高杠杆的技术项目中工作,这是更广泛地传播工作系统/运维知识的好机会,这样每个人(包括平台运维)都是赢家。
原文链接:
https://www.infoq.com/news/2026/02/environment-distributed-testing/





