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