楊玉環 南京工業大學浦江學院
新時代下,信息技術突飛猛進,大數據、云計算、區塊鏈等新興信息化技術,在各行各業中得到普遍運用和認可,也成為了各企業提升核心競爭力的關鍵手段。新技術背景下,企業面臨的信息化問題也越來越多,這就要求企業內的信息技術人員不能只滿足于當前信息系統維護現狀,還要革新數據信息的實現與處理方式,提升現有數據系統的運行效率,減少數據積壓給企業帶來的不利影響。筆者結合當前企業實情,探索以微服務架構來增強大數據應用與開發能力。
大數據其本質上是一個數據集,是由各種結構化與非結構化、以及半結構化數據組成一個龐大數據組,其數據體積大到當前處理系統無法有效處理,而需要一種全新處理模式來實現的一種信息化資產。大數據在企業中的應用,能確保企業獲得更強的決策力和分析力,以更精準、更全面地收集市場中的各類有利數據信息,從而提升競爭力。數據總量大、類型多、實時性強、利用價值高等是大數據的顯著特點,國際上將其這些特性簡稱為“4V”。大數據的數據類型具有多元性,既包括圖像、數字、文字、符號,還包括音視頻、超媒體等等內容。目前一般而言的大數據應用就是以大數據的數據挖掘、數據分析、數據管理、數據可視化等功能來對巨量數據信息進行分化、處理,并得出用以支撐各種決策的數據資源。
微服務架構是的對于傳統IT 架構的一種革新,它有效降低了傳統整體式架構在使用中,企業系統更新及修復困難的弊端,確保各類新的應用功能可快速上線,從而保障各業務的正常開展。微服務架構是一種架構形式,它將功能的每個元素,布置在分離的多個服務進程上,將不同的服務分散到不同的服務器,根據實際需求復制服務實現擴展。往往一個大型應用軟件功能的實現,需要至少一個微服務來支持。在整個系統中的各個微服務具有一定的獨立性,可致力于一個任務進行集中處理,能夠確保該任務的完成質量。微服務具有一些明顯的共同性,包括緊扣業務能力組織服務、自動化部署、智能端點、對語言及數據的“去集中化”控制等等。
筆者在此以電力企業為對象,以其現場檢修為流程為例進行大數據應用分析。其工作流程為:渠道提出缺陷申請——計管人員分發到對應處室——處室分發到各執行班組——班組負責人開工準備——任務執行。工作實施中,各處室管員須先獲得班組負責人的工開工申請,在評估和審核后才能進行執行階段。申請內容須包括工作負載、工作人員信息、工單耗時情況等等。
在此工作場景中,以企業現有的大數據系統為依托,開展相關數據的收集、分析等。大數據系統集合了電力企業全部業務環節的所有信息,是一個龐大的數據資源庫,是企業實現數字化管理,提升內部作業效率的重要工具,本場景中的大數據系統的大部分功能組件使用開源軟件產品。總體設計主要包括數據收集、計算、服務以及數據應用。數據收集是將各類信息歸納到數據交換平臺,針對不同種類的數據信息使用不一樣的收集方式。數據計算層以 ETL 輸入為數據計算途徑,對系統內數據進行直接計算,其方式包括,實時與離線計算兩種,過程中可同時對知識圖譜作分析,以及實施自然語言處理等任務。數據服務體現為工具和存儲兩個層面,存儲方式為分布式數據庫、系統文件庫、搜索引擎、以及圖數據庫等。數據應用方面,按實際使用者不同,主要分為業務系統、分析系統、云應用系統等。
本案電力企業使用的大數據系統以“Spring Boot”為技術框架,設計此框架的目的是為了簡化新 Spring 的初始搭建程序。此框架采取特定的配置方式,省略開發人員的樣板化配置程序。本框架可快速構建獨立的“Spring Application”,而不須要進行外部部署。這個框架提供了非常多的擴展“starter”,可利用依賴探知實現系統的自主配置,而技術人員只需按實際使用要求添加相關“依賴”。此外,這個框架還可對作業場景中的性能狀態進行全天候監控,并進行必要的外部配置。
電力企業大數據系統的微服務架構在實現上,依靠“Spring Cloud”。它借助與“Spring Boot”的開發優勢,對分布式系統基礎設施開發程序進行簡化,在信息監控、資源配置、負載監測、等技術領域都能使用這種方式實現快速啟動及部署。“Spring Cloud”不是一種新制造出來的重復框架,它是對市場上現有的成熟服務框架進行的整合,對“Spring Boot”進行的重新封裝省去了以往相對復雜的配置程序。讓開發者更容易理解和使用,也更容易進行系統維護。
“Eureka”是“Spring Cloud”微服務套件中的一個重要部分,它可以與“Spring boot”構建的微服務快速融合,Eureka 包含了服務器端和客戶端組件,其客戶端是一個java 客戶端,也被稱作是服務注冊中心,用于提供服務的注冊與發現,它支持高可用的配置,當集群中有分片出現故障時,Eureka 就會轉入自動保護模式,它允許分片故障期間繼續提供服務的發現和注冊,當故障分片恢復正常時,集群中其他分片會把他們的狀態再次同步回來。
Feign 具有可插拔注解支持功能,主要有與 JAX-R S 與Feign兩種注解方式,同時也支持可插拔編碼與解碼。它是對Eureka 和Ribbon 相關功能地集成,可實現http 客戶端的負載均衡。Zuul 是一個邊緣服務的框架,其監控、彈性、安全等服務功能在云平臺上體現比較充分。它使得跨橫切面功能得以實現,包括系統安全認證、容錯、限流以及日志等。本案中的電力企業大數據系統,設置了統計應用前端服務、基礎數據微服務和統計API 微服務。這些服務都被注冊到Eureka服務系統上,而微服務又以Feign 作為客戶端,利用自主設置服務的實例數目,能夠提升微服務的穩定性。
以微服務框架支持大數據應用和開發,在電力企業中的運用后,企業能夠以最少的時間對巨量數據進行信息分離,快速獲得各項決策所需的信息資源。使用者可以依據工單的時間、班組信息、工作任務、設備設施種類、工作人員信息、具體負責人等任一關鍵信息進行搜索,便可查詢出檢修時間、檢修狀態、檢修人員等信息,同時使用者只需點擊對應數字,就可以獲得非常詳細統計數據。數十萬的檢修數據,在微服務框架的支持下僅需幾秒便可呈現出來,非常快捷。
電力企業為有效解決當前面臨的巨量數據搜索難題,引入微服務架構支持大數據應用開發,以分層架構形式對大數據進行設計,把數據平臺分成多個技術層次,各層以目前主要大數據技術為支撐,解決對應問題。通過微服務架構的作用,滿足了大數據系統服務高可用、服務負載均衡等功能需求,為企業帶來了極大效益。