由微服務(wù)架構(gòu)帶來的四大質(zhì)量挑戰(zhàn)
譯文【51CTO.com快譯】采用微服務(wù)所帶來的諸多優(yōu)勢往往會在質(zhì)量層面引發(fā)一系列挑戰(zhàn)。微服務(wù)近來已經(jīng)成為優(yōu)步、Netflix、Spotify以及Amazon等眾多重量級廠商的優(yōu)先選擇。毫無疑問,這套架構(gòu)方案在軟件開發(fā)生命周期內(nèi)具備著巨大吸引力,但其帶來的諸多優(yōu)勢亦往往會在質(zhì)量層面引發(fā)一系列挑戰(zhàn)。
1.系統(tǒng)依賴性增加
根據(jù)定義,由整體式應(yīng)用或服務(wù)過渡至微服務(wù)架構(gòu)時會引入更多邏輯隔離組件。盡管這種拆分方式增加了縮放能力與靈活性水平,但亦引入更多依賴關(guān)系,使得系統(tǒng)整體更為復(fù)雜。具體來講,這意味著完整測試環(huán)境的配置與檢測指標(biāo)更加難以衡量。
例如,假定我們設(shè)置的測試環(huán)境將原有應(yīng)用程序拆分為10項(xiàng)Web服務(wù)。為了便于討論,我們假設(shè)每項(xiàng)Web服務(wù)各自擁有10項(xiàng)操作,且每項(xiàng)操作具備自己的一項(xiàng)獨(dú)立微服務(wù)(10乘以10)。原本的測試環(huán)境只需要訪問初始的10項(xiàng)Web服務(wù),但如今新的測試環(huán)境則需要在全部測試場景中訪問100項(xiàng)經(jīng)過妥善配置的微服務(wù)。
2.并行開發(fā)障礙
系統(tǒng)依賴性的增加還會給微服務(wù)的并行開發(fā)工作造成影響。系統(tǒng)依賴性擴(kuò)展會產(chǎn)生兩種瓶頸類型:團(tuán)隊(duì)需要等待其它團(tuán)隊(duì)以完整相關(guān)微服務(wù)的并行開發(fā),以及/或者團(tuán)隊(duì)需要等待測試環(huán)境得到妥善配置(即包含全部相關(guān)微服務(wù)的正確版本)方可實(shí)現(xiàn)聚合、配置與設(shè)定。微服務(wù)數(shù)量越多,需要考慮的對象就越是廣泛,這意味著以并行方式開發(fā)及發(fā)布新功能就變得愈發(fā)困難。
3.影響傳統(tǒng)測試方法
傳統(tǒng)測試方法往往需要配合要求或者用戶背景,并通過UI測試進(jìn)行驗(yàn)證。而在微服務(wù)方面,我們則需要對測試策略進(jìn)行整體變更,這意味著原有測試方法將不再適用。盡管通過UI實(shí)現(xiàn)的測試仍可在軟件開發(fā)生命周期末期順利起效,但微服務(wù)在消息層需要的方案無疑更加復(fù)雜。
另外,驗(yàn)證各獨(dú)立微服務(wù)還只是***步。我們還需要通過現(xiàn)具分布式特性的微服務(wù)架構(gòu)檢查全部關(guān)鍵性事務(wù)的執(zhí)行路徑。由于微服務(wù)的目標(biāo)之一在于實(shí)現(xiàn)快速變更,因此我們必須意識到:
- 與服務(wù)自身相關(guān)的素材會發(fā)生變化。
- 這種變化會影響到其它服務(wù)的依賴性。
- 這種變化會影響到關(guān)鍵性端到端事務(wù)。
- 這種變化會影響到最終用戶體驗(yàn)。
- 需要在測試數(shù)據(jù)中引入更多新要求。
- 需要應(yīng)對更多非功能性要求,例如性能、可訪問性、可靠性以及彈性等等。
4.更多潛在故障點(diǎn)
微服務(wù)遷移的另一大負(fù)面影響在于引發(fā)大量獨(dú)立故障點(diǎn)。回到之前提到的簡單舉例,單一Web服務(wù)的失敗將影響全部10項(xiàng)操作。但在遷移后,拆分帶來的10項(xiàng)微服務(wù)各自都會在發(fā)生故障時影響其它9項(xiàng)服務(wù)。盡管微服務(wù)能夠利用隔離機(jī)制限定各獨(dú)立故障點(diǎn)的影響范圍,但開發(fā)測試人員必須意識到眾多活動組件所帶來的高度復(fù)雜性。
為了了解微服務(wù)變革給業(yè)務(wù)帶來的影響,開發(fā)測試團(tuán)隊(duì)必須馬上對測試依賴性進(jìn)行廣泛而嚴(yán)格的監(jiān)控。另外,開發(fā)測試團(tuán)隊(duì)還需要能夠深入訪問采用這類高度模塊化、分布式體系架構(gòu)的測試環(huán)境。
原文標(biāo)題:4 Quality Challenges Caused by Microservices 原文作者:Cynthia Dunlop
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】