在波士頓開發者峰會上,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:總體來說,這種輪崗制度受到了大家的熱烈歡迎!我認為工程師們都很樂意有機會參與那些能產生重大影響的技術項目,而且這種機制也為他們提供了將運維知識傳播給更多人的機會,因此對所有人來說都是有益的——包括運維團隊在內的所有相關人員。