謝紅, 薛凱, 楊夢瑩
(1.新疆維吾爾自治區科技項目服務中心, 新疆 烏魯木齊 830013;2.新疆電子研究所股份有限公司, 新疆 烏魯木齊 830013)
隨著科技的進步和發展,許多科技企業都擁有了自己的科研成果和創新服務,也隨之出現很多成果技術轉移和創業輔導的需求。由于缺少統一系統的管理,出現了創新服務資源分散[1]、科技成果轉移轉化率低等問題[2-3]。針對解決這一問題,本文提出一種穩定可靠的互聯網+和微服務模式下的管理科技創新服務資源的平臺,并對平臺實現的過程做了詳細的闡述和分析。
互聯網+科技創新服務平臺的根本目的是實現科技創新服務資源的管理與整合。通過互聯網+的模式,改變傳統創新服務資源分散的問題。其次要進行資源申請咨詢的流程管理,解決科技成果轉移轉化率低的問題。同時還可以在平臺看到創業創新服務,培養創業創新企業,發布科技創新資訊,從而提高科技創新能力。還需要考慮在大流量請求訪問過程中的平臺運行穩定性、可靠性和開發的可擴展性。平臺功能結構設計如圖1所示。

圖1 平臺功能結構圖
該平臺主要包括下列特性。
第一,平臺用戶分為兩種,包括普通用戶和企業用戶。平臺登錄時會根據用戶分類的不同決定系統的相應權限和不同的功能。
第二,在平臺當中,有科技創新成果的企業用戶,可以在平臺發布自己的支持成果轉移的技術成果、科研設備信息、技術服務等,發布后可以在平臺中展示出來。需要這些需求的用戶則可以登錄平臺進行瀏覽與查看。如果用戶有中意的內容,可以通過留言的方式留下聯系方式和姓名,企業用戶可以看到成果下留言咨詢的用戶,就可以進行線下的技術轉移流程,通過互聯網+的模式融合科技成果轉化流程,提高科技成果轉移轉化率。
第三,在平臺展示創業輔導專家,創業項目路演,創投機構的資訊,為需要創業的用戶提供幫助和指導。在平臺中還要展示科技創新服務的最新資訊、新聞、政策等,這些信息都由平臺及其后臺內容管理員發布和審核,通過互聯網+模式做了很好的信息資源整合。
第四,為保證系統的穩定性、可靠性和可擴展性,平臺采用微服務架構技術,這種架構技術將多個功能模塊分成不同的微服務進行分布式部署,在高流量高并發的平臺使用環境下起到有效的作用,對擴展性開發也有良好的支持作用。
在傳統的單體架構下,將系統中所有的業務功能模塊都集中在一個項目中,最終全部編譯打包統一部署,如圖2所示。

圖2 單一架構圖
功能模塊會利用同一塊存儲空間,相互之間通過API接口進行調用交互。雖然開發簡單,可以集中式管理。但是在實際應用中具有以下缺點。
(1)開發效率低維護差,因為代碼功能耦合度高,重復代碼多,修改或拓展某處功能代碼,有可能會影響到其他功能的使用或者需要等待其他功能的修改。修改完成需要重新部署構建系統,耗費時間精力,無法快速交付客戶需求。
(2)穩定性差,某一個功能模塊出現了微小的問題,都有可能導致整個項目無法運行,需要停掉整個系統進行問題排查。
(3)性能因素的考慮,因為所有的功能利用同一塊存儲空間,如果某一應用模塊出現高并發訪問,就會影響其他功能模塊的訪問性能,不適合復雜的應用環境。
為克服上述缺點,微服務架構將一個單體架構的應用,按照所需的業務劃分成相互獨立運行的程序即微服務[4-6],如圖3所示。

