杜 娟,于加娟
(江蘇省高新技術創業服務中心,江蘇 南京 210003)
隨著“大眾創業,萬眾創新”的興起,普通大眾創新創業活動已經成為推動區域經濟的新動力,大力開展創新創業活動也是各領域促進經濟發展的重要戰略手段。為了更有效地促進創新創業,充分激發雙創活力,打通創業就業服務“最后一公里”,需要設計實現一個能夠覆蓋創業全生命周期、全服務業態、全業務鏈條的,貫穿創業活動始終、連通線上線下的專業化服務平臺,實現資源要素的充分流動、流通、共享。
計算機技術的高速發展以及信息化服務的需求日益復雜,傳統服務方式已無法適應復雜的業務場景以及龐大的業務運行能力,微服務理念應運而生。基于 Spring Cloud 的微服務架構對雙創服務系統進行總體架構設計,把以往分散或分置的服務項目和業務體系,集成和擴展到統一的平臺系統,從而實現服務門戶、服務平臺、服務業務、服務流程、服務成果等的集中化、集約化。通過打通各職能部門、業務系統之間的數據和信息交互,打造一個資源豐富、服務專業、機制靈活、響應及時、體系完善、覆蓋面廣的雙創服務體系,提升創業服務智能化水平,讓服務更聰明,讓各類需求與供給更加方便快捷、更富成效[1]。
雙創服務系統中各個部件以服務的方式集成為大的服務平臺,以Java語言開發為主,涉及機器學習、自然語言處理、大規模數據采集和處理的功能以Python語言開發為主。系統總體以水平劃分方式展現的分層應用架構,從下到上依次為基礎設施層、數據服務層、平臺服務層、應用服務層和用戶訪問層。
為系統提供基礎支撐,包括物理運行環境和軟件運行環境。其中,物理運行環境主要是指硬件設備,包括主機、存儲設備、網絡設備、傳輸設備等,是系統能夠順利運行的基礎;軟件運行環境是指平臺使用的數據庫、操作系統、虛擬機等,是系統使用的基礎運行環境[2]。
為各個應用服務提供數據存儲服務。整個系統的數據流向是從基礎數據層向中間數據層、綜合數據層流動。
基礎數據層存儲各業務數據,包括用戶錄入的數據、系統通過接口或數據集成工具從其他系統導入的數據、系統自動采集的互聯網數據、用戶行為及操作日志數據、各種基礎配置數據等;中間數據層存儲各業務中間數據,如各類業務寬表數據、倉儲數據等;綜合數據層存儲數據中臺服務的綜合數據,如各類業務主題數據、跨部門的綜合業務數據以及面向外部用戶的需求、行為等方面的智能分析數據等數據層次及服務結構。
以微服務的形式提供與業務功能無直接關系的服務,具體包括數據交換服務、機器學習服務、數據清洗服務、緩存/消息服務等。
包括各個業務系統的后臺業務功能微服務,這些服務以接口方式為Web前端及移動應用提供調用接口。應用服務層可以細分為兩個子層,上面面向用戶訪問層的子層由各個業務子系統的后臺服務組成,可稱之為業務功能層;下一個子層是通用服務層。
面向Web端和移動端提供服務,面向Web端以統一門戶形式提供各類為前端服務的后端API服務接口;面向移動端的服務公共移動網關對移動App和微信小程序提供服務。
系統不僅需要滿足用戶注冊管理,還要支持各種活動報名、數據統計和服務管理,因此不僅需要滿足當前使用需求,還要保證后續用戶、數據規模擴大對系統的整體性能需求,具體須滿足以下要求。
2.1.1 功能需求
數據規模:系統的數據量在TB級以上,每年新增數據量在2~4 TB(視頻、音頻等多媒體數據量不計算在內),不包括音視頻的數據存儲量10~40 TB。
并發用戶數:支持最大同時在線用戶數不低于100 000人,并發用戶不低于1 000人。
性能要求:在符合帶寬需求的互聯網的環境下,當并發用戶數不超過500人,內外部用戶的業務功能訪問,系統響應時間應在3 s之內;超過500個并發用戶,系統響應時間在5 s之內。內部用戶的統計分析類功能訪問,綜合數據規模在100萬條以內,系統響應時間在5 s以內;超過100萬條,響應時間在8 s以內。
2.1.2 非功能需求
實用性和易用性:滿足實際工作環境和工作需求,能夠給現有工作帶來切實的幫助。人機交互良好,與常用系統操作方式相似,易學、易用、易操作。
可維護性:滿足管理用戶的自行維護需求。技術設計上須滿足分階段迭代完善及長期運營維護的目標,要求各個業務功能和支撐服務有很強的可靠性、可伸縮性、可維護性,滿足靈活方便的功能迭代演進、持續集成、持續發布。系統架構中所使用組件版本支持持續升級,升級后版本應能對原有應用維持良好兼容性能[3]。
可擴充性:在系統的設計過程中充分遵循國際/國內的行業標準,采用開放性的結構并預留好接口,確保系統的高度可擴展性。
先進性:系統支持云計算模式,支持面向共有云和私有云的部署以及云計算技術,支持IPv6技術。系統的建設要求運用先進的軟件技術架構、網絡技術、區塊鏈技術和先進的開發工具。
安全性和可靠性:通過用戶認證、權限認證、傳輸加密等安全保障機制,建立完善的安全管理體制,防止數據受到破壞。
為了確保系統運作規范有序,需要構建獨立的用戶權限管理系統,統一管理用戶注冊、角色定位和業務授權。通過單點登錄、身份認證以及權限管理,對各子系統中各應用服務的權限分配和變更進行有效的統一化管理,實現多層次授權,審計各種權限的使用情況,防止權限濫用。
不同的角色對同一個功能模塊可以有不同的功能操作權限。所有角色權限可按需配置,靈活變更。用戶角色來源廣泛、構成復雜,用戶角色、權限按照表1進行配置。
表1 系統用戶角色、權限
本系統開發采用基于Spring Cloud支持分布式運行的微服務技術路線,系統中各部件以服務的方式集成為大的服務系統,系統中的微服務之間松耦合,可被獨立部署在單個或多個服務器上。Java版本采用1.8+,Web服務器采用Nginx,數據庫采用MySQL集群、mongo dB集群,數據倉庫采用Kylin,數據庫和數據倉庫采用讀寫分離技術,分布式緩存中間件采用Redis,子系統、服務組件采用微服務技術,服務及軟件包根據運行操作系統環境和網絡環境支持主機部署和Docker虛擬化部署。具體技術架構如圖1所示。
(1)接入層:包含內部接口及外部接口,用來對接平臺上的各個服務模塊。內部接口是系統內部服務調用的接口,外部接口主要是給需要和本系統對接的第三方提供的接口。
(2)網關層:承擔著隔離外部訪問與內部系統的職責,可以實現用戶鑒權、動態路由、負載限流、日志統計等功能。
(3)業務服務層:是整個系統的核心,與業務需求相關,提供聚合服務和基礎服務。微服務主要是針對業務服務層進行的改造,將不同業務類型進行拆分,使業務能夠快速實現,而服務的改變并不會影響到業務,這樣系統應用也會更加穩定。
圖1 微服務技術構架
(4)支撐服務和平臺服務對應架構體系中的安全體系和運維體系的基礎部分,主要包括授權和認證服務、工作流引擎、規則引擎、資源目錄服務、數據加解密服務、數據脫敏服務、數據同步服務、消息服務、緩存服務、短信服務、NLP服務、日志服務、監控服務、大數據存儲服務、視頻音頻播放、運維監控服務等。
(5)基礎設施層:提供應用架構的基礎設施。包括硬件服務器、操作系統、網絡以及數據庫等底層資源。采用了虛擬化技術,將各種資源進行整合,為上層服務提供了最基本的資源保障。
2.4.1 安全保障體系
系統的應用級安全主要是訪問安全、數據存儲安全和數據傳輸安全。系統客戶端(Web瀏覽器、移動客戶端)訪問后臺服務采用https協議,保證內外網傳輸的安全性要求,對敏感數據前端加密后再通過https傳輸到后臺,后臺解密后需要脫敏的數據做脫敏處理,需要加密的數據后臺再加密(與前臺加密的秘鑰不同),然后再保存到存儲系統;客戶端調用后臺數據時,后臺服務從存儲系統讀出數據后解密,再用前端密鑰加密,傳輸給前端,前端客戶端解密數據展現在界面上,脫敏數據不需要額外處理。
2.4.2 運維保障體系
運維體系建設圍繞為應用服務這個目標進行,主要是為業務提供及時可靠的系統級配置管理和技術保障服務,對系統運行情況實時監控,及時解決系統運行中的各類故障。
運維體系建設主要分為業務運維功能開發和系統運維監控功能開發。業務運維包括數據備份、恢復功能、系統管理功能、創業服務管理功能、創業超市管理功能、創業主體管理功能等。運維監控對系統各個服務運行情況、安全訪問情況、主要業務數據情況、系統運行異常情況等數據進行實時展示,同時將異常信息以告警的形式發送到系統運維人員的移動App上。
2.4.3 標準規范體系
標準規范是整個系統在實施過程中須遵守的技術規范,除了要滿足軟件工程中的各類國標或部標規范外,各系統還要遵循統一的規范,包括各類命名規范、界面布局規范、UI交互式操作規范、服務接口定義及訪問規范、各類日志記錄規范、系統運維監控數據采集規范、微服務內異常處理規范、緩存使用規范、接口調用權限及數據訪問權限配置規范、系統中使用的各類公共組件/服務及spring cloud 基礎設施組件/服務使用規范等。對已有外部系統的集成也需要遵循或制定數據交換接口,以實現各類業務數據共享和業務協同處理。
本文主要設計和實現了一種基于Spring Cloud微服務架構的雙創服務管理系統,通過對數據服務系統的業務進行合理的微服務拆分,利用微服務架構技術的實施,有效提高了數據服務的可用性和可擴展性。在面對新的業務需求時,能夠進行快速響應和集成,提高系統運行性能和可靠性,節省了開發和擴展的成本。系統的建設著力促進業務建設的提速提質,構建科技創業服務生態體系,更大力度服務高水平創新創業建設。