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