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