中介軟體技術在百度雲原生測試中的應用實踐

2021-10-19 08:04:20 字數 3028 閱讀 4255

縱觀業界,各類網路**多種多樣,其中技術影響力最大的是google的istio,簡單來講,istio系統由兩部分組成:

1、資料平面

2、控制平面

控制平面就像是大腦,可以給資料平面下發控制策略,資料平面充當執行者的角色,執行控制平面下發的控制策略,同時控制平面還可以收集資料平面的狀態,從而了解整個系統的狀態。

讓我們把目光轉移到日常的測試工作中,在測試的各個階段都需要搭建測試環境,尤其是聯調測試,更需要快速搭建一套高度**的測試系統。這裡以被測版本b1需要聯調測試為例,從歷史經驗來看,我們大概經歷了以下三個階段來滿足此類功能聯調需求:

除了環境**度和測試效率方面帶來的挑戰,隨著越來越多的模組微服務化,模組數量暴增,服務間依賴的等級也不盡相同,如何組建一套測試環境來測試系統的整體穩定性又是另外乙個層面的挑戰。

我們可以把上面的問題進行進一步的抽象,在聯調測試中,我們面臨的是測試資源和測試效率方面的問題,我們是否可以復用一套測試資源,將測試流量進行隔離呢?這裡需要的就是中介軟體的路由能力,在測試系統整體穩定性時,我們需要一種靈活的模擬機制,在通訊鏈路層面模擬各類網路異常,這裡需要的就是中介軟體的鏈路控制能力,所以我們把各類測試場景抽象後,都可以歸結為某種鏈路資料或鏈路行為層面的問題,而這正是中介軟體所擅長的,在下面的章節中會具體介紹中介軟體系統的設計思路。

1)鏈路資訊:對每個產品線的不同鏈路的通訊協議進行描述,包括請求和返回方向的包頭、包體格式等資訊,通過這些配置,中介軟體**可以解析通訊鏈路中的資料,為進一步在資料和行為方面的控制打下基礎。

2)拓撲資訊:環境搭建工具會將整個拓撲中各個模組的部署資訊通過api傳遞給中介軟體系統,這樣中介軟體系統就可以知道各個模組的部署位址,從而完成通訊資料的整個**過程。

3)策略資訊:策略資訊就是控制平面希望資料平面需要做的具體事情,此項配置**於申請平台,例如使用者可以在申請平台選擇需要控制的鏈路,並指定該鏈路的行為,例如路由、錄製、改包等,申請平台會自動將使用者需求轉化為中介軟體**可以識別的配置資訊,中介軟體**對此配置實時熱載入並即時生效。

除此之外,中介軟體**還會將所**鏈路的位址(中介軟體鏈路位址)自動匯報給配置中心的nb_cluster節點,上游模組連線到此位址,完成對中介軟體**的服務發現過程。

整體來講,中介軟體**分為兩大工作模式,即集群模式和本地模式,兩種模式各有所長,能夠滿足不同的測試場景。

從中介軟體的角度,改包策略有四種,auto,dataid,call_back和user_define模式,分別滿足不同的測試場景。

系統級測試場景指的是單模組的diff、stable測試場景,此場景需要保證基線版本和測試版本的模組具備相同的輸入和後端返回,測試被測模組的返回是否有diff,具體工作流程如下:

這裡要特別說明的就是資料中心儲存資料的方式,資料中心底層採用的是redis,是一種典型的key-value儲存,所以對資料key的設計尤為重要,這裡採用的是任務標識+鏈路標識+請求標識三種因子聯合計算sign,形成key,任務標識可以區分不同申請任務的資料不相互覆蓋,鏈路標識可以區分同乙個請求不同鏈路的資料不相互覆蓋,請求標識可以將同乙個任務,同乙個鏈路中的不同請求進行區分。value是返回方向的資料,這樣在資料錄製階段就形成了請求和返回資料之間的對應關係,所以在回放子環境中,同樣的請求發來的時候,中介軟體通過計算會得到相同的key,然後得到對應的value,並將此資料返回給上游模組,這樣就對真實後端進行了mock,從而被測模組b』的後端都會有穩定的一致性返回,能夠更精準的測試出基線版本的b模組和測試版本的b』模組自身的diff。

這裡要特別說明的是,這種聯調模式是對原有聯調環境的巨大顛覆,將多路復用思想體現的淋漓盡致,對測試效率的提公升是巨大的,對測試資源的節省也是巨大的,使用者還可以對此環境進行極致的多路復用,即不單單是在不同鏈路進行路由功能,還可以在不同鏈路進行資料錄製或者改包,這樣就可以把這套環境打造為一套真正的多路復用系統。

上面提到的中介軟體安全策略有3種,即熔斷、過濾和限速策略。這三種策略是基於線上問題的抽象。

混沌工程是中介軟體以sidecar的形式部署到被測模組所在機器,並支援部署在client端或server端,例如如果需要模擬第三方依賴的異常,由於是第三方依賴,中介軟體往往不方便部署在第三方依賴的服務上,所以可以部署在client端,如果是大扇出模組,每條扇出鏈路都會有很多的例項,在混沌測試時需要充分模擬被測模組對後端的排程機制,所以可以將中介軟體部署在server端,在排程**度上做到100%**。中介軟體可以支援對互動資料的異常和互動行為的異常,並能夠深入業務場景,精細化的模擬網路互動異常,例如模擬模組建立連線之後的斷開,這是其他工具無法做到的,配合染色機制,中介軟體可以做到精準異常注入,做到query級別的異常注入。

工作流程如下:

技術乾貨 · 行業資訊 · 線上沙龍 · 行業大會

歡迎各位同學關注!

中介軟體在電信行業中的應用

一 中介軟體技術在系統設計規劃方面的經驗總結 1.1 中介軟體應用架構的選擇 這種架構選擇的焦點就是業務邏輯到底是放在前台應用中還是放在後台中介軟體應用中。其實,引入中介軟體平台的原因之一就是業務邏輯的集中管理,出現這種爭論的原因主要是開發商對這種業務邏輯集中的理解不深,在應用設計的過程中仍然沒有擺...

支撐物聯網和雲計算的是中介軟體技術

近年來硬體軟體化 軟體服務化正成為大勢所趨。軟體正從面向過程 物件導向演變成面向服務,saas模式 的日漸成熟及一體化平台的風生水起,預示著資訊化 工程二次革命的到來,其中,中介軟體技術功不可沒。中介軟體 是繼作業系統和資料庫管理系統之後隨著網路的興起和發展而新興的一種基礎軟體,可以視為位於網路各結...

使用百度雲加速防apache的ab測試

apache帶的有乙個ab壓力測試的 具體的概念性的東西 咱不扯 有興趣的自行搜尋 這裡只簡單介紹使用方法 windows示例 e wamp64 bin apache apache2.4.17 bin ab.exe n1000 c100 mac linux示例 usr bin ab n1000 c1...