透過平臺工程提高微服務測試質量

PetterLiu發表於2024-09-08

透過平臺工程提高微服務測試質量

image

背景

  • 微服務架構的多樣性導致了測試過程中的不統一和效率低下。
  • 各團隊可能使用不同的程式語言和工具鏈,導致重複工作和成本增加。
  • 非標準測試方法會危及系統的可靠性和整體質量。


為了提高工程效率、降低成本並提高系統可靠性,標準化測試流程是關鍵的一步。在快速發展的微服務世界中,每個工程團隊通常會構建自己獨特的技術和工具組合 —— 一種多語言的天堂。雖然這種多樣性促進了創新,但在測試方面帶來了重大挑戰。團隊可能會選擇自己的程式語言和工具鏈,但正如容器和 Kubernetes 所教導我們的,部署和執行時的標準化是非常寶貴的。這種對統一性的需求至關重要地延伸到測試領域,這是一個充滿決策的領域,例如優先考慮哪些測試、追求哪些指標以及自動化程度有多高。

“我們有一些團隊想要快速行動,因此懶得編寫任何自動化測試,只是在生產中進行測試並回滾。而我們還有一些團隊花費太多時間自動化他們程式碼的各個方面,並且釋出非常緩慢!”

這種差異不僅效率低下,而且成本高昂,因為它會導致冗餘的努力和增加的維護成本。沒有標準化的測試,團隊可能會重複工具和流程,這通常會導致更昂貴的生產問題,消耗大量資源,並可能影響收入。

非標準測試的問題

想象一下,一個團隊在 CI 中勤奮地使用 Docker Compose 自動化整合測試,而另一個團隊則將精力保留在每晚在暫存環境中執行的端到端(E2E)測試上。第三組可能主要堅持手動測試,只是偶爾嘗試自動化。這種碎片化的方法不僅危及單個元件的可靠性,而且危及整個系統。它模糊了在整個工程組織中圍繞質量、速度和成本協調指標的任何努力。此外,請記住那句古老的諺語:一個系統的強大程度取決於它最薄弱的環節。測試標準的不一致可能會使您的整個系統容易受到最不可靠元件的缺陷的影響,從而可能在未來引發重大問題。

平臺工程的作用

平臺工程是 DevOps 原則的演變,專注於開發內部工具,以標準化技術流程併為開發人員提供自助服務能力。在測試微服務的背景下,平臺工程師(PE)可以與質量保證團隊合作,打造更廣泛的工程團隊可以採用的標準化工具和最佳實踐,從而確保一致性和效率。

平臺工程標準化的關鍵領域

最近的行業見解,例如 Puppet 的 “2023 年平臺工程現狀” 和 “Gartner 的 2024 年軟體工程優先事項”,突出了直接影響平臺工程團隊的關鍵目標和挑戰。這些報告強調了軟體交付中效率、可靠性和速度的重要性,強調了在軟體開發生命週期(SDLC)中簡化操作的必要性。專注於測試,這是 SDLC 的關鍵階段,可以極大地增強這些方面。以下是平臺工程師如何使他們的策略與這些首要舉措保持一致:
測試環境:兩份報告都指出了管理多個測試環境的過高成本和複雜性。透過將開發、QA、暫存和驗收整合到一個單一的、最佳化的預生產環境中,平臺團隊可以大幅削減開銷並簡化工作流程。這種方法不僅降低了基礎設施成本,還加速了測試過程,符合行業朝著更高效開發實踐推進的趨勢。
程式碼更改的早期預覽:早期和迭代反饋的重要性是當前軟體工程討論中反覆出現的主題。實施標準化的預覽環境允許開發人員更有效地與產品經理、QA 和 UX 團隊合作。儘管涉及複雜性,但建立這些環境對於增強微服務架構中的反饋迴圈至關重要,從而提高產品質量並加快迭代速度。
左移自動化測試:根據行業領導者的說法,早期檢測和解決問題是保持高生產力和產品質量的關鍵。透過標準化在合併拉取請求之前執行自動化測試的實踐,平臺工程師確保在最早的階段識別和解決缺陷。這種主動的方法不僅提高了釋出的穩定性,而且符合提高開發人員生產力和運營效率的更廣泛目標。這些標準化的戰略領域不僅僅是關於改進單個流程,而是對於提高平臺工程功能的整體有效性和效率不可或缺的。

