毛潤菲
摘要 微服務是針對單一業務建立的、運行在獨立的進程中的功能單元;一組微服務有機結合就形成了微服務系統。微服務之間利用輕量級的交互機制進行通信,有靈活的技術類型、獨立的組件部署、持續的可交付能力、強容錯能力、可以按需擴展;大大提升了網絡資源的利用率,但存在著可靠性、故障診斷、服務流程組合等問題。本文將簡析微服務系統的可靠性分析、服務流程組合技術、故障診斷方法;希望能對以后微服務系統的發展起到推動作用。
【關鍵詞】微服務 微服務系統 可靠性 服務流程組合 故障診斷
1 微服務相關概念和起源
微服務的“微”是微小的意思,“服務”區別于系統是指用戶所能感知到的最小工作單位,是一個獨立的功能單元。微服務系統是一種熱門的軟件架構,可以將復雜的軟件應用工程分解為一個個小的子任務即微服務,從而實現按需擴展、靈活構建軟件。
微服務系統和軟件工程密不可分,軟件工程的概念自1968年提出以來,已經發展出來一系列的研究工具、實現語言、方法和完善的理論了。但是因為軟件頑固的不可見性、不穩定性和復雜性,急需有工具可以實現系統需求與系統詳細設計之間的過渡與交接,這時候軟件體系結構就出現了。早期的計算機資源是集中分布在一臺機器上,奠定了單體架構的基調。單體架構由多個子服務組成,多個子服務是一個整體,由于不能對每個子服務單獨擴展,限制了計算機資源的利用率。時代的選擇孕育了微服務架構,獨立的微服務可以有機地組合為微服務架構,每個微服務各司其職、互相交流、自動獨立部署、可以單獨被擴展。
2 微服務系統的可靠性分析
目前,網絡軟件主要是由微服務系統來展現和表達,可以實現網絡資源的集成和分享,十分符合現在的分布式計算機網絡的特點。但是異構、協同、動態的網絡可能隨時出現各式各樣的異常,使得微服務系統的可靠性大大降低、網絡服務質量大打折扣。要解決微服務系統的可靠性問題,我們應該借助“自適應”調整的概念與應用。在網絡超出了軟件設計的控制范圍時,需要系統具有自適應動態調整的能力,從而迅速、高效率地解決各種異常。其實就是通過數學模型、統計方法、動態數據以及依賴關系等進行的綜合計算與預測評估,來進行可靠性的控制。
3 服務組合流程技術
以太網中存在小粒度服務和大粒度服務,一個小粒度服務是實現一個服務模型描述的需求規則約定,一個大粒度服務能夠實現多個服務模型描述的眾多需求規則約定?;ヂ摼W中服務流程的目標是實現可靠性最優,小粒度服務在同粒度的服務組合中易實現目標,而大粒度服務模型通過構建最優大粒度服務流程模型同樣可以有效解決問題,最優大粒度服務流程建模是一個NPC問題,其求解過程非常復雜。至今的研究中已經有大量基于某具體服務質量最優的服務流程組合方法,但是條件是基于同一類型的小粒度服務。然而大家看問題都是從不同的角度來觀察分析,自然會從很不一樣的粒度上觀察分析同一個問題。這種需求就需要根據大粒度服務模型來解析問題,由于有大粒度服務流程組合解決多個服務模型,可以大大地減少提供商的溝通成本、減少候選的服務集合的數量、降低了提供商的技術差別問題率等等。結合啟發式求解算法、云計算技術可以得到建立最優大粒度服務流程組合模型問題的參考定義。
4 微服務系統的故障診斷方法
微服務將傳統單體架構的所有組件獨立開來,得到許多組件,組件的關系復雜,各軟件更新率高,大大增加了故障發生的概率以及診斷的難度。而且由于組件的依賴關系緊密,一個服務組件出故障時,會影響其他服務組件,出現泛洪現象,最后令服務質量下降。因此,找到有效的故障診斷方法、及時定位出錯原由,是微服務系統的關鍵問題之一。故障起因很多,設置人工報警準則無法適應復雜的組件依賴關系,針對該問題,提出一種基于執行軌跡監視測量的微服務故障診斷方法。利用樹形結構,算出差異數值,針對差異值即異常數值,調用主成分分析法最終得出診斷結果。
5 微服務系統的關鍵問題
目前微服務系統存在三個方面的問題亟待解決:
(1)早期針對單體架構的多實例部署的可靠性分析方法不適用于微服務系統,急需研究出解決微服務系統的多實例部署的可靠性的方法。
(2)隨著微服務系統的發展,針對單一的服務流程的可靠性分析方法已經不能滿足網絡服務,所以預估多業務流交互的微服務系統的可靠性也是一個關鍵問題。
(2)實現自適應調整的最直接有效的方法之一就是服務流程重組。根據服務流程模型和大力度服務候選集合的基礎組合服務流程也是一大難題。
6 結語
未來,微服務系統定會應用于生活的各種網絡業務中,我們必須認識到微服務系統強大的優越性,也需要了解目前該系統遇到的關鍵問題:可靠性較低、故障診段與問題定位、系統流程組合難題等。將來還有許多工作需要突破、完善,一步步走向理想的微服務系統。希望本文對微服務系統的簡析可以對下一步工作起到推動作用。
參考文獻
[1]開金宇,面向可靠性的微服務系統自適應調整技術研究[D].上海大學,2016.
[2] Antonia Bertolino. Software TestingResearch: Achievement s, Challenges,Dreams. FOSE 2007: Future of SoftwareEngineering, 2007: 85-103.
[3]Current Solutions for Web ServiceComposition. Nikola Milanovic,Miroslaw Malek. IEEE InternetComputing.2004.
[4]Dynamic Service Composition: State-of-the-Art and Research Directions.Dipanjan Chakrabort, AnupamJoshi.2001.
[5]張花萍,基于業務流程執行語言的服務組合技術研究及實現[D],華中科技大學,2007.