由微服務架構帶來的四大質量挑戰

fdve3952 7年前發布 | 11K 次閱讀 微服務

采用微服務所帶來的諸多優勢往往會在質量層面引發一系列挑戰。微服務近來已經成為優步、Netflix、Spotify以及Amazon等眾多重量級廠商的優先選擇。毫無疑問,這套架構方案在軟件開發生命周期內具備著巨大吸引力,但其帶來的諸多優勢亦往往會在質量層面引發一系列挑戰。

1.系統依賴性增加

根據定義,由整體式應用或服務過渡至微服務架構時會引入更多邏輯隔離組件。盡管這種拆分方式增加了縮放能力與靈活性水平,但亦引入更多依賴關系,使得系統整體更為復雜。具體來講,這意味著完整測試環境的配置與檢測指標更加難以衡量。

例如,假定我們設置的測試環境將原有應用程序拆分為10項Web服務。為了便于討論,我們假設每項Web服務各自擁有10項操作,且每項操作具備自己的一項獨立微服務(10乘以10)。原本的測試環境只需要訪問初始的10項Web服務,但如今新的測試環境則需要在全部測試場景中訪問100項經過妥善配置的微服務。

2.并行開發障礙

系統依賴性的增加還會給微服務的并行開發工作造成影響。系統依賴性擴展會產生兩種瓶頸類型:團隊需要等待其它團隊以完整相關微服務的并行開發,以及/或者團隊需要等待測試環境得到妥善配置(即包含全部相關微服務的正確版本)方可實現聚合、配置與設定。微服務數量越多,需要考慮的對象就越是廣泛,這意味著以并行方式開發及發布新功能就變得愈發困難。

3.影響傳統測試方法

傳統測試方法往往需要配合要求或者用戶背景,并通過UI測試進行驗證。而在微服務方面,我們則需要對測試策略進行整體變更,這意味著原有測試方法將不再適用。盡管通過UI實現的測試仍可在軟件開發生命周期末期順利起效,但微服務在消息層需要的方案無疑更加復雜。

另外,驗證各獨立微服務還只是第一步。我們還需要通過現具分布式特性的微服務架構檢查全部關鍵性事務的執行路徑。由于微服務的目標之一在于實現快速變更,因此我們必須意識到:

  • 與服務自身相關的素材會發生變化。
  • 這種變化會影響到其它服務的依賴性。
  • 這種變化會影響到關鍵性端到端事務。
  • 這種變化會影響到最終用戶體驗。
  • 需要在測試數據中引入更多新要求。
  • 需要應對更多非功能性要求,例如性能、可訪問性、可靠性以及彈性等等。

4.更多潛在故障點

微服務遷移的另一大負面影響在于引發大量獨立故障點。回到之前提到的簡單舉例,單一Web服務的失敗將影響全部10項操作。但在遷移后,拆分帶來的10項微服務各自都會在發生故障時影響其它9項服務。盡管微服務能夠利用隔離機制限定各獨立故障點的影響范圍,但開發測試人員必須意識到眾多活動組件所帶來的高度復雜性。

為了了解微服務變革給業務帶來的影響,開發測試團隊必須馬上對測試依賴性進行廣泛而嚴格的監控。另外,開發測試團隊還需要能夠深入訪問采用這類高度模塊化、分布式體系架構的測試環境。

 

 

來自:http://developer.51cto.com/art/201612/523993.htm

 

 本文由用戶 fdve3952 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!