• 收藏
  • 設為首頁
  • 工作郵箱
微信公眾號
分享
[字體: ]
分享到:
分享
使用微服務構建智慧校園全生命周期服務平臺
來源:大數據部 ??時間:2019-11-05

智慧校園全生命周期服務,是以“服務”為視角,實現面對全校師生的碎片化服務,建立校內有機的業務協作關系,將學校內的各種業務流程穿接起來,實現能夠支持學生從新生入校、在校學習生活直至畢業離校的全生命周期管理。

要實現全生命周期的服務,智慧校園基礎平臺需要一種更先進、更適應變化、擴展性更強的技術架構作為支撐。微服務架構(Micro-Services Architecture)就是滿足上述要求的一種技術架構。

一、微服務簡介

常規Web應用的核心是由模塊實現的業務邏輯,它定義了服務、領域對象和事件。圍繞核心的是與外部接口對接的適配器,如數據庫訪問組件、生產和消費消息的消息組件、暴露了 API 或實現了一個用戶界面的 Web 組件。盡管應用可能有一個邏輯模塊化架構,但它一般會被作為一個單體進行打包和部署,實際格式取決于應用程序的語言和框架。這種構建Web應用的架構我們稱之為單體應用(Monolithic Application)架構。

然而,隨著業務需求及其復雜性的增加,上述架構的局限性逐步顯現出來——應用的代碼規模隨著應用功能越來越豐富而急劇膨脹,進而對敏捷開發和交付產生極大的影響:

l 應用程序過于復雜,修復Bug和實現新功能困難且耗時,部署、啟動也變得非常緩慢,阻礙持續集成的效率。

l 不同模塊對于資源的需求可能不一致,比如有的模塊是CPU密集型,有的模塊是IO密集型,部署在一起的時候很難選擇適合的硬件。

l 所有模塊運行在同一進程中,對可靠性有很大影響,任何一個模塊的Bug都可能導致整個應用不可用。

l 對于使用新技術產生重大障礙,無法采用更先進的新框架或程序語言。

微服務架構的思路則是將單體應用分解為一系列小規模的互連服務。一個服務通常實現一組不同的特性或功能,每個服務都是一個微型的單體應用,內部包括了相關的業務邏輯和所需的適配器。一些微服務會開放API供其他微服務或客戶端使用,另一些微服務會用來呈現用戶界面。通過這種方式,微服務架構很好的解決了單體應用的上述困境:

l 單個微服務的規模通常會控制在一定程度,客觀上降低了復雜度,從而提高了Bug修改、新功能實現、測試和持續集成的效率。

l 每個微服務都可以由一個小團隊獨立開發、部署,采用/更換新技術框架/語言的成本大大降低。

l 不同服務能夠獨立運行、擴展,便于根據服務特點采取最匹配的硬件,同時還能隔離運行環境,不會相互影響可靠性。

雖然微服務架構很好的解決了單體應用的一系列問題,但它同時也在技術層面帶來了一些新的挑戰。微服務架構下,服務數量比之前大大增加,在開發時需要采用適合于分布式系統的跨進程通信機制,以及考慮數據一致性的機制,這都加大了研發本身的復雜程度;測試的復雜程度也會增加,原來測試只需啟動單體應用即可,現在測試某一個服務可能需要同時啟動多個關聯服務;運維方面,服務的配置、部署、擴展復雜度都會隨著服務數量的快速提升而大大增加,以至于依賴于手動操作無法處理。這些新問題也需要新的技術手段來解決。

二、基于微服務的智慧校園技術架構

要支撐全生命周期服務的業務需要,單體應用的技術架構顯然是難以滿足的,必須要采用基于微服務的技術架構。由銳捷網絡推出的微哨正是這樣一款基于微服務架構的智慧校園全生命周期服務平臺產品。下面我們將以微哨的架構為例,看一看微服務架構是如何在智慧校園平臺建設中落地的。

1 基于微服務的微哨智慧校園平臺架構

 

如圖1所示,基于微服務架構的微哨智慧校園平臺由基礎服務、業務/數據中臺、API網關、服務保障幾部分組成。

