江蘇大學:基於微服務構建分布式數據服務平臺

2021-01-11 中國教育和科研計算機網

  微服務的概念由Martin Fowler和James Lewis於2014年共同提出,它是一種軟體架構思想,將單一應用程式拆分為眾多的小型服務組件進行開發,其中每個服務組件擁有自己的進程和通信機制,可實現自動化輕量級獨立部署,且各個服務可通過不同的程式語言實現並使用不同的數據存儲技術。

  高校信息化發展已進入智慧校園建設階段,但制約其快速發展的一個重要因素即是數據,部分高校已經建設了統一的中心化數據平臺並提供數據服務,然而效果並不明顯,主要表現為以下幾個方面:1.信息系統分散,核心業務數據同步至中間庫(共享庫)滯後或者無法獲取;2.數據質量不高,數據更新不及時,形成斷層現象,導致數據不一致;3.業務部門缺乏安全意識,數據洩漏或線下傳遞現象頻發;4.重複的硬體成本投入;這種中心化的建設方式在數據準確性、及時性及系統的擴展性和易維護性等方面均難以滿足智慧校園建設對數據服務的要求。

  本文從高校信息化建設自身特徵出發,基於微服務架構思想,採用分而治之,集中監控管理的方法,構建分布式數據服務平臺(DaaS),規範數據接口和數據來源,為應用系統、移動應用等提供權威的數據保障,助力智慧校園快速發展。

  平臺設計方案

  服務劃分原則

  要實施微服務治理,首先面對的問題如何劃分業務從而實現服務化,基本的解決思路是拆分和分層。拆分的策略有兩種即橫向拆分和縱向拆分,橫向是指根據業務域進行,從而形成獨立的業務微服務集群。縱向是指針對某一模塊或組件拆分形成獨立的原子服務。分層是指梳理、抽取核心或者公共的原子服務下沉至核心或公共服務層,逐步形成穩定的底層服務。其次是拆分的粒度,這是服務拆分的難點,微服務架構也是循序演進的過程,可參考以下原則:1.功能完整,職責單一;2.API版本兼容性優先;3.迭代演進,團隊可接受。

  業務梳理

  高校業務系統的建設質量參差不齊,大部分業務系統管理嚴謹,數據完整,接口規範,能獨立向外提供數據服務。相反,部分業務系統在數據和對外接口方面均不完善,形成了數據孤島。針對高校業務系統的現狀和數據的提供源,本文將微服務數據平臺的服務分為兩類:原生型和代理型。原生型是指業務系統本身不對外提供數據接口服務,基於微服務技術進行開發集成,數據源直接取自(非)關係型資料庫。而代理型是指業務系統已有基於SOAP協議的WebService服務,將其封裝註冊至微服務組件中。

  架構設計

  如圖1所示,本文構建的微服務分布式數據平臺主要包括三個部分:數據源、微服務組件、數據管理平臺。

  數據源是微服務事實的實際數據提供者,從資料庫種類上分,既有關係型資料庫,也有非關係型資料庫。從來源上分,既有實際的業務資料庫,也有基於數據同步機制的傳統共享庫。實際業務庫主要提供實時的數據來源,如統一認證庫、人事資料庫、一卡通帳戶等,而共享庫主要提供離線的數據分析,將分析結果對外提供數據服務,如科研成果、一卡通歷史消費、論文數量等。

  在微服務架構設計中,需要核心組件作為技術支撐,包括:1.服務註冊中心,主要實現服務的註冊與發現,微服務之間通過註冊中心彼此感知,同時從註冊中心訂閱自己需要引用的服務。2.服務網關,它是外部調用數據的唯一入口,對外屏蔽系統內部結構,提供動態路由、監控、授權等功能。3.容錯機制,每個微服務一般會有多個實例服務提供服務,為保證服務高可用,需要提供負載均衡及熔斷機制。4.統一的配置管理,提供集群中心化的統一集中配置,簡化開發和運維的繁瑣。5.日誌和監控管理,微服務是獨立的服務組件,種類和數量繁多,需要通過日誌和統一管理界面監控各項指標及出錯的鏈路跟蹤。

  數據管理平臺主要負責對平臺的界面化統一管理,包括微服務節點狀態監控、應用授權、開發者帳號授權、標準化文檔維護等。

  技術實現方案

  通信協議

  本文設計的微服務平臺採用輕量級的通信規範,微服務之間的通信遵循REST風格,而數據交換格式採用JSON。對於REST及JSON的相關概念,本文不再贅述。基於這種風格的通訊機制,與傳統的基於SOAP和WSDL的服務相比更簡潔。

  技術框架

  目前實施微服務架構可供選擇的方案有Dubbo和SpringCloud,前者是開源的服務治理框架,服務調用方式採用RPC,是實現微服務的基礎組件,對於微服務涉及的其他必要組件未必提供。而SpringCloud是由Spring開源社區提供,整合了現有的服務治理的主流技術,包括服務註冊中心(Eureka)、網關(Zuul)、配置管理(Spring CloudConfig)、消息總線(Spring CloudBus)、負載均衡(Ribbon/Feign)、熔斷器(Hystrix)及一些工具包,比如數據流操作工具(Spring CloudStream)、安全工具包(Spring CloudSecurity)等,覆蓋微服務實施的方方面面,底層基於SpringBoot技術,天然的支持RESTful風格。

  平臺實現

  基於SpringCloud微服務框架可方便的構建出數據平臺的原型,如圖2所示。每個獨立的微服務均提前註冊至註冊中心(EUREKA),客戶端的請求通過網關(ZULL)分發,根據請求接口路由至相應的微服務,對於每個微服務一般會有多個節點,採用Ribbon做負載均衡保證服務可用,而Hystrix做熔斷器來避免服務調用的雪崩現象,集群的統一配置文件通過配置中心及時更新實現。

  為保證微服務之間接口調用的安全,需要進行服務之間的身份認證。簡單的做法可以使用IP位址段隔離來保護被拆分的服務,適合於短時間內迅速遷移服務的場景。從長遠來看,此種方式存在局限性,對網絡架構存在依賴性,故本文設計的架構中採用JWT(JSON Web Token)方式進行身份認證,客戶端的請求經過網關時會向授權中心(AUTH)請求JWT,當實際請求到達某個微服務的時候,微服務會向授權中心獲取JWT驗證是否是合法的請求。同時授權中心還承擔給應用授權的任務,一般新申請的應用授權中心會分配一組App ID和App Secret,通過數字籤名和驗籤的過程來校驗應用的合法性。

  根據實際業務出發,本文設計的微服務分為兩種,一種是公開信息類服務,另一種是受限類服務。前者是指無需數據擁有者授權即可使用,此時只需申請的應用在授權中心註冊即可,比如通知公告類,本身新聞數據是對外公開的,為防止接口的惡意調用,只需對應用進行授權驗證即可。後者指的是私人敏感數據,需要數據擁有者授權後方可使用,比如課程、成績等,該服務基於Oauth 2.0協議,配合學校統一身份認證平臺實現,用戶一卡通號和密碼經過統一身份認證後,授權給第三方應用使用數據。

  數據安全管理

  數據安全是高校信息化建設過程中一直面臨的問題,主要原因在於業務系統分散管理,業務部門對數據的安全性重視程度不夠,作為私有財產保護的同時缺乏技術手段進行管理。數據安全管理需要技術和行政手段共同發揮作用,本文構建的分布式數據平臺從技術層面進行統一規範管理,基於授權認證機制保證數據的相對安全。在業務系統作為微服務接入數據平臺的過程中,對資料庫帳戶密碼安全性、授權範圍、防火牆配置等方面進行規範,而對於使用數據的開發者,平臺通過註冊授權方式指定特定數據接口的使用範圍、使用期限,遵守接口文檔的使用規範,開發調試期間數據經過脫敏處理。而行政管理手段,首先是健全數據管理隊伍,學校層面大力支持,信息化部門和二級單位積極配合,明確實行數據共享的意義。其次對數據使用者而言,按照「誰使用,誰負責」的原則,在嚴格履行數據使用申請、審批、籤署保密協議的基礎上,信息化部門還要加強數據的使用監督和安全風險提示,對存在安全隱患的使用方式停止數據提供。

  微服務數據平臺不是對原有數據倉庫或共享庫的顛覆,而是有效補充,原有的數據中心或者數據倉庫是離線數據挖掘和分析的重要數據源,是微服務數據平臺重要的數據支撐。從實踐效果來看,平臺服務鬆耦合,易擴展,數據共享靈活,運維方便,是構建統一數據平臺強有力的技術手段。(責編:楊燕婷)

  (作者單位為江蘇大學信息化處網際網路與計算技術研究所)

