樊雷


摘要:傳統企業級系統服務采用一體化架構設計,系統龐大,結構復雜,運維和開發耦合度高,應用環境難以拆分,對底層硬件、開發語言、數據庫和應用版本依賴緊密,不具備應用環境和業務功能的彈性伸縮能力。該文通過分析傳統服務架構和微服務架構,提出了一種結合Docker容器和微服務技術的架構,在此架構下對企業級微服務應用進行容器化改進,采用容器封裝服務注冊和熔斷、消息總線、負載均衡、日志安全監控、業務微服務、存儲容錯等企業級應用,有效提高了系統應用環境和業務功能的彈性伸縮能力。
關鍵詞:微服務;Docker;企業級服務
中圖分類號:TP39? ? 文獻標識碼:A? ? ? 文章編號:1009-3044(2018)34-0025-02
1 傳統服務架構和微服務架構
企業級傳統服務架構一般采用一體化架構(Monolithic Architecture),即用戶通過瀏覽器端的UI和API接口使用各種系統服務,如訂單服務、產品服務、物流服務、用戶服務、監控服務、日志服務、存儲服務、備份服務等;系統后端采用一體化部署,其中系統業務邏輯功能通常采用MVC三層架構,系統整體采用單目錄結構。以PHP大型電商應用為例,其技術實現架構采用負載均衡代理服務器(Nginx)、緩存服務器(Redis)、WEB服務器(Apache)和數據庫服務器(Mysql)等提供服務的可用性和可靠性保障。為提高伸縮和可用性,在負載均衡器下面往往需要運行該應用的多個實例提供相應服務。架構缺點:運維部署不靈活、穩定性和功能擴展性有所欠缺、軟硬件耦合度緊密。
微服務是近年來新興的一種輕量級服務架構,采用基于Http的輕量級REST技術,實現大型應用服務碎片化拆分,可以有效實現服務自動化運維和部署以及微團隊服務開發。碎片化的微服務可以采用獨立編程語言(Python、Go、PHP等)實現、不同數據存儲技術和集中式API管理,實現了人、系統、環境、開發、運維之間緊密依賴關系的解耦。微服務通常可以有效滿足一個特定業務功能點需求,由小團隊獨立開發,不再強調大團隊整體協作開發(團隊人數和溝通成本成正比),從大而全轉向小而精。架構優點:分布式可移植、敏捷迭代版本、應用環境可變多樣。
2 基于Docker的微服務企業級架構設計
Docker是一種目前流行的開源容器引擎,實現了系統服務容器化封裝和應用彈性伸縮。容器間通過沙箱機制實現進程隔離,在云計算PaaS層可以實現秒級部署服務應用,優于IaaS層虛擬機分鐘級部署速度。優點:應用隔離、輕量級、秒級部署速度、運維成本低。
Docker和微服務分別關注系統運維和業務實現兩個不同方向,有效的補充了彼此間的短板。Docker通過虛擬化技術實現技術應用環境拆分,可分為業務邏輯容器、數據庫容器、儲存容器、隊列容器等若干個標準化容器,采用積木機制組合容器,提供容器間通信功能,可以為微服務提供實現基礎。采用容器承載服務,可以有效構建出大型復雜的微服務架構,圖4是基于Docker的企業級微服務架構的設計。
3 基于Docker的微服務架構的優點
Docker結合微服務的企業級服務架構突出優勢有以下幾點:
1)封裝和分布式:容器可以在分布式環境中實現內存級微服務應用封裝和隔離,無縫對接底層云計算IaaS平臺。
2)輕量級:Docker 可以在同一臺主機上運行更多的服務和應用,不會產生性能損失和額外的容量。
3)鏡像版本化和可復用:Docker采用tag機制可以版本化微服務環境,適配開發、測試、部署等多種環境需求,鏡像可打包迭代實現本地或云端版本化復用。
4)基礎設施可替換:底層可采用私有虛擬機、公有云或物理機等多種架構。
5)敏捷迭代:微服務的迭代版本可快速通過Docker進行多環境自動化部署。
4 結束語
隨著云計算、大數據等產業發展,Docker和微服務在企業級系統應用中得到了飛速發展。它們是云時代下IT開發和運維的必然產物,有效地提高了企業開發和運維效率,無縫對接現有軟硬件資源、人力資源,降低了企業IT運營成本。但是隨著系統碎片化,業務功能的拆分強化了DevOps技術壁壘,系統分布部署后問題追蹤難度增加,微服務數量增加后管理工作量和復雜性大大增加,另外Docker和微服務技術均屬于新興技術仍存在一定的瑕疵,在企業級服務大規模應用中存在一定的技術風險。
參考文獻:
[1] 肖堅. 基于Docker的應用服務云平臺的設計和實現[D]. 廣州: 華南理工大學, 2017: 17-20.
[2] 王方旭. 基于Spring Cloud和Docker的微服務架構設計[J]. 中國信息化, 2018(3): 53-55.
[3] 羅貴木. 基于微服務化的Web后臺系統架構優化及實現[D]. 北京: 北京郵電大學, 2017: 23-25.
[4] 馬雄. 基于微服務架構的系統設計與開發[D]. 南京: 南京郵電大學, 2017: 40-42.
[5] 馬恒. 適用于微服務架構的企業應用部署平臺研究[D]. 鄭州: 鄭州大學, 2018: 26-28.
【通聯編輯:謝媛媛】