天天看點

左移測試在Kubernetes中的應用

Kubernetes容器編排引擎是一個複雜的軟體,它為錯誤配置提供了許多機會。例如,Kubernetes配置基準報告分析了100000多個Kubernetes工作負載,發現每個叢集平均有328個Kubernetes錯誤配置,這對負責基礎設施的專業人員來說是一場噩夢。這可能就是網絡安全公司Cyble發現90多萬個Kubernetes叢集由于配置錯誤而暴露在網際網路上的原因。

在過去幾年中,軟體行業越來越多地采用左移測試政策,該政策提倡在部署管道生命周期中更早地完成測試。由于其聲明性,Kubernetes是一個很好的工具,可以在其中實作左移政策。在本文中,我們将通過檢視開源解決方案Gatekeeper和Datree,探索右移和左移政策在發現Kubernetes叢集錯誤配置方面的優勢。

右移測試

在讨論左移測試之前,讓我們先讨論一下它的對立面。右移測試盡可能推遲測試階段,通常在部署到生産或投入生産之前。這種方法過去一直在軟體行業中使用。它的優點是能夠捕捉到在過渡環境中可能檢測不到的東西,例如性能問題、故障容忍度或應用程式的使用者體驗。

開源軟體Gatekeeper充當Kubernetes API伺服器和OPA政策之間的橋梁。每當資源建立、更新或删除請求發送到Kubernetes叢集時,Gatekeeper将作為驗證webhook,并檢查送出的請求是否違反預定義的OPA政策。由于Gatekeeper是在叢集級别執行其工作的,可以在部署之前的過渡階段完成,也可以直接在生産中完成,是以它可以用作右移測試政策的一部分。

然而,這并不總是一個理想的場景。右移測試意味着,通常位于發貨管道遠端的基礎設施團隊将不得不處理錯誤配置。這可能很快成為一項艱巨的任務,尤其是如果有許多開發人員,他們的數量通常大大超過了基礎設施團隊的數量。

每個Kubernetes叢集平均有328個錯誤配置,情況很快就會失控。這可能會導緻應用程式開發生命周期的速度急劇下降,并導緻開發人員對他們的代碼無法投入生産感到沮喪。

左移測試

這就是左移測試方法可以提供幫助的地方。通過将測試階段提前,最好是在開發階段,每個開發人員都成為一個測試單元。因為測試階段是在他們的級别上進行的,與責任歸于另一個團隊相比,他們将更多地參與捕捉錯誤配置。這将增加測試覆寫率,提高應用程式傳遞速度,并避免開發人員因看到他們的代碼處于預生産狀态而感到沮喪。

開源軟體Datree提供了一個CLI工具,可以發現Kubernetes的錯誤配置,可以直接在開發人員的筆記本電腦上執行,或者作為CI/CD管道的一部分,也可以作為左移測試政策的一部分。将測試階段移到左邊的一個重大挑戰顯然是讓開發人員參與測試,并確定他們擁有相關知識。這就是為什麼工程上司層必須確定與團隊廣泛讨論該主題。

必須組織頭腦風暴會議,提出每個人都知道并同意的測試基線。提供開發人員友好的工具來發現錯誤配置也将增加團隊參與的機會。例如,Datree提供了将自動檢查直接內建到代碼編輯器中的VS插件,同時提供了不需要大量Kubernetes管理知識的開發人員友好的錯誤消息。

一旦左移測試政策到位,開發人員的團隊也加入進來,確定跟蹤進度。與跟蹤應用程式代碼庫的覆寫率測試類似,對Kubernetes配置檔案執行相同的操作。請記住,在團隊起立時提出這個主題,慶祝成功,并讨論測試挑戰,以確定左移測試成為應用程式生命周期中順利的一部分。

右移和左移戰略都有利弊,但左移戰略正在興起,這通常是公司需要改進的地方。最終,兩者都到位可以提供可靠的測試覆寫率。

繼續閱讀