張新成 上海金橋信息股份有限公司
在系統開發領域,多年來,有關開發人員一直在探討更好的系統構建技術,從而最大程度地實現對資源的有效利用,同時大大提升運行效率。微服務架構作為立足于“云”的新技術,其的發展是對傳統服務器模式、基礎云計算模式等平臺形式的推陳出新。當前,有關人員對于微服務的評價呈現褒貶不一的情況,但不可否認的是,如果充分利用好微服務的自身優勢,應用于容器云的實踐,對于達成預期目標、提升行動效率具有極大的促進作用。
作為架構風格的一種,微服務架構并不能簡單是為某項具體服務,其的組成離不開多個服務系統的綜合運行。同時,微服務架構以“拆分”為其主要工作手段,鼓勵基于某一特定原則對大系統進行細化拆分。某種程度上來說,微服務架構具有系統的綜合性與構成的具體性。
在“拆分”的情境下,微服務架構每一項單個系統服務就具有了一定的獨立性,其通常僅需重點聚焦于某一特定的、單一的業務功能,其運行更是存在一道“高墻”,將各個服務獨立起來。這樣的獨立性為使用更加方便的輕量級通信創造了條件。基于微服務這些不同于傳統系統開發技術的特點,開發人員需要解放思想,打破傳統技術與開發方式的桎梏,尤其要注意立足于微服務開發的實際,堅持具體問題具體分析,從而實現更加完善、高效率與高質量并舉的深度開發。
從功能上來說,微服務架構本身就具有多樣性與層次性。由于單個服務時為獨立個體,自然就承擔起了不同的運行任務,發揮著多樣化的功能。這一特點就決定了綜合系統全局,不難發現各個功能片段的存在并不是完全互不干擾的,恰恰相反,某些功能片段回去系統的其他方面形成影響,但這種影響通常是積極的,主要表現為其“糾錯”機制,通過阻礙部分系統片段運行從而及時有效地防止系統失靈的發生,對于已經發生的問題實現抑制與解決。當問題發生時,微服務架構的反應與信息處理能力相對較高,能在較短的時間內實現,這種情形在與容器云結合時更為凸顯。
傳統架構尤其注重模式的整體性,換言之,其是一個單一的“塊”。在這種情境下,開發者可以利用相當的編程框架完成“流水線式”的開發、測試、調試等工作,其所需的復雜模型可以通過智能化的工具分解生成,可以減少消費者的時間投入,精度也得到了提高。但在業務不斷擴張的背景下,單一的“塊”式架構也顯得“力不從心”,其對于新變化的反應程度較低,且自身開發周期較長,難以滿足急劇變化的應用開發形勢。與傳統服務架構有明顯不同的微服務架構的出發點是架構層面,通過上述的“拆分”將復雜任務分解開來,系統開發者可以通過精確、合理的部署,完成高精度、高效率、程度可控的開發工作。
微服務架構的模式有效避免了選型的僵化,技術選型具有了更加廣闊的空間。作為技術選型的主體,開發設計人員可以更大程度上考慮開發需要及當前技術水平的特點,同時參考行業內經驗及發展實際,對于技術選型予以靈活、合理的處理。通常來說,微服務架構打破了復雜、困難的傳統模式,對于技術開發人員來說工作相對較為簡單,因此在開發及換代升級的過程中,開發人員無需面臨較大的風險壓力,即使是全面重構也相對靈活。這一特點大大便利的開發人員的工作。
合理的“拆分”與綜合運用是微服務架構的主題,在這種情境中,單個服務因承擔職責的單一與獨立,其對于整體服務的處理通常是一個“吸收-分解-再獨立”、生成新服務的完整鏈條。其產生對于整體的影響性較小,在“拆分”的情境下各個服務可以更好地實現對各自功能的實現及模塊整體的升級促進。與此同時,這一“拆分”過程并不意味著創造更為復雜、多樣的環境,恰恰相反,井然有序、獨立性強的服務避免了更復雜問題的產生,是一個將抽象問題具體化、復雜問題簡單化的過程。開發人員可以綜合利用人工技術,對于模塊水平予以再強化,其維護與運行都較為簡單。
“牽一發而動全身”,這一問題在傳統架構中常常困擾開發人員,但微服務打破了這種局限。各個服務的獨立性可以幫助開發人員進行具體化、獨立化的合理部署,工作程序大大簡化,工作精度也隨之提高。在面對架構故障時,也不用對對整個系統進行自上而下、由內到外的全面排查,只需通過對單個服務模塊的處理,就可最快速度地解決問題,對于提升工作效率、節約資源耗費成本具有積極作用。
微服務架構的容錯性來源于上述的獨立部署性。系統作為一個復雜個體,其組成模塊的故障往往會對其他部分的運行造成威脅,進而升級為全局性的阻礙。微服務架構的引入可以有效避免這種問題,單一模塊的獨立故障對于其他部分沒有影響,系統的全局性與穩定性得到了保障,在此基礎上較高的容錯性應運而生。
微服務架構的獨立部署性決定了其具體模塊的構建除了具有獨立、靈活的特點之外,更在系統擴展層面具有廣闊的發展空間,不同模塊的擴展可以充分結合本模塊的特點,根據自身需求決定擴展的廣度。在這種擴展下,單個服務之間的干擾性較弱,因此,各個服務的擴展形式及完成程度相對靈活。這種靈活、自由的情景可以促使開發人員針對各個獨立服務開拓更多元化的拓展項目,將系統的整體性風險降到最低,同時最大程度地增強系統的多元化與創造性。
微服務架構與容器云的有機結合是未來技術發展的必然趨勢,在這種應用中,微服務架構的優勢可以得到很大程度的發揮,當然,在實際操作過程中也存在一定的技術復雜性與困難性。但是,開發人員必須對這一應用擁有清醒的認識,即容器云本身輕量化的趨向可以有效迎合微服務架構的優勢。作為輕量化、容量巨大的載體,容器云的承載可以為微服務架構的順暢運行提供足夠的空間,在此基礎上的代碼傳輸及組織架構就相對容易。除了技術方面的優勢化,微服務架構與容器云的結合更符合創新驅動發展戰略的時代要求,在發揮資源的利用效率、避免產能過剩方面具有實踐意義,其也為互聯網時代共享化、便捷化的平臺效果創造了實際案例。
作為創新性的設計方式,微服務架構有效地打破了傳統開發形式的桎梏,對于便利開發人員工作、增強系統的穩定性與創造性具有優秀的促進作用。其在容器云中的應用具有較高的實踐價值,也必將迎來更深層次、更高廣度的開發機遇。開發人員把握這一技術特點,探索微服務架構應用于容器云的完善與發展,符合時代發展的必然趨勢。