圖3 微服務架構圖
這些微服務之間通過Service Mesh(服務網格)進行通信,從而完成整個系統的業務邏輯。每個微服務可以采用不同的編程語言,使用不同的存儲技術。利用各自獨立的存儲空間,也可以進行各自獨立部署。這樣做具有以下優點。
(1)每個微服務足夠內聚,足夠小,代碼容易理解。每個微服務都可以有專門開發團隊開發,責任分明。如果某個微服務出現了問題,只需排查這一服務的問題,降低了排查問題的成本,有效地提高開發效率。
(2)微服務架構模式可以實現每個微服務經過更改后的獨立部署。開發者不再需要協調會對本微服務造成影響的其他微服務變更部署,一經測試即可立即部署,使得持續化部署成為可能。
(3)微服務架構使得每個服務得到了獨立的擴展性,可以僅滿足每個微服務自己的特定性能需求,進行硬件的配置,或者為提高穩定性增加微服務的實例數。并且微服務的代碼框架擴展與升級也不會相互影響,提高了系統的可擴展性,更適合復雜的應用環境。
由圖3的架構圖可以看出,每個微服務的服務是由Service Mesh(服務網格)[7]進行通信的。Service Mesh可以看作是微服務之間的新一代的通信協議,用于處理服務與服務之間通信的專用基礎設施層。本平臺使用一種目前最受歡迎的Sidecar模式的Service Mesh,如圖4所示。

圖4 SideCar模式的Service Mesh
每一個微服務都同步部署有一個Sidecar,微服務與微服務之間的通信代碼都寫在了Sidecar這個代理服務里面,Sidecar還可以為微服務提供熔斷機制、微服務降級、微服務限流、微服務索引、微服務發現、負載均衡、流量監控、日志系統、鏈路跟蹤、動態擴容等一系列便于管理服務的功能。在Flow Control里面可以設置網關,網關用來控制微服務之間的權限。Service Mesh對應用程序透明無侵入,屬于輕量級的網絡代理,在微服務開發領域受到歡迎。
微服務的目標是通過將系統分解成較小的可組合的部分,以便在需要的時候可以進行獨立的部署和開發測試,這種方便的系統架構越來越受到開發者的歡迎。
互聯網+科技創新服務平臺是基于微服務的在線服務平臺,如圖5所示。

