午夜网站国产欧美_加勒比视频亚洲无码_91亚洲人人在字幕国产_18禁止美女爆乳免费网站_被消防员c哭高h野外糙汉动漫_午夜精品视频在线无码_gogowww人体大胆裸体午液_2021自拍偷区亚洲综合第一页_国产欧美一区二区精品性色超碰_99國產精品無碼

Hi,您好,歡迎來到西安盛圖軟件科技有限公司!

什么是多運(yùn)行時架構(gòu)?

發(fā)布時間:2023-08-07 15:17:10

服務(wù)化演進(jìn)中的問題

自從數(shù)年前微服務(wù)的概念被提出,到現(xiàn)在基本成了技術(shù)架構(gòu)的標(biāo)配。微服務(wù)的場景下衍生出了對分布式能力的大量需求:各服務(wù)之間需要相互協(xié)作和通信,以及共享狀態(tài)等等,因此就有了各種中間件來為業(yè)務(wù)服務(wù)提供這種分布式能力。

640.png

我們熟知的“Spring Cloud 全家桶”正是憑借著對各種中間件優(yōu)秀的集成與抽象能力,成為了當(dāng)時炙手可熱的項目。

然而隨著業(yè)務(wù)的快速發(fā)展,組織規(guī)模的不斷擴(kuò)大,微服務(wù)越來越多,系統(tǒng)規(guī)模越來越大則是服務(wù)化體系架構(gòu)演進(jìn)的必然。這就帶來了兩方面復(fù)雜度的上升:


1.服務(wù)治理與接入的復(fù)雜度


服務(wù)治理代表了系統(tǒng)中服務(wù)資源的地圖及其獲取途徑,例如通過注冊發(fā)現(xiàn)服務(wù)提供圖譜能力,路由、網(wǎng)關(guān)、負(fù)載均衡服務(wù)提供獲取途徑。


服務(wù)接入則代表了如何使用系統(tǒng)中的服務(wù)能力,例如通過中間件提供的 API 協(xié)議或是封裝的 SDK 來接入該中間件。各種業(yè)務(wù)服務(wù)越多、中間件越復(fù)雜,整個系統(tǒng)服務(wù)治理與接入的復(fù)雜度就會急劇上升。

2.團(tuán)隊協(xié)作的復(fù)雜度

該復(fù)雜度主要體現(xiàn)在團(tuán)隊的認(rèn)知負(fù)載上,復(fù)雜的依賴、溝通、協(xié)作將明顯拖慢交付進(jìn)度。正如康威定律所述的,由于服務(wù)復(fù)雜度的上升,團(tuán)隊之間的交互成本也隨之上升。

如下是復(fù)雜度上升問題的一個顯而易見的例子。

640.png

當(dāng)系統(tǒng)中的中間件都通過 SDK 作為其外化能力的控制方式,來封裝協(xié)議、數(shù)據(jù)結(jié)構(gòu)與操作方法。隨著中間件數(shù)量和種類不斷增多,大量孤立的 SDK 被綁定在業(yè)務(wù)服務(wù)上,導(dǎo)致兩方面問題:


如何治理這種不斷上升的復(fù)雜度呢?復(fù)雜問題歸一化是一種不錯的手段。

什么是多運(yùn)行時架構(gòu)


多運(yùn)行時微服務(wù)架構(gòu)(Multi-Runtime Microservice Architecture)也被簡稱為多運(yùn)行時架構(gòu),是由 Red Hat 的首席架構(gòu)師 Bilgin Ibryam 在 2020 年初所提出的一種微服務(wù)架構(gòu)形態(tài),它相對完整地從理論和方法的角度闡述了多運(yùn)行時架構(gòu)的模型(實際上,在 2019 年末,微軟的 Dapr v0.1.0 就已經(jīng)發(fā)布)。


