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

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

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

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

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



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

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

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