指導測試標準化的核心原則

在平臺工程的領域中,對開發人員的好處是巨大的,從提高生產力到提高軟體質量。值得注意的是,開發人員強調了減少錯誤和更穩定應用程式的優勢,這在快節奏的開發環境中至關重要。

platformengieer

Source: https://www.puppet.com/resources/state-of-platform-engineering

當我們避免使用諸如程式碼覆蓋率百分比或自動化測試的數量等虛榮指標時,這些指標可能會誤導而不是提供資訊,專注於測試提供的可操作見解而不是其存在本身至關重要。以下是一些指導原則,以確保測試工作真正有效:
結果重於輸出:優先考慮直接影響軟體質量和使用者體驗的指標,例如缺陷逃逸率或事件頻率(frequency of incidents),而不是僅僅計算活動的輸出。
價值驅動的測試:選擇正確的測試不僅僅是在手動和自動化方法之間做出決定;它需要評估它們的投資回報率和維護努力。理想的方法因業務上下文而異。例如,一家電子商務公司可能會優先考慮對收入至關重要的交易流程,而一家 B2B 公司可能會關注不同的關鍵使用者流程。儘管端到端(E2E)測試資源密集,但它們保護高價值使用者流程的潛力可能證明其成本是合理的。有效的測試策略與業務目標緊密結合,確保努力集中在最能提供價值的地方。
迭代改進:使用指標不斷改進測試實踐。如果某些測試始終產生很少或沒有可操作的資料,可能是時候修改或放棄它們了。透過關注這些原則並擁抱新興技術,團隊可以使他們的測試策略更緊密地與他們的核心目標保持一致,提高他們開發過程中的效率和有效性。

結論

在提高工程效率、降低成本和提高系統可靠性方面,標準化測試流程是關鍵的一步。我們構建工具來幫助平臺團隊簡化和標準化測試和預覽環境,在開發週期中實現左移方法,同時最大限度地降低基礎設施成本。例如,平臺工程師能夠在不重複基礎設施的情況下在數百名工程師中擴充套件開發人員測試,而使其開發人員能夠在類似生產的環境中進行早期測試,更早地發現問題並降低成本。


今天先到這兒,希望對AIGC,雲原生,技術領導力, 企業管理,系統架構設計與評估,團隊管理, 專案管理, 產品管理,資訊保安,團隊建設 有參考作用 , 您可能感興趣的文章:
構建創業公司突擊小團隊
國際化環境下系統架構演化
微服務架構設計
影片直播平臺的系統架構演化
微服務與Docker介紹
Docker與CI持續整合/CD
網際網路電商購物車架構演變案例
網際網路業務場景下訊息佇列架構
網際網路高效研發團隊管理演進之一
訊息系統架構設計演進
網際網路電商搜尋架構演化之一
企業資訊化與軟體工程的迷思
企業專案化管理介紹
軟體專案成功之要素
人際溝通風格介紹一
精益IT組織與分享式領導
學習型組織與企業
企業創新文化與等級觀念
組織目標與個人目標
初創公司人才招聘與管理
人才公司環境與企業文化
企業文化、團隊文化與知識共享
高效能的團隊建設
專案管理溝通計劃
構建高效的研發與自動化運維
某大型電商雲平臺實踐
網際網路資料庫架構設計思路
IT基礎架構規劃方案一(網路系統規劃)
餐飲行業解決方案之客戶分析流程
餐飲行業解決方案之採購戰略制定與實施流程
餐飲行業解決方案之業務設計流程
供應鏈需求調研CheckList
企業應用之效能實時度量系統演變

如有想了解更多軟體設計與架構, 系統IT,企業資訊化, 團隊管理 資訊,請關注我的微信訂閱號:

image_thumb2_thumb_thumb_thumb_thumb

作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。 該文章也同時釋出在我的獨立部落格中-Petter Liu Blog。

相關文章