本文刊載於《中國教育網絡》雜誌2018年6月刊

相關焦點

  • 打造企業級微服務平臺架構,分布式應用場景管理
    在分散的組件中使用微服務雲架構和平臺,使部署、管理和服務功能交付變得更加簡單。微服務管理是利用組織的服務投資組合,然後基於業務領域功能分解它們,在看到服務投資組合之前,它還是一個業務領域。 ▲ 微服務平臺框架NSF 微服務框架NSF是基於雲原生技術的微服務管理平臺,提供完整的服務治理能力,支持 Spring
  • 擁抱TARS:構建 PHP 微服務生態
    微服務生態有些什麼意義。PB Server 構建了一個 gRPC 服務,這個服務部署在 TARS 平臺上,參與 TARS 平臺尋址,受 TARS 平臺管理。這個服務使用 gRPC on Http/2 作為網絡通訊協議,使用 Protobuf 作為編碼協議,可以和其它 PB Client 協同工作。
  • 基於Spring Cloud的開源的、分布式的物聯網(IOT)平臺源碼分享
    FIOT是一個基於Spring Cloud的開源的、分布式的物聯網(IOT)平臺,用於快速開發物聯網項目和管理物聯設備,是一整套物聯繫統解決方案。1 什麼是FIOT IOT平臺?:用於提供標準或者私有協議連接物理設備的SDK; 設備管理層:用於提供微服務註冊中心、設備指令接口、設備註冊與關聯配對、數據管理中心,是所有微服務交互的核心部分; 系統服務層:用於提供任務調度、報警與消息通知、日誌管理; 數據開放服務層:用於提供數據開放等服務...
  • 基於Springcloud搭建電商平臺實現高性能高並發微服務
    它的主要功能如下:服務的註冊和發現服務的負載均衡服務的容錯服務網關服務配置的統一管理鏈路追蹤實時日誌Spring cloud說到微服務就不得不說Spring cloud,想必大家對Spring可以說基於Spring cloud能在任何環境中進行開發和調試,包括自己的筆記本電腦、公司的區域網環境以及CloudFoundry等託管平臺。
  • 華為公布鴻蒙系統:基於微內核的全場景分布式OS
    餘承東表示:鴻蒙是一款基於微內核的全場景分布式OS。華為發布鴻蒙系統:基於微內核的全場景分布式OS餘承東表示,鴻蒙OS是基於微內核的全場景分布式OS,這是分布式架構首次用於終端OS,可以實現跨終端無縫協同體驗。鴻蒙系統系統4大特點據悉,「微內核」是鴻蒙OS的特點之一。
  • 基於微內核的全場景分布式 OS
    華為開發者大會於8月9日-8月11日舉行,華為消費者業務CEO、華為技術有限公司常務董事餘承東以《全場景時代新體驗與新生態》為題發表演講,正式發布自有作業系統:鴻蒙。由此他提出了「微內核」的概念,也是鴻蒙OS的特點之一。區別於「宏內核」,微內核採用同一套操作平臺,針對不同硬體能力的產品進行部署,並採用分布式架構,提升效率。也就是說,手機和車載設備的用途不同,灌入同樣系統無必要,但它們可以採用同樣的內核,部署不同的界面或功能。
  • 微服務平臺之全鏈路追蹤
    鏈路追蹤組件通過在微服務應用中以代碼侵入或者非侵入的方式進行數據表示、埋點、傳遞、收集、存儲、展示等技術手段,達到將一次分布式請求還原成調用鏈路,將一次分布式請求的調用情況集中展示,比如各個服務節點上的耗時、請求具體到達哪臺機器上、每個服務節點的請求狀態等等。
  • 微服務平臺之全鏈路追蹤
    鏈路追蹤組件通過在微服務應用中以代碼侵入或者非侵入的方式進行數據表示、埋點、傳遞、收集、存儲、展示等技術手段,達到將一次分布式請求還原成調用鏈路,將一次分布式請求的調用情況集中展示,比如各個服務節點上的耗時、請求具體到達哪臺機器上、每個服務節點的請求狀態等等。
  • 智能家居巨頭 Aqara 基於 KubeSphere 打造物聯網微服務
    背景:從傳統運維到容器化的 Docker Swarm 編排,從 Docker Swarm 轉向Kubernetes,然後在 Kubernetes 運行 SpringCloud 微服務全家桶,到最終擁抱KubeSphere,並基於 KubeSphere 打造綠米聯創自己的物聯網微服務平臺,綠米聯創已在生產環境中穩定運行 KubeSphere
  • 一個基於Spring Cloud的分布式的物聯網(IOT)平臺源碼學習分享
    架構設計模塊劃分,四層架構驅動層:用於提供標準或者私有協議連接物理設備的 SDK,負責南向設備的數據採集和指令控制,基於 SDK 可實現驅動的快速開發;數據層:負責設備數據的收集和入庫,並提供數據管理接口服務;管理層:用於提供微服務註冊中心、設備指令接口、設備註冊與關聯配對
  • 不懂分布式事務,別說你懂微服務
    最近學習了一下微服務下數據一致性的特點,總結了下目前的保障微服務下數據一致性的幾種實現方式如下,以備後查。此篇文章旨在給大家一個基於微服務的數據一致性實現的大概介紹,並未深入展開,具體的實現方式本人也在繼續學習中,如有錯誤,歡迎大家拍磚。1.
  • 微服務雜談:為什麼我不推薦你盲目追求微服務?
    微服務是用來把控複雜系統的,但是隨之而來的就是引入了微服務本身的複雜度。需要解決包括自動化部署、監控、容錯處理、最終一致性等其他分布式系統面臨的問題。即使已經有一些普遍使用的解決方案,但是仍然是有不小的成本的。
  • 華為鴻蒙系統四大特性:基於微內核,面向全場景,分布式架構
    餘承東在介紹鴻蒙OS開發初衷時表示:「隨著全場景智慧時代的到來,華為認為需要進一步提升作業系統的跨平臺能力,包括支持全場景、跨多設備和平臺的能力以及應對低時延、高安全性挑戰的能力,因此逐漸形成了鴻蒙OS的雛形,可以說鴻蒙OS的出發點和Android、iOS都不一樣,是一款全新的基於微內核的面向全場景的分布式作業系統,能夠同時滿足全場景流暢體驗、架構級可信安全、跨終端無縫協同以及一次開發多終端部署的要求
  • 江蘇法院旗艦店、江蘇微法院入駐江蘇政務服務網,在線提供37項服務...
    記者昨日從江蘇省政務服務管理辦公室獲悉,在江蘇省高級人民法院和江蘇省政務服務管理辦公室的共同努力下,江蘇法院旗艦店近日正式入駐江蘇政務服務網,江蘇微法院小程序入駐江蘇政務服務微信小程序,拓寬訴訟服務渠道,在線提供37項服務,讓群眾打官司不用反覆跑腿了。
  • 微服務中臺技術解析之全鏈路分布式追蹤系統實踐
    Biz-UI團隊在核心業務系統的開發過程中,將具有共性的功能模塊抽象出來,逐漸完成了中臺的構建,為業務邏輯提供了強有力的基礎組件支撐。其中分布式追蹤系統作為一個重要的組成部分,為監控服務之間的調用、定位和調試線上問題,提供了有力的支撐。本文將詳細剖析FreeWheel Biz-UI團隊從0到1構建和改進全鏈路分布式追蹤系統的過程。
  • 基於CDN和IPQAM構建分布式VOD平臺
    CDN是構建在IP網絡上的一種分布式的內容分發網,主要採用「中心—邊緣」的存儲與服務分布方式。它的基本原理就是在分布的地區或網絡中部署邊緣伺服器,首先將所有的節目都在中心伺服器存儲,再通過骨幹網把用戶訪問相對集中的內容分發到邊緣伺服器,直接由邊緣路由器提供用戶服務。
  • 基於Spring Cloud如何構建分布式系統?
    分布式系統的概念隨著網際網路的不斷發展,大數據、高並發和快響應是網際網路系統的必然要求。但是在大數據和高並發的情況下,要求快響應是比較苛刻的,因為大量的數據會導致查找數據的時間變長,高並發會使網際網路系統因繁忙而變慢,進而影響響應速度。
  • 阿里P8根據企業需求講解微服務分布式系統開發527頁進階筆記
    雖然Spring Cloud能夠有雙搭P微服務系統,但微服務系統只是分布式系統的一種形式,它並不能解決分布式系統的所有問題,例如,分布式緩存、會話、資料庫及其事務等,都不能通過Spring Cloud來有效處理。但這些問題又是企業實施微服務系統時必須要面對的,甚至是一些企業的難點和痛點。因此,本書在詳細介紹Spring Cloud的基礎上,還會對常用的分布式技術進行講解,以滿足企業的需要。
  • 江蘇運用12345在線服務平臺數據,精準調整惠民政策
    要建立健全大數據輔助科學決策和社會治理的機制,推進政府管理和社會治理模式創新,實現政府決策科學化、社會治理精準化、公共服務高效化。   江蘇12345在線服務平臺,實現了省市縣全面覆蓋和行政服務統一聯動。通過分析平臺產生的海量民意數據,有關部門及時調整政策、推動科學決策,從「閉門寫文件」到廣泛吸取民意,大數據讓行政決策更為科學精準。
  • 超星微服務平臺,打造新一代智慧校園
    隨著教育信息化2.0政策的提出,現代教育技術為學校提供了全面的信息化技術支撐,學校已逐步由數字校園走向智慧校園,由傳統服務走向精準化服務,由大而全的異構平臺走向微而敏的小應用重組而成的平臺。針對以上問題,結合學校管理者的實際需求,超星集團推出依託網際網路雲計算技術,基於微服務思想以實現單位全場景業務的綜合管理平臺——超星微服務平臺。一個能夠幫助學校自主、開放、可生長地進行校園個性化管理的開放平臺。超星微服務平臺是由B化的生產端和C化的消費端構成,管理員通過生產端(微服務平臺)生產出學校所需的消費端(學校PC端門戶、學習空間、移動端)。