暫時先拋開到底什么是“多運(yùn)行時”不談(因為多運(yùn)行時這個名字個人覺得起得可能不太妥當(dāng)),先看看多運(yùn)行時架構(gòu)都包括了哪些內(nèi)容。

分布式應(yīng)用四大類需求


上一節(jié)提到,為了治理不斷上升的復(fù)雜度問題,歸一化是手段之一。歸一化的第一步就是對問題進(jìn)行歸類。

Bilgin Ibryam 梳理了分布式應(yīng)用的各類需求后,將其劃分到了四個領(lǐng)域內(nèi):

分別是:


Bilgin Ibryam 認(rèn)為,應(yīng)用之間對分布式能力的需求,無外乎這四大類。且在 Kubernetes 成為云原生場景下運(yùn)行時的事實標(biāo)準(zhǔn)后,對生命周期這部分的需求已經(jīng)基本被覆蓋到了。

因此實際上我們更關(guān)注的是如何歸一化其他三種需求。

與單機(jī)應(yīng)用的類比


單機(jī)應(yīng)用一般大都是以用戶態(tài)進(jìn)程的形式運(yùn)行在操作系統(tǒng)上。顯然,與微服務(wù)類似,單機(jī)應(yīng)用的核心關(guān)注點也是業(yè)務(wù)邏輯,與業(yè)務(wù)關(guān)系不大的支撐能力,都要依賴操作系統(tǒng)來完成。


因此上述由 Bilgin 歸納的分布式應(yīng)用四大類需求,其實我們很容易就可以和單機(jī)應(yīng)用進(jìn)行合理的類比:

640.png

從上述類比來看我們發(fā)現(xiàn),單單是 Kubernetes 可能還不足以稱為是 “云原生操作系統(tǒng)”,除非有一種解決方案,能在分布式環(huán)境下,把其他幾項支撐能力也進(jìn)行歸一化整合,才能理直氣壯的冠此大名。

Service Mesh 的成功


Service Mesh 在近幾年的高速發(fā)展,讓我們認(rèn)識到網(wǎng)絡(luò)相關(guān)的需求是如何被歸一化并與業(yè)務(wù)本身解耦的:


通過流量控制能力實現(xiàn)多變的發(fā)布模式以及對服務(wù)韌性的靈活配置,通過安全能力實現(xiàn)的開箱即用的 mTLS 雙向認(rèn)證來構(gòu)建零信任網(wǎng)絡(luò),通過可觀察性能力實現(xiàn)的網(wǎng)絡(luò)層 Metrics,Logging 和 Tracing 的無侵入式采集。


而上述服務(wù)治理能力,全部被代理到 Sidecar 進(jìn)程中完成。這就實現(xiàn)了 codebase level 的解耦,網(wǎng)絡(luò)相關(guān)的分布式能力完全拋棄 SDK。

640.png



伴隨著 Service Mesh 的成功,我們不禁會想到,是否可以將另外的兩種需求——狀態(tài)和綁定 ——也進(jìn)行 Mesh 化改造呢?

分布式能力 Mesh 化

基于對 Service Mesh 的拓展,我們大可以將其他的能力也進(jìn)行 Mesh 化,每一類能力都以 Sidecar 的形式部署和運(yùn)作:

640.png

在業(yè)界也有不少從某些能力角度切入的方案

640.png



我們可以發(fā)現(xiàn),各類方案都有自己的一套對某些能力需求的 Mesh 化方案,合理地選擇它們,的確滿足了分布式能力 Mesh 化的要求,但卻引入了新的問題:


對業(yè)務(wù)復(fù)雜度上升的歸一化,現(xiàn)在變成了對 Mesh 復(fù)雜度上升的歸一化。



以上為本次所有分享內(nèi)容

640.png


上一篇:聊聊測試開發(fā)工程師的職責(zé)定位問題
下一篇:知識分享|如何做好服務(wù) API 的性能壓力測試

歡迎登錄盛圖科技

歡迎注冊盛圖科技

已有賬號,立即登錄