在波士顿开发者峰会上,Po Linn Chia在她的演讲《没有QA环境?没问题》中介绍了他们是如何利用同一个开发环境来部署多个服务版本,从而测试他们的分布式系统的。一个规模较小的支持团队、全体员工的积极参与以及持续的学习过程,帮助这些团队更好地协作,减少了认知负担,并使测试工作得以有效开展。

Chia在InfoQ的新闻报道《如何利用代理路由技术在单一环境中测试分布式系统》中解释道:由于没有专用的QA环境,在测试分布式系统时,各团队会遇到技术上的种种问题,同时也难以进行有效的协调。

某个组织原本使用效率低下且难以维护的命令行工具来进行自动化测试。后来他们开发了一款基于持续集成和代理路由技术的工具,使得开发人员能够在多个版本上独立运行测试,从而更早地发现缺陷。

在实施了这套内部部署工具后,他们意识到现有的团队结构已经无法满足他们的需求了。虽然公司规模不断扩大,但由于缺乏那些能够跨越开发和运维部门的支持团队,他们仍然无法有效扩展测试能力。Chia解释说:“每有一个团队在进行某项测试工作时,就会影响到N-1个其他团队的工作流程。当业务规模扩大时,这种问题会变得更加严重。”

为了解决问题,他们认为如果能够好好地测试后端代码,就能减少对前端和移动端测试工作的影响。于是他们组建了一个小型团队,但最终发现这些问题实在过于复杂,难以解决。同时他们也意识到,自己的测试基础设施需要进行改进。

接下来,他们尝试在生产环境中进行测试,但却发现他们的生产系统并不适合接收测试数据。虽然进行了一些监控工作,但Chia指出,监控并不能替代真正的测试;监控工具只能告诉人们问题已经出现了,而无法帮助人们找到问题的根源。

最终,他们决定组建一个专门的支持团队,这个团队的作用就像“虎队”一样——规模虽小,但却至关重要,它们能够为各项测试工作扫清障碍。Chia解释说:“关键是要弄清楚你们组织内部那些不成文但必须遵守的标准。例如:这些工具不能过于昂贵,也不能过于复杂;它们必须能够连接不同的平台和产品;同时,它们不能对现有的测试流程造成太大的干扰,而应该能够帮助开发者进行集成测试等等。”

他们所开发的这套支持系统并不会破坏现有的开发体验,而是为开发者提供了一个稳定、可靠的测试环境。开发者可以使用自己熟悉的工具来针对特定的版本进行测试,Chia这样说道:“我们让移动端和前端工程师能够利用自己熟悉的工具,自主地针对特定版本开展测试工作。”

正如任何新技术的推广过程一样,让人们了解这些新技术确实是一件困难的事情,Chia提到。需要学习的内容非常多,即使是最熟悉相关技术的工程师也必须面对繁重的认知负担。人们会因为需要掌握的知识量太大而感到不知所措;因此,在这种观念真正融入我们的工程文化之前,我们还是得要求开发人员自己去承担获取知识的责任。

Linn Chai说:“你可以组建一个规模较小的团队,但只要有明确的战略和坚定的决心,你们依然能够取得显著的成果。尽量开展各种类型的测试吧,即使这些测试并不完全符合那种理想化的、结构清晰的测试体系;不过你们必须从小处着手开始尝试。”

InfoQ采访了Po Linn Chia,了解了他们组织结构及工作方式所发生的变化。

InfoQ:你们是如何让工程师们在开发部门和运维部门之间轮岗的?

Po Linn Chia:在Playlist旗下的Classpass团队中,我们为后端开发、前端开发以及移动应用开发等不同技术领域设立了专门的小组,同时还设有独立的运维团队。这些小组都有固定的成员组成——比如我负责带领后端开发小组——而且这些小组的工作流程是与产品开发团队分开进行的。我们的重点在于提升技术水平、提高开发人员的效率,并加强与运维团队的合作。

工程师们可以暂时加入这些小组进行工作。这样他们就能有机会参与跨团队、跨平台的项目,而这往往也是他们第一次接触运维相关的工作。尤其是后端开发小组,与我们运维团队之间的合作非常紧密,我们的工作内容也有很多重叠之处。

InfoQ:你们实施工程师轮岗制度后取得了哪些成效?

Chia:总体来说,这种轮岗制度受到了大家的热烈欢迎!我认为工程师们都很乐意有机会参与那些能产生重大影响的技术项目,而且这种机制也为他们提供了将运维知识传播给更多人的机会,因此对所有人来说都是有益的——包括运维团队在内的所有相关人员。

Comments are closed.