這個神級功能,助你輕松搞定一套數(shù)百微服務(wù)的自測環(huán)境

Zadig 自測模式
自測模式是 Zadig 為降低環(huán)境管理復(fù)雜度和部署成本而推出的一種面向開發(fā)者的功能模塊。當(dāng)開啟了環(huán)境的自測模式后,該環(huán)境則成為基準(zhǔn)環(huán)境,開發(fā)者們可以基于基準(zhǔn)環(huán)境快速復(fù)制出屬于自己的自測環(huán)境(即:子環(huán)境),并且只關(guān)注和自己日常改動相關(guān)的服務(wù)。對于其上下游服務(wù)無需理會,基準(zhǔn)環(huán)境中會提供這部分服務(wù)的能力。圖示如下:

適用場景
Zadig 環(huán)境的自測模式能力尤其適用以下場景:
1
有一套完整的測試環(huán)境,但多人基于同一套環(huán)境協(xié)同合作開發(fā),測試環(huán)境資源有限,日常存在多名開發(fā)者互相等待環(huán)境的現(xiàn)象
2
業(yè)務(wù)規(guī)模大,服務(wù)數(shù)量級可觀,完整復(fù)制出多套測試環(huán)境的成本高
3
服務(wù)相互關(guān)聯(lián),受限于基礎(chǔ)架構(gòu),完整復(fù)制出多套測試環(huán)境的難度大
4
日常變更多,大量工程師協(xié)作,需要高頻的驗證
如何使用
下面以 simple-service 項目為例來說明如何使用環(huán)境的自測模式。項目中環(huán)境和服務(wù)背景,以及自測聯(lián)調(diào)需求說明如下:
項目中共包括 3 個微服務(wù) a、b、c,服務(wù)調(diào)用鏈路:a -> b -> c
dev 環(huán)境為日常完整穩(wěn)定的測試環(huán)境,包括全部微服務(wù) a、b、c
日常會對 a 服務(wù)進(jìn)行高頻改動,希望能對 a 服務(wù)進(jìn)行充分自測,確定其變更可交付
具體操作步驟如下。
管理員:開啟自測模式
在 dev 環(huán)境,開啟自測模式:

這時會對自測模式的依賴條件做檢查:
系統(tǒng)無法自動檢查 Tracing 組件,需要管理員自行確保,此處支持較為廣泛應(yīng)用的 SkyWalking、Zipkin、Jaeger 等。
系統(tǒng)會對 Istio 是否安裝做自動檢查,如果沒有請在環(huán)境所在集群進(jìn)行安裝
服務(wù)調(diào)用鏈自動檢查,主要依據(jù)是有 K8s Service 類型的資源和服務(wù) a、b、c 對應(yīng)

當(dāng)開啟自測模式后,dev 環(huán)境即成為基準(zhǔn)環(huán)境。
工程師:日常自測聯(lián)調(diào)
創(chuàng)建子環(huán)境
在 dev 基準(zhǔn)環(huán)境中通過點擊創(chuàng)建子環(huán)境,選擇 a 服務(wù)可創(chuàng)建包含 a 服務(wù)的子環(huán)境 dev-test-env1:



子環(huán)境服務(wù)請求
當(dāng)需要請求服務(wù) a 時,在請求的 Header 頭中加入 x-env:dev-test-env1 即可將請求流量轉(zhuǎn)發(fā)到子環(huán)境 dev-test-env1 中,實現(xiàn)子環(huán)境和 dev 環(huán)境的自測聯(lián)調(diào)。效果如下所示:
1、未加 x-env 請求頭,直接請求服務(wù) a,dev 環(huán)境中的服務(wù) a/b/c 會處理請求,子環(huán)境中無請求流量輸入。

2、增加 x-env: dev-test-env1 請求頭訪問服務(wù) a,子環(huán)境中的服務(wù) a 會接收到請求并給出響應(yīng),對于請求鏈路上的 b/c 服務(wù),dev 環(huán)境中的服務(wù)會給出正常響應(yīng)。

展望
開發(fā)者日常工作交互最頻繁的當(dāng)屬 IDE,Zadig 小伙伴也在緊鑼密鼓完善面向 IDE 的插件能力,結(jié)合 Zadig 自測模式,可以讓開發(fā)者輕松開發(fā)聯(lián)調(diào)又無需切換多個工作界面,大大提升開發(fā)者生產(chǎn)力和工作體驗。
自測模式的推出,對降低環(huán)境管理復(fù)雜度和部署成本效果顯著,同時也非常期待社區(qū)小伙伴的反饋,一起打磨完善,同社區(qū)一起迭代更好的易用性!
GitHub: https://github.com/koderover/zadig,歡迎大家前來圍觀。
掃描以下二維碼,添加 KodeRover / Zadig 小伙伴,備注 【姓名-公司-城市】,即可加入我們的「Zadig 開源吐槽群」