圖5 互聯網+科技創新服務平臺微服務模式設計圖
按照功能邏輯劃分為6個微服務,下面通過分別闡述本平臺設計的每個微服務,來說明本平臺的設計思路。
用戶登錄與注冊微服務:該微服務用于平臺用戶的登錄與注冊。用戶會被分為企業用戶和普通用戶,該微服務還會提供接口來判斷用戶類別,來驗證用戶的平臺使用權限。
企業信息發布微服務:該微服務是平臺的核心微服務,主要實現科技企業用戶發布自己能支持成果轉移、成果使用的技術成果和科研設備信息,以及所能提供的創新服務還有科技企業自己擁有的專家人才信息。該服務需要與用戶登錄與注冊微服務交互,判斷用戶是否為企業用戶,才能進行信息的發布操作。企業用戶將科技創新服務等信息發布后,經過審核,將會在平臺中展示出來,供給所需要的用戶瀏覽與咨詢。
咨詢留言與創新服務申請微服務:如果用戶在平臺中瀏覽到了自己所需要的科技創新服務和創業服務信息,需要通過這個微服務進行咨詢與申請,用戶在所需要的科技創新服務下留下自己的聯系方式,發布這個服務的企業用戶就會看到,并會進行相應的流程處理。該微服務需要與用戶登錄與注冊微服務交互,來判斷用戶的登錄狀態。與企業信息發布微服務和平臺內容發布微服務交互,獲得企業發布和平臺發布的創新服務等信息。與創業服務微服務交互,獲得平臺發布的創業服務信息。
創業服務微服務:該微服務展示創業輔導專家、創業路演、創投機構的資訊供給需要創業咨詢的用戶瀏覽與咨詢。與平臺內容發布微服務交互,獲得平臺發布的創業資訊信息。和咨詢留言與創新服務申請微服務交互,給申請的用戶提供創業服務的資訊信息。
平臺內容發布微服務:該微服務主要功能是實現平臺后臺內容管理員進行發布創業服務資訊,科技創新資訊新聞等內容。與創業服務微服務和科技創新資訊微服務交互提供內容展示,和咨詢留言與創新服務申請微服務交互,為需要申請的用戶提供咨詢服務。
科技創新資訊微服務:該微服務的主要功能是展示科技創新的新聞和政策等一些資訊,供需要的平臺用戶瀏覽查看。與平臺內容發布微服務交互,獲得平臺內容發布的資訊信息。
在這些微服務中,為了保證系統在大流量請求中可靠穩定的運行。通過在Service Mesh里面的代碼設置,給需要穩定性方面的用戶登錄與注冊微服務、企業信息發布微服務、咨詢留言與創新申請微服務提供負載均衡,動態擴容,微服務限流,熔斷機制功能。為了便于監控微服務之間是否健康運行,為平臺內的所有微服務增加了流量監控、日志管理、鏈路追蹤等功能。這些微服務通過互相交互信息,能夠整合管理科技創新服務信息,完成整個技術轉移、創新服務、創業服務的服務流程,并且保證了平臺功能的獨立性、可維護性和性能穩定性。
用戶登錄和注冊功能構建了Users類。用戶注冊填寫的信息,包括是否為企業用戶和普通用戶的分類信息,都會構建Users類的對象,再調用對象里的Add()方法將信息保存在數據庫中。用戶登錄時則會通過用戶名和密碼的驗證構建出Users類的對象,再用這個對象獲得其他微服務傳來的信息,進行一系列的權限操作。
企業信息發布微服務、創業服務微服務、平臺內容發布微服務、科技創新資訊微服務,這4個微服務主要邏輯是發布審核與顯示的功能。實現方法是構建了Article的實體類,通過用戶填寫需要發布的相關內容,構建成Article的對象,調用對象中的Audit()進行審核,調用對象里的Add()方法將信息保存在相應的數據表中。并且Article對象給需要的微服務提供讀數據的接口GetArticle(),完成其他微服務之間的交互提供功能服務。
構建了FeedBack類,用戶填寫留言后將會構建FeedBack類的對象,與每個信息發布類微服務做綁定,調用對象中的Add()方法將內容和微服務綁定關系保存到數據庫中。信息發布類微服務可通過綁定關系,調用FeedBack類對象的交互方法GetFeedBack(),得到相應的留言咨詢,提供創新服務。
Service Mesh是微服務之間交互的“路由”,平臺中微服務之間的Service Mesh是基于Istio項目實現的,Istio是一個適用于微服務的開源解決方案。在服務器上部署Istio項目后,再將項目中每個微服務部署到Istio下,Istio就可以為它們提供信息通信、負載均衡、服務發現、流量管理等功能,減輕了開發工作。
本平臺已上線,搭建在新疆維吾爾自治區科技項目服務中心,給全疆范圍內的科技企業提供創新服務支持,目前處在試運行階段。以軟件開發者的角度,微服務分布式的架構更容易分配工作,并且由于每個微服務可以由不同代碼語言進行編寫,便于更大范圍地收納開發人才,減輕開發工作負擔。用戶反映系統運行穩定,響應速度快。平臺為科技創新服務提供了穩定可靠的服務。
文中根據互聯網+科技創新服務平臺的功能模塊特點,將平臺與微服務技術相結合,對本平臺的微服務平臺框架進行了分析和設計,并列出了每個微服務之間需要交互的功能。通過微服務架構模式下的平臺開發和設計,我們更深刻地認識到,微服務架構模式對科技創新服務平臺的開發和部署上提供了很好的穩定性、可靠性和可拓展性,平臺在科技成果轉移和資源整合的方向上也提供了很好的應用方案。微服務架構是很實用的一種平臺架構,這種模式給很多復雜功能以及需要應對大流量訪問的系統提供了技術保障,是分布式系統框架的一種新的方向。