官术网_书友最值得收藏!

1.5 微服務(wù)架構(gòu)的挑戰(zhàn)

將一個系統(tǒng)分散到多個微服務(wù)中使得系統(tǒng)整體結(jié)構(gòu)變得更加復(fù)雜,這在技術(shù)和架構(gòu)上同樣給我們帶來了一定挑戰(zhàn)。同時,由于各個微服務(wù)都需要獨立部署,我們就會有更多的服務(wù)需要單獨進行發(fā)布和運行管理,運維基礎(chǔ)設(shè)施也會面臨比單塊系統(tǒng)更大的困難。最后,微服務(wù)架構(gòu)在很大程度上改變了系統(tǒng)的研發(fā)過程,從團隊協(xié)作到需求管理等方面,都需要通過引入變化進行調(diào)整和完善。

1.5.1 技術(shù)架構(gòu)挑戰(zhàn)

微服務(wù)架構(gòu)是一種分布式架構(gòu),各個微服務(wù)之間需要通過網(wǎng)絡(luò)通信完成交互。網(wǎng)絡(luò)在連通各個微服務(wù)的同時也會產(chǎn)生響應(yīng)時間的延遲和通信過程的不可靠性。關(guān)于分布式系統(tǒng)固有的問題我們已經(jīng)在1.1.2節(jié)中做了介紹,這里不再贅述。另外,我們還需要注意到微服務(wù)架構(gòu)中的去中心化思想和服務(wù)版本控制所帶來的系統(tǒng)復(fù)雜性。

1.去中心化與平衡

微服務(wù)架構(gòu)所帶來的獨立性可能導(dǎo)致每個服務(wù)采用不同的技術(shù)體系。去中心化的設(shè)計思想意味著微服務(wù)之間不需要共享技術(shù),然而缺少通用的技術(shù)體系同樣也會加劇系統(tǒng)的復(fù)雜度。去中心化是微服務(wù)架構(gòu)的基本特征之一,但當(dāng)每個微服務(wù)團隊都采用自身團隊擅長的不同技術(shù)進行微服務(wù)構(gòu)建時,導(dǎo)致的問題就是沒有一個人能夠明白系統(tǒng)中所采用的所有技術(shù)。盡管多數(shù)情況下,我們并不需要深入到其他團隊的微服務(wù)中,但當(dāng)從統(tǒng)一發(fā)布和運維等角度去看待整個系統(tǒng)時,這種技術(shù)復(fù)雜性就可能會是一個問題。我們需要把控中心化和去中心化之間的平衡性。

2.服務(wù)版本控制

每個微服務(wù)都應(yīng)該具備與其他服務(wù)保持相互獨立的版本控制機制,我們提倡為每個微服務(wù)建立版本并根據(jù)業(yè)務(wù)迭代更新這個版本。如果每個服務(wù)都能夠完全按照自身服務(wù)的演進過程進行獨立發(fā)布,那么事情還比較簡單。但如果某一個服務(wù)與另一個服務(wù)具有版本關(guān)聯(lián)性,即這兩個服務(wù)要么都不發(fā)布、要么一起發(fā)布,那么事情就變得有點復(fù)雜。如果這些具有版本關(guān)聯(lián)性的服務(wù)很多且版本的更新頻率很高,如何正確地管理服務(wù)版本就是一項具有挑戰(zhàn)性的工作。

1.5.2 研發(fā)過程挑戰(zhàn)

在技術(shù)之外,采用微服務(wù)架構(gòu)也可能帶來研發(fā)過程上的挑戰(zhàn)。

1.需求的邊界

對研發(fā)過程而言,分散的服務(wù)在一定程度上等同于分散的業(yè)務(wù)需求,來源于微服務(wù)具有的業(yè)務(wù)獨立性和明確的服務(wù)邊界。但對于整個系統(tǒng)而言,需求的邊界并不會那么容易劃分。當(dāng)我們面對微服務(wù)架構(gòu),如何確定業(yè)務(wù)功能的粒度、如何把非功能性需求分解到各個微服務(wù)中、如何從系統(tǒng)整體上把握需求的優(yōu)先級等都是我們不得不面對的問題。

2.引入變化

對于大多數(shù)尚未采用微服務(wù)架構(gòu)的團隊而言,使用微服務(wù)架構(gòu)就是一個引入變化的過程。關(guān)于團隊引入變化,很多人存在一些誤解,其中最大的誤解就是認(rèn)為新想法一旦引入就意味著已經(jīng)成功。當(dāng)我們嘗試采用微服務(wù)架構(gòu)時,團隊管理人員想了很多辦法、做了很多工作,找到了問題的切入點,跟各個利益方討論之后終于引入了大家都贊同的變化,然后就期望這個變化能按照自己想的那樣發(fā)揮效果,這是不對的。當(dāng)微服務(wù)架構(gòu)被引入時,我們還要做很多事情,因為前面所提到的各種技術(shù)、架構(gòu)和過程的挑戰(zhàn)都需要我們進行跟蹤和協(xié)調(diào)。

主站蜘蛛池模板: 修武县| 达拉特旗| 阜南县| 普陀区| 平昌县| 黎城县| 博兴县| 木里| 江阴市| 庆云县| 都匀市| 龙井市| 徐闻县| 上饶市| 原阳县| 长兴县| 慈溪市| 临沭县| 临安市| 德庆县| 林甸县| 抚远县| 康平县| 安国市| 商洛市| 西畴县| 武汉市| 思南县| 郴州市| 建始县| 松原市| 博野县| 湄潭县| 苏尼特右旗| 霞浦县| 五大连池市| 鹿泉市| 治多县| 高邮市| 威信县| 长泰县|