【摘要】? ? 本文通過對單體應用架構(gòu)的企業(yè)級OA系統(tǒng)現(xiàn)狀進行深入分析,發(fā)現(xiàn)系統(tǒng)存在的問題,有針對性的提出了功能、性能、技術三方面的需求,并通過對系統(tǒng)功能設計、微服務架構(gòu)設計的詳細闡述,提出了一種基于微服務架構(gòu)思想和Spring Cloud框架重構(gòu)企業(yè)OA系統(tǒng)的方法。
【關鍵詞】? ? 微服務架構(gòu)? ? OA系統(tǒng)? ? Spring Cloud
引言:
互聯(lián)網(wǎng)、云計算等新一代信息技術的高速發(fā)展,企業(yè)對信息化的依賴程度日益加深,逐步建立了OA系統(tǒng)、ERP系統(tǒng)、主營業(yè)務系統(tǒng)等多個信息系統(tǒng),這些系統(tǒng)多數(shù)采用單體應用架構(gòu),各系統(tǒng)之間集成度較差,存在信息孤島。隨著應用程度的加深,在單體架構(gòu)中不斷累加新功能,導致系統(tǒng)越來越臃腫,開發(fā)維護變得十分困難,用戶體驗也變差。近年來,隨著微服務技術架構(gòu)的逐漸成熟,同時容器技術的出現(xiàn)為微服務提供了更好的應用環(huán)境,使得微服務架構(gòu)的優(yōu)勢快速凸顯,其優(yōu)異表現(xiàn)獲得了普遍認可,越來越多的企業(yè)開始對原先的單體架構(gòu)信息系統(tǒng)進行微服務化重構(gòu)。
本文將介紹一種基于微服務架構(gòu)思想和Spring Cloud框架,將企業(yè)OA系統(tǒng)重構(gòu)為微服務架構(gòu)的方法。
一、系統(tǒng)現(xiàn)狀
某企業(yè)OA系統(tǒng)最早建設于2013年,主要功能包括出差、請假、印章、培訓等辦公申請類綜合業(yè)務,采用傳統(tǒng)單體架構(gòu)模式,所有功能都被打包在一個應用程序之中。2015年,在原架構(gòu)中又新增了資金類業(yè)務功能,包括合同付款、費用報銷、差旅報銷等,并與銀行系統(tǒng)打通,形成資金的線上支付。2017年公司購買了主營業(yè)務系統(tǒng)軟件,涵蓋交易錄入、收發(fā)貨、運輸、結(jié)算等功能,產(chǎn)生了大量單據(jù)審批和模板打印需求,于是又與OA系統(tǒng)進行了深度集成,主營業(yè)務相關數(shù)據(jù)在主營業(yè)務系統(tǒng)中錄入,通過接口將數(shù)據(jù)集成給OA系統(tǒng),在OA系統(tǒng)中完成審批,并回傳審批結(jié)果。
隨著企業(yè)信息化應用水平的不斷加深,大量的功能模塊和外部接口不斷在OA系統(tǒng)中疊加,功能模塊數(shù)量超過100個,外部系統(tǒng)接口數(shù)量超過25個,系統(tǒng)變得越來越臃腫,每次系統(tǒng)更新部署重啟服務耗時接近1小時。由于開發(fā)團隊的不同,OA系統(tǒng)代碼可讀性、健壯性參差不齊,可維護性也變得更差。另外,因為OA系統(tǒng)運行多年,單據(jù)數(shù)量不斷累積,導致系統(tǒng)模塊加載時間過長,查詢、審批等待時間過長,用戶體驗越來越差。
二、需求分析
通過對企業(yè)OA系統(tǒng)的現(xiàn)狀分析發(fā)現(xiàn)主要存在功能臃腫、界面不清,性能下降導致用戶體驗較差,開發(fā)運維難度大、維護成本高等問題。歸納來看,通過對OA系統(tǒng)的重構(gòu)需要滿足功能、性能、技術三方面主要需求:
1.功能需求。對企業(yè)的業(yè)務需求進行全面重新梳理和分析,按照業(yè)務邊界重新劃分OA系統(tǒng)功能模塊,使各模塊功能更加貼合業(yè)務邏輯;摒棄非必要或已經(jīng)不在使用的功能,整合功能相似、相近的功能,改造使用頻次較低的功能,或與其他模塊融合,或提高其應用的普遍性;簡化用戶操作、優(yōu)化界面展示效果。
2.性能需求。業(yè)務量的提升帶來用戶并發(fā)數(shù)量提升、數(shù)據(jù)量提升,通過對OA系統(tǒng)的重構(gòu),需要加快系統(tǒng)功能的處理時間、響應時間,尤其需要解決財務月結(jié)時段高并發(fā)帶來的系統(tǒng)性能較差問題;需要充分考慮數(shù)據(jù)量累積帶來的效率緩慢降低問題,對數(shù)據(jù)的存儲、檢索邏輯進行優(yōu)化。
3.技術需求。將單體應用架構(gòu)的OA系統(tǒng)重構(gòu)為微服務架構(gòu),通過底層技術架構(gòu)的改造,對上層功能應用的優(yōu)化改造提供技術支撐。
三、系統(tǒng)功能設計
系統(tǒng)功能架構(gòu)如圖1所示劃分為四個層次,從下到上依次為PaaS層、服務層、應用層和訪問層。
1. PaaS層。為整個微服務架構(gòu)提供底層技術框架,包括容器服務、中間件服務和數(shù)據(jù)服務。
2.服務層。主要提供公共能力服務,包括統(tǒng)一用戶管理、統(tǒng)一身份認證、統(tǒng)一流程管理、統(tǒng)一門戶管理、統(tǒng)一服務管理、數(shù)據(jù)服務管理、運維監(jiān)控管理、接口管理、模板管理、消息集成管理。服務層為業(yè)務應用的開發(fā)、管理提供各項能力支撐。
3.應用層。根據(jù)企業(yè)業(yè)務邏輯將OA系統(tǒng)的應用重新劃分為綜合業(yè)務、資金業(yè)務、主營業(yè)務、運輸業(yè)務四個主要的應用服務。
1)綜合業(yè)務。主要包括請假申請、出差申請、印章申請、員工考勤、培訓管理、采辦管理、合同管理等功能。
2)資金業(yè)務。主要包括預算管理、合同類付款、非合同付款、費用報銷、差旅報銷、備用金管理等功能,并與銀行系統(tǒng)集成,實現(xiàn)資金的線上支付。
3)主營業(yè)務。主要包括交易申請、結(jié)算通知書申請、發(fā)票申請、增值稅發(fā)票申請、套保申請、許可證管理等功能,并與主營業(yè)務系統(tǒng)集成,實現(xiàn)業(yè)務數(shù)據(jù)的。
4)運輸業(yè)務。因為運輸業(yè)務相對獨立,所以從主營業(yè)務分離出來,成為獨立服務,主要包括運費管理、雜費管理、滯期費管理、船代管理、貨代管理、租船單等功能。
4.訪問層。提供用戶終端的訪問能力,支持電腦、手機、平板多終端訪問。
四、微服務架構(gòu)設計
基于微服務的理念對OA系統(tǒng)進行了如圖2所示的微服務架構(gòu)設計,首先前端與后端服務進行了分離,前端采用Vue.js+ElementUI,Vue.js是一個輕量級的框架,可以進行組件化開發(fā),有效減少代碼編寫量,其編寫出來的界面效果是響應式的,極大優(yōu)化了網(wǎng)頁在各種設備上顯示效果,而ElementUI是一個與VUE配合開發(fā)較好的UI框架。
后端采用SpringCloud微服務框架,使用Eureka組件實現(xiàn)服務的注冊與發(fā)現(xiàn);Zuul組件作為微服務網(wǎng)關,實現(xiàn)路由的轉(zhuǎn)發(fā)、過濾以及監(jiān)控功能;Ribbon組件提供負載均衡功能,使用輪詢算法將請求均勻的分配至一個服務的不同容器;Hystrix組件提供隔離、熔斷以及降級功能,避免因某個服務故障引發(fā)連鎖反應,導致整個系統(tǒng)崩潰;Sleuth組件提供服務鏈路追蹤功能,可以很方便的理清服務間的調(diào)用關系,而Zipkin則可以進行實時數(shù)據(jù)監(jiān)控,及時發(fā)現(xiàn)系統(tǒng)的性能瓶頸;Config Server則為系統(tǒng)提供配置的集中管理、動態(tài)調(diào)整、自動更新。
為更好的支撐微服務架構(gòu),采用了Docker容器引擎技術,每一個微服務均可以獨立部署在Docker容器中,具備高效部署、資源調(diào)度、服務發(fā)現(xiàn)和動態(tài)伸縮等功能,并使用Kubernetes對容器進行編排管理,簡化容器部署,提升部署效率。不同微服務之間使用REST API方式進行相互調(diào)用。底層采用基于RedHat Openshift的PaaS平臺,提供包括Kubernetes在內(nèi)的容器服務組件,以及多種微服務、中間件服務組件,為容器的調(diào)度、編排,微服務框架的部署、運行,中間件的配置、應用提供平臺級支撐。同時PaaS平臺還提供Gitlab等開發(fā)管理工具和APM、Prometheus等運營管理工具,能有效提升開發(fā)、運維管理水平。
五、結(jié)束語
本文從系統(tǒng)現(xiàn)狀分析、需求分析、功能架構(gòu)設計、微服務架構(gòu)設計四個方面詳細介紹了將企業(yè)OA系統(tǒng)重構(gòu)為微服務架構(gòu)的方法,對Spring Cloud框架及其主要功能組件進行了詳細闡述。
微服務架構(gòu)具有高內(nèi)聚、低耦合的特點,支持快速靈活部署、可擴展和技術異構(gòu)等優(yōu)勢,但微服務架構(gòu)也并不是萬能靈藥,依然具有其自身的缺陷,因此,企業(yè)在使用微服務架構(gòu)時,一定要結(jié)合企業(yè)的業(yè)務實際、組織架構(gòu)、團隊能力等多個方面進行綜合判斷。
參? 考? 文? 獻
[1]劉彤.基于微服務架構(gòu)平臺在OA系統(tǒng)中的設計與實現(xiàn)[J].民航管理,2018(07):73-76.
[2]王方旭.基于Spring Cloud實現(xiàn)業(yè)務系統(tǒng)微服務化的設計與實現(xiàn)[J].電子技術與軟件工程,2018(08):60-61.
[3]吳俠,艾芳菊.基于微服務架構(gòu)的眾籌系統(tǒng)[J].湖北大學學報(自然科學版),2020,42(01):103-108.
胡慶偉(1987.06),男 ,漢族,重慶市,大學本科,工程師,研究方向:信息系統(tǒng)集成。