基礎服務層由若干微服務構成,提供與具體業務無關的、最底層的基礎能力(如存儲、日志、檢索、消息隊列等),為上層面向業務的微服務提供底層能力支持。

中臺將一系列基于智慧校園各類基礎業務場景構建而成的微服務組合在一起,形成一套對應核心場景的微服務集合,如用戶管理、權限控制、應用管理、通知中心、數據分析等。按照服務性質的不同,中臺可進一步分為業務中臺和數據中臺,分別提供業務相關能力和數據相關能力。對于中臺里面的微服務,其拆分的顆粒度應當結合業務需求和研發運維成本進行動態平衡;當業務發展變化時,相關的微服務也應根據需要進行相應的拆分或合并,達到一個效率和成本相對平衡的狀態。

無論是融合門戶還是應用,都需要基于智慧校園平臺所提供的能力進行開發建設。在智慧校園微服務架構中,上述能力是通過API網關(API Gateway)對外提供出來的。API網關的主要作用是對業務/數據中臺開放出來的能力進行聚合、封裝;為了更好的支持用戶界面的交互設計,方便API調用方的使用,它通常會調用多個微服務并聚合結果來對一個請求進行處理。此外,API網關還可以起到協議轉換、負載均衡、訪問控制、API計量和監控等作用。作為一個特殊的微服務,API網關也可以根據服務對象的不同進行拆分,以便提供更清晰易用的API接口。

所述,與單體應用相比,眾多微服務會給服務的部署、調度、伸縮、監控等運維方面帶來一系列問題。微哨智慧校園平臺是通過外圍的服務保障層來解決上述問題,服務保障層由一系列的運維框架和系統組成,是平臺中所有微服務的貼身管家、健康醫生和安全衛士。無論是微服務的加入、退出、升級,還是服務節點的擴容、縮減,都能通過服務調度中心自動化進行服務發現、注冊、調度;微服務的異常預警,或完整調用鏈路的問題跟蹤,也能方便的通過監控平臺完成。

三、微服務的交付與運維

在全生命周期的框架下,智慧校園對于快速需求響應的要求是很高的。采用微服務一方面帶來了開發效率提升,另一方面也增加了服務部署的復雜度:在微服務架構下,一個完整的系統由很多微服務共同組成,而每個微服務都會有自己對于配置和依賴環境的要求,如果按照傳統的模式逐個進行部署,其工作量將會非常大,所需時間也將會非常長。

容器(Container)是隨微服務架構發展出來的一種虛擬化的技術,它能夠讓微服務的部署發布變得更加方便。容器技術借鑒了虛擬機的思路和特性,通過將應用和必要的依賴環境打包封裝到鏡像中,解決了配置和依賴的問題;通過提供運行時層(Runtime)的方式,鏡像可直接運行,且相互之間進行隔離,完美的契合了微服務的理念。和虛擬機不同的是,容器中的應用是直接運行在宿主操作系統之上,并不需要一個虛擬底層接口的適配層和另外一個操作系統,因此相對來說更輕量,啟動/運行快、資源占用少。

此外,容器也加速了微服務的持續交付。通過自動化的工具鏈,提交的代碼在通過編譯、自動化測試后,自動打包為鏡像并上傳到鏡像倉庫。在部署階段,部署環境直接拉取倉庫中的鏡像到本地容器并運行即可完成部署,大大加速了部署效率,同時減少了依賴或配置錯誤的可能性。

微哨智慧校園平臺也實現了容器技術支撐下的微服務持續交付,整個流程如圖2所示。基于開源的容器引擎Docker,微哨構建了一套完整的持續交付流程和工具鏈,大大加速了開發、測試、部署的敏捷迭代過程,提高了服務的交付效率。

2 基于容器技術的微哨微服務持續交付

 

全生命周期服務平臺的另一大挑戰是服務的可用性。服務的可用性是運維中的一個重要指標,指的是服務保持正常運行的時間在總服務時間的占比。在眾多校園業務場景中,部分業務存在突發大流量、高并發的需求,如入學、畢業、選課、報名、成績查詢等。要想讓系統在上述情形下保持正常運轉,就必須做到“高可用”。通俗來說,高可用的要求就是無論流量大小,服務越穩定越好,不能宕機。這就要求在系統的技術架構上進行一定設計,以保證在大流量的訪問情況下系統依然能夠正常應對。

