使用 CNF 测试套件测试云原生最佳实践
Joel Hans為CNCF撰寫的社區(qū)帖子
電信行業(yè)是當(dāng)今日益數(shù)字化的經(jīng)濟(jì)的支柱,但在發(fā)展以滿足現(xiàn)代基礎(chǔ)設(shè)施實(shí)踐方面面臨著艱巨的新挑戰(zhàn)。電信是如何陷入這種境地的?由于事故或停機(jī)的風(fēng)險非常嚴(yán)重,該行業(yè)幾乎完全專注于將風(fēng)險降至最低并最大限度地提高可靠性的系統(tǒng)設(shè)計。對于關(guān)鍵任務(wù)服務(wù)來說,無論是公共空中交通管制還是私人高速銀行業(yè)務(wù),這都非常棒,但它強(qiáng)調(diào)穩(wěn)定性而不是生產(chǎn)力,并采用可能使其運(yùn)營更具彈性和性能的新技術(shù)。
電信正在追趕云原生技術(shù),下游效應(yīng)開始顯現(xiàn)。這些組織現(xiàn)在在企業(yè)和IT的實(shí)際選擇方面落后于時代,這意味著他們不太可能招聘到他們需要的頂級工程人才。在競爭日益激烈的環(huán)境中,他們需要提高生產(chǎn)力,更快地將新的電話平臺部署到市場,而不是在內(nèi)部構(gòu)建的舊定制解決方案中陷入困境。
為了實(shí)現(xiàn)從內(nèi)部信任到行業(yè)信任工具的飛躍,電信組織需要有信心,他們有望正確發(fā)展其虛擬網(wǎng)絡(luò)功能(VNF)基礎(chǔ)架構(gòu),以使用Kubernetes實(shí)現(xiàn)云原生功能。這就是CNCF旨在提供幫助的地方。
進(jìn)入用于電信的 CNF 測試套件
云原生網(wǎng)絡(luò)功能 (CNF) 是以云原生方式實(shí)現(xiàn)或促進(jìn)網(wǎng)絡(luò)功能的應(yīng)用程序,使用標(biāo)準(zhǔn)化原則開發(fā),至少由一個微服務(wù)組成。
CNF測試套件(cncf/ cnf-testsuite)是一個開源測試套件,供電信公司確切地了解其CNF的云原生程度。它專為電信開發(fā)人員和網(wǎng)絡(luò)運(yùn)營商而設(shè)計,使用Kubernetes和其他云原生技術(shù)進(jìn)行構(gòu)建,以驗(yàn)證他們遵循云原生原則和最佳實(shí)踐的程度,例如不可變基礎(chǔ)架構(gòu),聲明性API和"可重復(fù)的部署過程"。
CNCF將電信用戶組(TUG)和云原生網(wǎng)絡(luò)功能工作組(CNF WG)聚集在一起,實(shí)施CNF測試套件,該套件通過該套件的靈活測試和優(yōu)化的執(zhí)行時間,幫助電信開發(fā)人員和運(yùn)營團(tuán)隊構(gòu)建更快的反饋循環(huán)。由于它可以集成到任何 CI/CD 管道中,無論是在開發(fā)還是預(yù)生產(chǎn)檢查中,或者作為單個 CNF 的獨(dú)立測試運(yùn)行,因此電信開發(fā)團(tuán)隊可以一目了然地了解其新部署如何與云原生生態(tài)系統(tǒng)保持一致,包括 CNCF 托管的項(xiàng)目、技術(shù)和概念。
這是對一個難題的有力回答:我們是如何原生云的?
CNF 測試套件利用 10 個 CNCF 托管的項(xiàng)目和多個開源工具。使用CoreDNS的修改版本作為示例CNF,供最終用戶通過五個步驟熟悉測試套件,并在可觀察性測試中使用Prometheus來檢查CNF主動公開指標(biāo)的最佳實(shí)踐。它還打包了其他上游工具,如OPA Gatekeeper,Helm linter和Promtool,以使安裝,配置和版本控制可重復(fù)。CNF Test Suite 團(tuán)隊也感謝 Kyverno 在安全測試、LitmusChaos 彈性測試和 Kubescope 安全策略方面的貢獻(xiàn)。
CNF 測試套件的最小安裝只需要一個正在運(yùn)行的 Kubernetes 集群、kubectl、curl 和 helm,甚至支持在氣隙機(jī)器或可能需要自托管映像存儲庫的機(jī)器上運(yùn)行 CNF 測試。安裝后,您可以使用示例 CNF 或自帶 - 您只需提供 .yml 文件并運(yùn)行 “cnf-testsuite all” 即可運(yùn)行所有可用的測試。甚至還有一個快速的五步過程,可以在不到15分鐘的時間內(nèi)部署套件并獲得建議。
CNF 測試套件涵蓋的內(nèi)容及其原因
在 2022 年初,CNF 測試套件可以運(yùn)行大約 60 個工作負(fù)載測試,這些測試分為 7 個不同的類別。
兼容性、可安裝性和可升級性:CNF 應(yīng)與任何經(jīng)過認(rèn)證的 Kubernetes 產(chǎn)品和任何滿足其功能要求的 CNI 兼容網(wǎng)絡(luò)配合使用,同時使用標(biāo)準(zhǔn)的帶內(nèi)部署工具,如 Helm(版本 3)圖表。CNF 測試套件檢查 CNF 是否可以使用 “kubectl” 進(jìn)行水平和垂直縮放,以確保它可以利用 Kubernetes 的內(nèi)置功能。
微服務(wù):CNF 應(yīng)作為微服務(wù)進(jìn)行開發(fā)和交付,以提高敏捷性,或縮短部署之間所需的開發(fā)時間。敏捷組織可以更頻繁地部署新功能,或者允許多個團(tuán)隊根據(jù)其功能領(lǐng)域安全地部署補(bǔ)丁,例如修復(fù)安全漏洞,而無需先與其他團(tuán)隊同步。
狀態(tài):云原生基礎(chǔ)結(jié)構(gòu)應(yīng)該是不可變的、與環(huán)境無關(guān)的,并且能夠靈活應(yīng)對節(jié)點(diǎn)故障,這意味著可以正確管理配置、持久性數(shù)據(jù)和狀態(tài)。CNF 的配置應(yīng)該是無狀態(tài)的,存儲在自定義資源定義中,或者存儲在本地存儲的單獨(dú)數(shù)據(jù)庫中,任何持久性數(shù)據(jù)都由 StatefulSets 管理。單獨(dú)的有狀態(tài)和無狀態(tài)信息使基礎(chǔ)架構(gòu)易于重現(xiàn)、一致、一次性,并始終以可重復(fù)的方式部署。
可靠性、彈性和可用性:電信基礎(chǔ)設(shè)施的可靠性與標(biāo)準(zhǔn) IT 相同,需要高度安全可靠,并支持超低延遲。云原生最佳實(shí)踐嘗試通過依賴具有更高可維護(hù)性(平均恢復(fù)時間 (MTTR))的冗余子組件來減少平均故障間隔時間 (MTBF),然后通過混沌工程和自我修復(fù)配置測試這些假設(shè)。測試套件使用一種混沌測試來確保 CNF 能夠靈活應(yīng)對公有云環(huán)境不可避免的故障或業(yè)務(wù)流程協(xié)調(diào)器級別的問題,例如當(dāng) Pod 被意外刪除或計算資源耗盡時會發(fā)生什么。這些測試可確保 CNF 在非運(yùn)營商級共享云硬件/軟件平臺上符合電信行業(yè)的可靠性標(biāo)準(zhǔn)。
可觀察性和診斷:生產(chǎn)云原生基礎(chǔ)架構(gòu)的每個部分都必須通過指標(biāo)、跟蹤和日志記錄使其內(nèi)部狀態(tài)可觀察。CNF 測試套件尋求與 Fluentd、Jaeger、Promtool、Prometheus 和 OpenMetrics 的兼容性,這有助于 DevOps 或 SRE 團(tuán)隊維護(hù)、調(diào)試和收集有關(guān)其生產(chǎn)環(huán)境運(yùn)行狀況的見解,這些環(huán)境必須進(jìn)行版本控制、在源代碼管理中維護(hù),并且只能通過部署管道進(jìn)行更改。
安全性:云原生安全性需要操作系統(tǒng)、容器運(yùn)行時、編排、應(yīng)用程序和云平臺級別的專家的關(guān)注。雖然其中許多不屬于 CNF 測試套件的范圍,但它仍然會驗(yàn)證容器是否彼此隔離,是否允許權(quán)限提升,是否定義了資源限制,以及是否針對常見 CVE 進(jìn)行了驗(yàn)證。
配置:團(tuán)隊?wèi)?yīng)以聲明性方式(使用 ConfigMaps、運(yùn)算符或其他聲明性接口)管理 CNF 的配置,以設(shè)計所需的結(jié)果,而不是如何實(shí)現(xiàn)所述結(jié)果。聲明性配置不必執(zhí)行即可被理解,這使得它比命令式配置甚至維護(hù)最良好的"kubectl"命令序列更不容易出錯。
在每個類別中部署大量測試后,CNF 測試套件會為每個類別(或一個類別,如果您在 CLI 中選擇該類別)輸出靈活的評分和補(bǔ)救建議,從而為您提供改進(jìn) CNF 以更好地遵循云原生最佳實(shí)踐的實(shí)用后續(xù)步驟。對于電信行業(yè)來說,這是一個功能強(qiáng)大且仍在增長的解決方案,能夠以一種可控、可觀察的方式接受云原生,并由 CNCF 旗下的所有專業(yè)知識進(jìn)行驗(yàn)證。
展望未來:CNF 認(rèn)證計劃
CNF 測試套件只是即將到來的云原生網(wǎng)絡(luò)功能 (CNF) 認(rèn)證計劃中激動人心的第一步。我們期待使 CNF 測試套件成為網(wǎng)絡(luò)設(shè)備提供商和 CNF 開發(fā)團(tuán)隊的事實(shí)工具,以證明(然后認(rèn)證)他們在新產(chǎn)品和服務(wù)中采用云原生最佳實(shí)踐。
電信行業(yè)的勝利是顯而易見的:
- 提供商可以驗(yàn)證其云原生應(yīng)用程序和架構(gòu)是否符合云原生最佳實(shí)踐。
- 他們的客戶可以驗(yàn)證他們正在采購的云原生服務(wù)或網(wǎng)絡(luò)實(shí)際上是云原生的。
它們都獲得了更好的可靠性,降低了風(fēng)險,并降低了資本/運(yùn)營成本。
我們計劃支持在經(jīng)過認(rèn)證的 Kubernetes 環(huán)境中運(yùn)行的任何產(chǎn)品,以確保組織構(gòu)建與任何主要公共云提供商或本地環(huán)境兼容的 CNF。我們尚未發(fā)布認(rèn)證要求,但它們將類似于 k8s 符合性流程,您可以通過拉取請求提交結(jié)果,并通過電子郵件接收認(rèn)證流程的更新。
隨著 CNF 認(rèn)證計劃的發(fā)展,TUG 和 CNF-WG 都將與大量使用測試套件的組織合作,以進(jìn)行改進(jìn)并及時了解最新的云原生最佳實(shí)踐。我們很高興看到電信行業(yè)如何通過采用更多的云原生原則(如松散耦合系統(tǒng)和不可變性)來發(fā)展,并通過CNF測試套件收集其辛勤工作的證據(jù)。這就是我們?nèi)绾未_保一個復(fù)雜而重要的行業(yè)朝著基礎(chǔ)設(shè)施提供的最佳技術(shù)邁出正確的下一步,同時又不犧牲一英寸的可靠性。
總結(jié)
以上是生活随笔為你收集整理的使用 CNF 测试套件测试云原生最佳实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查护肤品备案在哪里查(查护肤品备案)
- 下一篇: 安卓模拟器蓝牙连接(安卓模拟器 蓝牙)