實現系統高可用的基礎思路可分為垂直擴展和水平擴展兩個模式。垂直擴展的思路是提升單個實例的處理能力,整個系統在橫向切分為幾層,每一層負責相對比較單一的職責,同時上層對下層有依賴和調用。水平擴展則分為兩類:一類是通過增加實例,線性擴充整體的系統性能;另一類是分離職責,根據功能/業務/特點將大的系統模塊切分。由此可見,微服務架構也是符合分層和分割這種基礎架構思路的:從前端到API網關,到業務中臺,再到底層平臺,無不貫徹了垂直擴展的分層原則;而微服務按照業務進行切分,則是水平擴展原則的最直接體現。

在上述兩種基礎模式之上,集群、緩存、冗余、異步等高可用手段都可運用于微服務中。微哨在這些方面也有豐富的實戰經驗,下面以迎新和通知發送兩個實際場景為例加以說明。

1、 迎新:全生命周期服務從新生入校之前就會開始,而新生報到時會有大量用戶集中使用信息查詢、賬號開通、在線繳費、選宿舍等多項業務,帶來較高的并發流量。因此,對于相關的微服務,我們在入學報到前期會進行擴容,實施集群部署、負載均衡等手段,可順利應對突發流量;

2、 通知發送:高校通常會發送通知、公文的。一方面,各類通知面向的對象不同,接收范圍的計算也非常復雜,可能會混合部門院系、崗位、標簽、職務等多個組織維度;另一方面,通知接收終端的數量也可能很大,單個通知的接收人數甚至可多達數萬人(如全校發送)。為了保障通知及時、準確的發送,消息中心微服務也應用了很多高可用的手段。在接收范圍計算上,消息中心使用了緩存的機制,對于重復的范圍計算一次并緩存,后續的發送可直接從緩存讀取,大大提高了響應時間;在消息發送上,采用批量+異步隊列的方式進行消息推送,可穩定應對大批量的通知發送場景。

與單體應用相比,在實現高可用方面,微服務架構有顯著的資源使用優勢。例如:使用集群擴容手段應對高并發訪問,如果采用單體應用的架構,擴容所需的資源會非常巨大,而且高頻模塊和低頻模塊都被復制、運行,整體資源無法得到高效利用;而采用微服務架構,只需針對高頻業務鏈條上所涉及的服務進行擴展,甚至可以更精細化的根據鏈條上各環節的流量進行相應的資源分配,在確保業務和平臺穩定的同時,也能有效的避免資源浪費。

結語

隨著“最多跑一次”政務服務改革逐漸延伸到高校,智慧校園平臺也提出了“全生命周期服務”的建設目標,客觀上需要一種更靈活、擴展性更好的技術架構作為支撐,而微服務架構恰好滿足上述要求。微服務帶來的不僅是更先進的架構,還有更敏捷的產品開發、交付和運維,這正是建設新一代智慧校園全生命周期服務平臺所需要的。

 

作者簡介:銳捷網絡股份有限公司,公司一直扎根行業,深入場景應用進行解決方案設計和創新,并利用云計算、SDN、移動互聯、大數據、物聯網等新技術為各行業用戶提供端到端解決方案,解決全行業數字化轉型升級。。

  

本文發表于由國家信息中心數字中國研究院編輯出版的《數字中國建設通訊》2019年第3

 

 

 

重庆时时开奖彩经网 11选5贵州开奖结 7乐彩走势图 股票配资平台哪个好选九梦财富 3d图谜汇总牛彩网 下周一股票推荐 活塞vs火箭首发 pk10飞艇计划在 上马麻里子牛奶喷泉 十一选五辽宁一定牛 太原站街女实录 詹天佑3d预测今天推 杭州理财平台招商 我要看A级毛片 黑龙江11选5组选 十部公认的无码av神作 江苏传统七位数开奖