胡 波
(福建省財(cái)政信息中心,福州 350003)
大數(shù)據(jù)、云計(jì)算是目前較為前沿的信息技術(shù),被廣泛用于智慧城市、物聯(lián)網(wǎng)、金融分析、軍事、公檢法等各個(gè)領(lǐng)域;微服務(wù)技術(shù)是近年興起的先進(jìn)信息技術(shù),我國目前雖然有在一些小領(lǐng)域、小規(guī)模應(yīng)用該技術(shù),但仍處于試驗(yàn)探索階段,特別是如何利用微服務(wù)技術(shù)優(yōu)勢,解決傳統(tǒng)SOA 架構(gòu)普遍存在的并發(fā)量瓶頸和無法充分利用云計(jì)算資源動(dòng)態(tài)分配功能等問題,還在進(jìn)一步探索中.如何將大數(shù)據(jù)、云計(jì)算、微服務(wù)等信息技術(shù)同國家建設(shè)過程有機(jī)結(jié)合,解決國家政策執(zhí)行過程無法及時(shí)監(jiān)督、執(zhí)行效果無法及時(shí)掌握、出現(xiàn)問題無法及時(shí)發(fā)現(xiàn)和處理結(jié)果無法及時(shí)了解等一系列“及時(shí)”問題,提高政策執(zhí)行效率和人民滿意度,成為目前信息領(lǐng)域研究的重點(diǎn)課題.
在全國精準(zhǔn)扶貧、精準(zhǔn)脫貧背景下,本文以福建省扶貧(惠民)資金在線監(jiān)管系統(tǒng)為例,介紹如何運(yùn)用大數(shù)據(jù)、云計(jì)算、微服務(wù)等信息技術(shù)解決扶貧對象精準(zhǔn)、項(xiàng)目安排精準(zhǔn)、資金使用精準(zhǔn)等問題,實(shí)現(xiàn)對扶貧(惠民)資金全流程精準(zhǔn)監(jiān)控,確保扶貧資金精準(zhǔn)發(fā)放.
1.1.1 Hadoop
Hadoop 是由Apache 基金會(huì)開發(fā)的一個(gè)分布式系統(tǒng)架構(gòu)[1],由HDFS (Hadoop Distributed File System,分布式文件系統(tǒng))、MapReduce (并行運(yùn)算編程模型)、HBase (Hadoop Database,數(shù)據(jù)庫)、ZooKeeper (分布式協(xié)調(diào)服務(wù))和Hive (數(shù)據(jù)倉庫架構(gòu))等成員組成,提供分布式數(shù)據(jù)存儲(chǔ)和并行處理數(shù)據(jù)方式,高效實(shí)現(xiàn)對海量數(shù)據(jù)的分布式存儲(chǔ)和處理,并為應(yīng)用程序提供高可靠性透明接口.
其中HDFS 是專門為海量數(shù)據(jù)處理分析而設(shè)計(jì)的高容錯(cuò)性分布式文件系統(tǒng)[2].MapReduce 用于計(jì)算海量數(shù)據(jù)[3,4].HBase 是建立在HDFS 之上面向列的分布式存儲(chǔ)系統(tǒng)[5,6],它利用MapReduce 處理HBase 中的海量數(shù)據(jù)[7,8].Hive 為數(shù)據(jù)倉庫使用者提供海量數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)ETL、數(shù)據(jù)查詢和分析[9].ZooKeeper 為分布式應(yīng)用提供域名、分布式同步等一致性服務(wù)[10].
1.1.2 Spark
Spark 是專為大規(guī)模數(shù)據(jù)處理設(shè)計(jì)的快速通用計(jì)算引擎,是Hadoop MapReduce 通用并行框架.它啟用了內(nèi)存分布數(shù)據(jù)集,不僅能夠提供交互式查詢,還能優(yōu)化迭代工作負(fù)載,因此能更好適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的MapReduce 的算法[11].
1.1.3 Kerberos
Kerberos 是一種網(wǎng)絡(luò)認(rèn)證協(xié)議,認(rèn)證過程不依賴主機(jī)操作系統(tǒng)認(rèn)證,無需基于主機(jī)地址信任,不要求網(wǎng)絡(luò)上所有主機(jī)物理安全,并假定網(wǎng)絡(luò)上傳送的數(shù)據(jù)包可被任意地讀取、修改和插入數(shù)據(jù).
Elastic Search (ES),一種基于Lucene 構(gòu)建的全文搜索引擎、數(shù)據(jù)分析引擎和分布式文檔數(shù)據(jù)庫,每個(gè)字段均可被索引和搜索,能在極短時(shí)間內(nèi)存儲(chǔ)、搜索和分析大量數(shù)據(jù),通常用于復(fù)雜搜索場景下的全文檢索、結(jié)構(gòu)化檢索和分析.相對于傳統(tǒng)搜索引擎,ES 具有高擴(kuò)展性、高實(shí)時(shí)性、高可用性等三大明顯優(yōu)勢,通過分片分布處理方式提升處理效能,可橫向擴(kuò)展至數(shù)以百計(jì)的服務(wù)器存儲(chǔ)以及處理PB 級(jí)數(shù)據(jù).
微服務(wù)是一些協(xié)同工作的,具有高內(nèi)聚性和高自治性的小而自治服務(wù)[12],核心理念在于將復(fù)雜應(yīng)用拆分成多個(gè)可單獨(dú)構(gòu)建和部署的功能,每個(gè)功能稱之為服務(wù)[13].微服務(wù)架構(gòu)旨在實(shí)現(xiàn)對復(fù)雜應(yīng)用的快速開發(fā),本質(zhì)是由一組可獨(dú)立交付的微服務(wù)業(yè)務(wù)單元構(gòu)成的分布式系統(tǒng)[14].相對于SOA 架構(gòu)來說,微服務(wù)架構(gòu)具有復(fù)雜度可控、架構(gòu)靈活、技術(shù)多元化、功能易擴(kuò)展、獨(dú)立自治等主要特點(diǎn)[15].
利用大數(shù)據(jù)、云計(jì)算、微服務(wù)等信息技術(shù),建立覆蓋省、市、縣、鄉(xiāng)四級(jí)的扶貧(惠民)資金在線監(jiān)管系統(tǒng),及時(shí)掌握項(xiàng)目和資金動(dòng)態(tài),實(shí)現(xiàn)對資金各環(huán)節(jié)無死角在線跟蹤監(jiān)督,加強(qiáng)對政策和資金的審計(jì)監(jiān)督檢查,消除監(jiān)管“盲區(qū)”,強(qiáng)化信息主動(dòng)公開,讓老百姓由被動(dòng)參與變?yōu)橹鲃?dòng)監(jiān)督,讓扶貧(惠民)工作在陽光下運(yùn)行,確保資金精準(zhǔn)安全有效使用,實(shí)現(xiàn)精準(zhǔn)扶貧和脫貧.
考慮扶貧(惠民)資金涉及省、市、縣、鄉(xiāng)四級(jí)財(cái)政,為及時(shí)獲取全省資金動(dòng)態(tài)執(zhí)行情況,實(shí)現(xiàn)對資金的全流程監(jiān)管,系統(tǒng)采用全省集中部署模式,部署在福建政務(wù)云上.系統(tǒng)體系架構(gòu)從縱橫兩個(gè)方向保障系統(tǒng)安全、穩(wěn)定、高效運(yùn)行,縱向分為應(yīng)用軟件服務(wù)層 (SaaS)、平臺(tái)服務(wù)層(PaaS)及基礎(chǔ)設(shè)施服務(wù)層(IaaS)等三層,橫向包括運(yùn)維體系和安全體系等兩個(gè)體系.
其中SaaS 云應(yīng)用,基于云架構(gòu),微服務(wù)構(gòu)建扶貧(惠民)資金在線監(jiān)管云應(yīng)用.PaaS 云平臺(tái),提供云中間件服務(wù)、微服務(wù)治理、運(yùn)行時(shí)應(yīng)用管理和能力共享中心等.以PaaS 平臺(tái)為核心構(gòu)建大數(shù)據(jù)平臺(tái),并預(yù)留規(guī)劃相關(guān)專題技術(shù)平臺(tái)能力,全面支撐SaaS 應(yīng)用.IaaS 云基礎(chǔ)設(shè)施,基于OpenStack 產(chǎn)品,實(shí)現(xiàn)計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)資源虛擬化和資源管理功能,按需為PaaS 云平臺(tái)提供資源.運(yùn)維體系和安全體系作為全局公共能力貫穿各個(gè)層面,為整個(gè)系統(tǒng)長期穩(wěn)定運(yùn)行提供運(yùn)維和安全保障服務(wù).
系統(tǒng)體系架構(gòu)如圖1所示.
圖1 系統(tǒng)總體體系架構(gòu)
扶貧(惠民)資金覆蓋省、市、縣、鄉(xiāng)四級(jí)財(cái)政,涉及全省所有關(guān)心扶貧(惠民)信息的人員.系統(tǒng)除預(yù)算編制,預(yù)算執(zhí)行等內(nèi)生數(shù)據(jù)外,為防止出現(xiàn)扶貧(惠民)資金冒領(lǐng)騙領(lǐng)現(xiàn)象發(fā)生,系統(tǒng)外接工商、稅務(wù)、社保、公安、住建、19 家代理銀行等部門,分別獲取企業(yè)工商登記注冊、企業(yè)和個(gè)人納稅、個(gè)人社保、住房購買、車輛購買、銀行到賬等外生數(shù)據(jù),構(gòu)建精準(zhǔn)扶貧大數(shù)據(jù)分析庫,后期還將接入火化人口、公積金繳納等數(shù)據(jù),因此系統(tǒng)數(shù)據(jù)量和訪問量都相當(dāng)巨大.為保證系統(tǒng)穩(wěn)定和時(shí)效性,特別是公眾訪問系統(tǒng)的響應(yīng)速度,系統(tǒng)采用Hadoop+Hive+Spark+ES 等大數(shù)據(jù)技術(shù),確保響應(yīng)時(shí)間控制在5 ms 以內(nèi),大數(shù)據(jù)應(yīng)用示意圖如圖2所示.
如圖2所示,系統(tǒng)使用Hadoop 平臺(tái)做為基礎(chǔ)平臺(tái)部署,提供資源調(diào)度及HDFS 存儲(chǔ)服務(wù),采用Hive 做為數(shù)據(jù)倉庫來存儲(chǔ)原始業(yè)務(wù)數(shù)據(jù)以及各分層匯總數(shù)據(jù).使用Spark 做ETL 處理引擎,由Spark 讀取Hive 元數(shù)據(jù)做ETL 清洗、轉(zhuǎn)換及匯總操作.匯總數(shù)據(jù)存放在Hive 數(shù)據(jù)庫的匯總結(jié)果表中.使用ES 做搜索引擎,提供查詢檢索功能,ES 讀取Hive 庫結(jié)果表數(shù)據(jù),創(chuàng)建索引庫.應(yīng)用Nginx 代理服務(wù)器等成熟中間件產(chǎn)品,提高查詢效力.使用Kerberos 做大數(shù)據(jù)集群安全框架.
數(shù)據(jù)展現(xiàn)層分為傳統(tǒng)PC 網(wǎng)站和微信小程序+手機(jī)APP 等兩種展現(xiàn)形式.系統(tǒng)通過Spring Cloud 微服務(wù)提供Restful 方式的對外數(shù)據(jù)訪問接口,供展現(xiàn)層調(diào)用.ES 提供統(tǒng)一數(shù)據(jù)查詢接口為展現(xiàn)層提供數(shù)據(jù)服務(wù).
為減少數(shù)據(jù)量和負(fù)載因素對系統(tǒng)性能的影響,系統(tǒng)采用微服務(wù)架構(gòu),將系統(tǒng)按功能拆分為多個(gè)獨(dú)立的服務(wù)組件;同時(shí)利用云計(jì)算技術(shù),根據(jù)負(fù)載情況動(dòng)態(tài)合理分配系統(tǒng)資源.政務(wù)云通過公共組件微服務(wù)化,避免業(yè)務(wù)應(yīng)用對接公共組件時(shí),因特定技術(shù)要求給業(yè)務(wù)應(yīng)用開發(fā)帶來更多工作量和架構(gòu)靈活性限制.各功能均以微服務(wù)方式獨(dú)立部署,平臺(tái)、應(yīng)用、運(yùn)維能力均實(shí)現(xiàn)微服務(wù)化,實(shí)現(xiàn)平臺(tái)和應(yīng)用徹底解耦.
圖2 大數(shù)據(jù)應(yīng)用示意圖
4.2.1 系統(tǒng)分層微服務(wù)架構(gòu)
結(jié)合業(yè)務(wù)管理特征和發(fā)展趨勢,統(tǒng)一規(guī)劃業(yè)務(wù)應(yīng)用系統(tǒng),將系統(tǒng)劃分為前臺(tái)、中臺(tái)、后臺(tái)3 層,每層包含相應(yīng)的微服務(wù),解耦業(yè)務(wù)辦理、公共支撐、業(yè)務(wù)管控和決策分析等能力,使它們有效協(xié)同.同時(shí)系統(tǒng)采用前端輕應(yīng)用、后端微服務(wù)的前后端分離模式,具體系統(tǒng)業(yè)務(wù)分層微服務(wù)架構(gòu)圖如圖3.
如圖3所示:前臺(tái)以業(yè)務(wù)和角色為中心構(gòu)建作業(yè)平臺(tái),支撐靈活高效運(yùn)作.前臺(tái)連接財(cái)政用戶、扶貧相關(guān)部門、社會(huì)公眾等3 類用戶,構(gòu)建以O(shè)A 為基礎(chǔ)的統(tǒng)一門戶,快速響應(yīng)業(yè)務(wù)變化和業(yè)務(wù)應(yīng)用,支持彈性伸縮.
中臺(tái)以公共組件為核心為微服務(wù)提供支撐,實(shí)現(xiàn)業(yè)務(wù)、技術(shù)能力共享化和服務(wù)化,支撐前臺(tái)生產(chǎn)類應(yīng)用作業(yè)平臺(tái)構(gòu)建.中臺(tái)面向前臺(tái)應(yīng)用,構(gòu)建服務(wù)中心和API 中心,實(shí)現(xiàn)服務(wù)治理和數(shù)據(jù)治理;構(gòu)建通用應(yīng)用能力,包括公共業(yè)務(wù)、公共辦公、應(yīng)用支撐等服務(wù),實(shí)現(xiàn)業(yè)務(wù)運(yùn)作服務(wù)化、共享化.
后臺(tái)面向領(lǐng)導(dǎo)和決策層,實(shí)現(xiàn)作業(yè)過程與結(jié)果透明可視,如資金流可視、業(yè)務(wù)流可視、扶貧(惠民)對象畫像等.后臺(tái)圍繞數(shù)據(jù)資產(chǎn),建設(shè)統(tǒng)一的數(shù)據(jù)底座,基于大數(shù)據(jù)構(gòu)建決策支持、監(jiān)控預(yù)警、查詢分析3 類應(yīng)用,實(shí)現(xiàn)業(yè)務(wù)洞察和監(jiān)管能力.
4.2.2 微服務(wù)應(yīng)用關(guān)鍵步驟
系統(tǒng)微服務(wù)應(yīng)用關(guān)鍵步驟具體如下:
(1)構(gòu)建接口契約優(yōu)先的運(yùn)作機(jī)制,協(xié)同工作.微服務(wù)設(shè)計(jì)堅(jiān)持契約優(yōu)先原則,即先有契約后有微服務(wù)實(shí)現(xiàn).首先基于Swagger Open API 規(guī)范定義接口契約,契約以人與機(jī)器均可讀懂格式描述微服務(wù)及其API 接口,作為服務(wù)提供方對外功能和服務(wù)水平的承諾.服務(wù)提供方基于契約實(shí)現(xiàn)微服務(wù),微服務(wù)使用方基于契約調(diào)用微服務(wù),各方基于契約協(xié)同工作.微服務(wù)均可基于契約進(jìn)行替換,即當(dāng)微服務(wù)出現(xiàn)嚴(yán)重問題時(shí),可按契約無縫替換,不影響系統(tǒng)運(yùn)行,并形成以微服務(wù)為核心的可拆可合、開放的“扶貧(惠民)信息化生態(tài)”.
(2)構(gòu)建服務(wù)中心、API 中心,管理和運(yùn)營“扶貧(惠民)信息化生態(tài)”.將微服務(wù)注冊到服務(wù)中心,微服務(wù)API 接口注冊到API 中心,通過在線、統(tǒng)一排錯(cuò)和度量評(píng)價(jià)體系,界定問題邊界,識(shí)別需要改進(jìn)或替換的微服務(wù),保證各方有效協(xié)作,為“信息化生態(tài)”運(yùn)營提供支撐,機(jī)制如圖4所示.
如圖4所示,服務(wù)中心提供服務(wù)市場,供管理用戶在線瀏覽、查詢服務(wù)詳情,支持線上評(píng)價(jià)和提出改進(jìn)建議;提供微服務(wù)治理,通過調(diào)用鏈功能,支持端到端定位排錯(cuò)、界定問題邊界和責(zé)任.API 中心對API 接口全生命周期進(jìn)行管理,管控微服務(wù)和接入應(yīng)用之間的調(diào)用關(guān)系,并對API 接口調(diào)用情況進(jìn)行監(jiān)控,提供各種性能指標(biāo)、異常指標(biāo)、SLA 指標(biāo)及運(yùn)營報(bào)表,全面度量微服務(wù)及其API 接口質(zhì)量.通過上述機(jī)制,避免在公共微服務(wù)集成過程中可能出現(xiàn)的問題定位不清、互相推諉等情況,支持對公共微服務(wù)持續(xù)改進(jìn).
圖3 系統(tǒng)分層微服務(wù)架構(gòu)
對于標(biāo)準(zhǔn)存儲(chǔ)、基礎(chǔ)數(shù)據(jù)等核心公共微服務(wù),由用戶統(tǒng)一定義微服務(wù)接口契約,并將接口契約發(fā)布到API 中心.微服務(wù)接口契約經(jīng)用戶審核后將接口契約發(fā)布到API 中心.軟件開發(fā)商根據(jù)契約提供微服務(wù),并由微服務(wù)中心、API 中心提供相關(guān)度量和改進(jìn)機(jī)制,最終形成一個(gè)完整的生態(tài)管理體系.
(3)構(gòu)建包括應(yīng)用支撐服務(wù)在內(nèi)的服務(wù)化中臺(tái),規(guī)范和支撐業(yè)務(wù)應(yīng)用建設(shè)公共能力服務(wù)化設(shè)計(jì),包括公共業(yè)務(wù)、公共辦公、應(yīng)用支撐和管控等服務(wù),最終構(gòu)建服務(wù)化平臺(tái),是業(yè)務(wù)應(yīng)用建設(shè)的一個(gè)關(guān)鍵點(diǎn).
4.2.3 微服務(wù)設(shè)計(jì)關(guān)鍵要求
在設(shè)計(jì)微服務(wù)時(shí),需遵循或注意幾個(gè)原則和要求,以達(dá)到采用微服務(wù)最佳效果.
(1)系統(tǒng)遵循前后端分離原則,即前端輕量級(jí)應(yīng)用、后端微服務(wù).前端輕應(yīng)用采用成熟的前端單頁面技術(shù)開發(fā),通過ajax 異步請求與后臺(tái)微服務(wù)交互,快速響應(yīng)業(yè)務(wù)變化的輕量級(jí)應(yīng)用;后端微服務(wù)為獨(dú)立部署運(yùn)行的業(yè)務(wù)邏輯單元,通過統(tǒng)一的API 網(wǎng)關(guān)供前端輕應(yīng)用調(diào)用,數(shù)據(jù)交換格式為JSON 格式.前后端分離優(yōu)勢在于前后端獨(dú)立打包發(fā)布,相互獨(dú)立,互不影響,便于系統(tǒng)開發(fā)維護(hù),同時(shí)前端頁面靜態(tài)化,便于使用客戶端緩存,提高系統(tǒng)并發(fā)性能.
(2)遵循業(yè)務(wù)驅(qū)動(dòng)原則,將業(yè)務(wù)應(yīng)用分解為微服務(wù).
(3)微服務(wù)治理要求,所有業(yè)務(wù)微服務(wù)統(tǒng)一注冊到服務(wù)中心.所有微服務(wù)接口統(tǒng)一采用REST 通信協(xié)議,均注冊到API 中心.微服務(wù)須采用平臺(tái)統(tǒng)一用戶、角色、權(quán)限管理體系,統(tǒng)一SSO 認(rèn)證.
(4)運(yùn)維服務(wù)化設(shè)計(jì),依靠服務(wù)化工具鏈,在運(yùn)維階段實(shí)現(xiàn)高效服務(wù)化運(yùn)維.前后端應(yīng)用實(shí)現(xiàn)容器化部署,所有配置通過統(tǒng)一配置服務(wù)獲取.
按照“橫向到邊,縱向到底”要求,系統(tǒng)橫向覆蓋扶貧(惠民)資金涉及的12 個(gè)主管部門,并與福建省內(nèi)19 家商業(yè)銀行實(shí)現(xiàn)數(shù)據(jù)對接;縱向貫穿省市縣鄉(xiāng)四級(jí),包括9 個(gè)設(shè)區(qū)市和平潭綜合實(shí)驗(yàn)區(qū)、83 縣(市、區(qū))、1105 個(gè)鄉(xiāng)鎮(zhèn).目前系統(tǒng)操作用戶達(dá)1.8 萬人,幫扶對象涉及1.7 萬個(gè)村居、628 萬人.
圖4 扶貧(惠民)信息化生態(tài)管理圖
系統(tǒng)對扶貧(惠民)資金的流向、流量和流速進(jìn)行全方位監(jiān)督.其中:流向監(jiān)督主要是運(yùn)用工商登記、養(yǎng)老保險(xiǎn)、醫(yī)保、稅收、車輛、住房等數(shù)據(jù),對建檔立卡貧困戶、低保戶進(jìn)行精準(zhǔn)識(shí)別.流量監(jiān)督主要是將銀行反饋到賬數(shù)據(jù)與鄉(xiāng)鎮(zhèn)填報(bào)的應(yīng)發(fā)放數(shù)據(jù)比對,確保應(yīng)發(fā)盡發(fā),足額到位.流速監(jiān)督主要是動(dòng)態(tài)監(jiān)控資金分配、審批、下達(dá)全過程運(yùn)轉(zhuǎn)時(shí)效,確保資金及時(shí)發(fā)放到位.
為及時(shí)從系統(tǒng)中發(fā)現(xiàn)資金問題節(jié)點(diǎn),按照“共性+個(gè)性”思路和各類扶貧資金管理辦法要求,通過設(shè)置預(yù)警規(guī)則、預(yù)警閾值,按預(yù)警級(jí)別對資金項(xiàng)目申報(bào)、審批、下達(dá)等環(huán)節(jié)進(jìn)行實(shí)時(shí)動(dòng)態(tài)查驗(yàn).根據(jù)嚴(yán)重程度不同,將預(yù)警級(jí)別分為紅黃兩種顏色,紅色表示嚴(yán)重預(yù)警,包括發(fā)放對象不精準(zhǔn)和發(fā)放金額與銀行反饋數(shù)據(jù)不一致等情況.黃色表示一般預(yù)警,包括資金下達(dá)不夠及時(shí)、銀行反饋數(shù)據(jù)不完整等情況.
2018年系統(tǒng)對21 項(xiàng)扶貧資金、2 項(xiàng)救災(zāi)資金實(shí)行全流程監(jiān)管,涉及資金40 億元,惠及118 萬幫扶對象;2019年系統(tǒng)增加對14 項(xiàng)惠民資金監(jiān)管,涉及資金70.1 億元以上,惠及614 萬幫扶對象.
圖5及圖6為福建省扶貧(惠民)資金監(jiān)管結(jié)果圖.
圖5 扶貧(惠民)資金監(jiān)管總體圖
系統(tǒng)通過大數(shù)據(jù)技術(shù)核查建檔立卡貧困戶信息和資金發(fā)放信息是否準(zhǔn)確無誤,對于在城市務(wù)工獲取社保、購買房屋、擁有車輛或成立公司等可能已經(jīng)脫貧人員,經(jīng)核對查實(shí)后,將從建檔立卡貧困戶名單中移除并相應(yīng)處理;對于未準(zhǔn)確發(fā)放或者核實(shí)為冒領(lǐng)、騙領(lǐng)的,紀(jì)委將根據(jù)程序移送司法機(jī)關(guān).2018年系統(tǒng)上線以來,通過大數(shù)據(jù)識(shí)別對比,發(fā)現(xiàn)大量貧困低保戶人員存在異常信息,主要為系統(tǒng)顯示貧困低保戶有注冊為公司法人或在企業(yè)繳納社保金額已經(jīng)超出低保范圍等.經(jīng)核實(shí),大部分注冊為公司法人的情況為其親戚或朋友借用其身份證注冊公司,本人不知情或并未從中獲取利益,對于這種情況則要求本人到工商局注銷公司法人身份;目前系統(tǒng)發(fā)現(xiàn)低保對象異常信息10 176 條,由省民政廳分類核實(shí)身份信息,確定繼續(xù)保障對象4337 人,延保漸退2147 人,取消退保3692 人.以每低保戶每月300 元計(jì)算,每年將節(jié)省財(cái)政資金2000 多萬元,維護(hù)了公平和正義,大大提高了政府公信力和群眾滿意度.
圖6 扶貧(惠民)項(xiàng)目績效主要產(chǎn)出圖
為實(shí)現(xiàn)全民參與監(jiān)督,系統(tǒng)將專項(xiàng)管理辦法、項(xiàng)目信息、審批信息、補(bǔ)助資金發(fā)放信息等通過網(wǎng)站和手機(jī)APP、微信小程序等進(jìn)行全面有效的信息公開.為方便群眾及時(shí)知道和下載微信小程序和手機(jī)APP,通過短信、電視、二維碼等多種途徑向全省公眾推送.為方便群眾發(fā)現(xiàn)問題能及時(shí)反饋,系統(tǒng)通過接口與省紀(jì)委監(jiān)委舉報(bào)網(wǎng)站對接,實(shí)現(xiàn)一鍵舉報(bào).目前微信小程序和手機(jī)APP 訪問量超兩千萬,日均訪問量超10 萬,網(wǎng)站、微信小程序和手機(jī)APP 樣例如圖7.
圖7 數(shù)據(jù)展示信息
本系統(tǒng)建設(shè)獲得國務(wù)院和財(cái)政部的充分肯定,財(cái)政部指出該系統(tǒng)建起來后,有利于明晰責(zé)任,是財(cái)政管理的重大成果和制度創(chuàng)新,以后各方面資金都可以用來監(jiān)管,因此系統(tǒng)帶有“試驗(yàn)田”的作用,并以本系統(tǒng)為樣板建設(shè)了全國財(cái)政扶貧資金動(dòng)態(tài)監(jiān)控平臺(tái),在全國推廣應(yīng)用.
系統(tǒng)在完成微服務(wù)改造并部署到云上后,能否利用云計(jì)算優(yōu)勢,根據(jù)負(fù)載情況動(dòng)態(tài)合理為微服務(wù)分配系統(tǒng)資源,提高系統(tǒng)并發(fā)性和時(shí)效性,還有一個(gè)關(guān)鍵因素,即是否采用支持云化服務(wù)的數(shù)據(jù)庫,這是很多人忽視的地方.在分別使用傳統(tǒng)數(shù)據(jù)庫和支持云化服務(wù)數(shù)據(jù)庫時(shí),并發(fā)量和系統(tǒng)性能之間會(huì)呈現(xiàn)一定關(guān)系.使用傳統(tǒng)數(shù)據(jù)庫時(shí),系統(tǒng)在性能不影響的情況下,并發(fā)數(shù)最多只能達(dá)到300 個(gè),如果超過300 個(gè),系統(tǒng)響應(yīng)速度急劇下降,系統(tǒng)出現(xiàn)不動(dòng)或者白屏狀態(tài).但使用支持云化服務(wù)數(shù)據(jù)庫時(shí),系統(tǒng)在性能不影響的情況下,并發(fā)量可以達(dá)到2000 個(gè).目前政府機(jī)關(guān)建設(shè)大型信息化系統(tǒng)大部分使用Oracle 數(shù)據(jù)庫,但Oracle12C 數(shù)據(jù)庫之前的版本均不支持云化服務(wù),因此如果要到達(dá)理想的并發(fā)性和時(shí)效性,需要使用Oracle12C 及之后的版本.
目前微服務(wù)概念在國內(nèi)興起也好幾年,但真正將微服務(wù)用好的大型政務(wù)系統(tǒng),在國內(nèi)幾乎沒有,大部分都處于嘗試階段,包括本系統(tǒng)在內(nèi).從目前已經(jīng)嘗試采用微服務(wù)架構(gòu)的國內(nèi)某些系統(tǒng)來看,效果不一定優(yōu)于采用SOA 系統(tǒng)架構(gòu)的系統(tǒng),主要原因是大家僅在概念上理解微服務(wù),微服務(wù)到底微到什么程度最為合適,效果最好,目前沒有明確說法,也很難判斷.本系統(tǒng)在建設(shè)初期,為防止出現(xiàn)因微服務(wù)顆粒度選擇不合適導(dǎo)致大量無用功情況的發(fā)生,在此先開展微服務(wù)顆粒度合適程度測試,并使用4 種顆粒度分法.
第1 種顆粒度分法,將每個(gè)細(xì)小的功能環(huán)節(jié),比如預(yù)算指標(biāo)下達(dá),計(jì)劃審核,公文起草等,都設(shè)計(jì)成微服務(wù).按照這種分法,本系統(tǒng)需設(shè)計(jì)的微服務(wù)數(shù)量將達(dá)到幾千個(gè).
第2 種顆粒度分法,變大微服務(wù)顆粒度,對每一個(gè)完整的功能服務(wù),比如預(yù)算指標(biāo)服務(wù),對賬服務(wù),“小額貸款”資金申報(bào)服務(wù)等設(shè)計(jì)成微服務(wù),采用該種分法,微服務(wù)數(shù)量縮小到不到100 個(gè).
第3 種顆粒度分法,繼續(xù)變大微服務(wù)顆粒度,對每一個(gè)完整的管理服務(wù),比如專項(xiàng)資金項(xiàng)目管理,專項(xiàng)資金分配管理,系統(tǒng)設(shè)置服務(wù),監(jiān)控預(yù)警和風(fēng)險(xiǎn)防控服務(wù),外網(wǎng)信息公開服務(wù),OA 管理服務(wù)等設(shè)計(jì)成微服務(wù).依照此種分法,微服務(wù)數(shù)量將進(jìn)一步縮小到僅15 個(gè).
第4 種顆粒度分法,綜合第2 和第3 種顆粒度分法,將并發(fā)量大,訪問頻繁的模塊按照第2 種顆粒度拆分,比如預(yù)算指標(biāo)服務(wù)和對賬服務(wù)等;對于并發(fā)量小,訪問不是太頻繁的功能模塊按照第3 種顆粒度拆分,比如系統(tǒng)設(shè)置服務(wù)和OA 管理服務(wù)等.這種拆分方式,微服務(wù)數(shù)據(jù)量可以控制在50 個(gè)以內(nèi).
圖8為采用Oracle12C 數(shù)據(jù)庫,不同顆粒度微服務(wù)與并發(fā)量、系統(tǒng)性能(用系統(tǒng)響應(yīng)時(shí)間代表系統(tǒng)性能)之間關(guān)系圖,其中橫坐標(biāo)表示并發(fā)量,縱坐標(biāo)為系統(tǒng)響應(yīng)時(shí)間,曲線A~D 分別代表第1~4 種顆粒度.
圖8 顆粒度與并發(fā)量關(guān)系圖
從圖8可以看出,在并發(fā)量不超過500 時(shí),4 種顆粒度的系統(tǒng)性能差距不大.但是超過500 后,系統(tǒng)的性能和并發(fā)量并沒有因?yàn)轭w粒度越細(xì)而使系統(tǒng)性能越好;相反,采用第一種顆粒度,微服務(wù)最多,但是系統(tǒng)性能不僅沒有明顯提高,反而表現(xiàn)最差,在達(dá)到1000 并發(fā)量后,系統(tǒng)性能迅速變差.采用第2、3、4 種顆粒度的系統(tǒng)性能和穩(wěn)定性明顯高于第1 種顆粒度,其中系統(tǒng)性能最好的是采用第2 種顆粒度的,在并發(fā)量達(dá)到2000 時(shí),系統(tǒng)性能依然在1 s 范圍內(nèi),其次是第4 種,介于第2 種與第3 種之間.
隨著顆粒度的增加,系統(tǒng)開發(fā)時(shí)間將會(huì)變長,同時(shí)部署難度也將隨著增大.在綜合考慮開發(fā)成本、時(shí)間效率以及后期系統(tǒng)在政務(wù)云平臺(tái)部署難度等一些列因素后,本系統(tǒng)最終決定采用第4 種顆粒度分法.因此在選擇微服務(wù)顆粒度大小時(shí),要根據(jù)系統(tǒng)實(shí)際業(yè)務(wù)場景情況來劃分,到底要拆的多細(xì),絕不僅僅只是個(gè)技術(shù)問題,而是一個(gè)技術(shù)和業(yè)務(wù)理解相結(jié)合的問題,一定要選擇適應(yīng)自己的顆粒度,才能達(dá)到即節(jié)省成本和資源,又能充分發(fā)揮微服務(wù)優(yōu)勢的建設(shè)效果.
在微服務(wù)實(shí)際部署過程中,為了能夠真正實(shí)現(xiàn)隨著需求的變化自動(dòng)調(diào)配微服務(wù)數(shù)量,更好的發(fā)揮微服務(wù)效果,還必須使用微服務(wù)容器對微服務(wù)進(jìn)行管理和監(jiān)控.
目前普遍使用的是Docker 微服務(wù)容器.使用微服務(wù)容器不僅可以實(shí)現(xiàn)自動(dòng)調(diào)配微服務(wù)數(shù)量的目的,還可以通過管理界面直觀看到每個(gè)微服務(wù)數(shù)量和運(yùn)行健康狀態(tài),容器的使用大大提高了微服務(wù)的管理效率.微服務(wù)容器以集群的方式部署,讓系統(tǒng)服務(wù)部署變得簡單、高效.如果不使用微服務(wù)容器,則需要在每臺(tái)服務(wù)器上安裝運(yùn)行環(huán)境,如果需求的服務(wù)器數(shù)量龐大,在每臺(tái)服務(wù)器上安裝運(yùn)行環(huán)境將是一項(xiàng)無比繁重的工作,一旦運(yùn)行環(huán)境發(fā)生改變,就不得不重新配置.而使用容器技術(shù),微服務(wù)是以鏡像的形式運(yùn)行在容器中,只要將所需的基礎(chǔ)鏡像和微服務(wù)生成一個(gè)新的鏡像,將這個(gè)最終鏡像部署在容器中.在此創(chuàng)建一個(gè)鏡像倉庫用來存放所有的基礎(chǔ)鏡像以及生成的最終交付鏡像,在鏡像倉庫中對所有鏡像進(jìn)行管理.
實(shí)現(xiàn)全國精準(zhǔn)扶貧和精準(zhǔn)脫貧,是完成中央“兩個(gè)一百年”奮斗目標(biāo)的前提條件.如何解決扶貧對象精準(zhǔn)、項(xiàng)目安排精準(zhǔn)、資金使用精準(zhǔn)等一些列精準(zhǔn)問題,及時(shí)發(fā)現(xiàn)違規(guī)違紀(jì)行為,確保扶貧資金精準(zhǔn)、及時(shí)發(fā)放,成為政府部門亟需解決的問題.福建省積極響應(yīng)中央精神,利用大數(shù)據(jù)、云計(jì)算、微服務(wù)等前沿先進(jìn)技術(shù),在全國率先研究開發(fā)福建省扶貧(惠民)資金在線監(jiān)管系統(tǒng),實(shí)現(xiàn)對扶貧資金的全流程精準(zhǔn)監(jiān)控,確保扶貧資金精準(zhǔn)及時(shí)發(fā)放.系統(tǒng)建設(shè)成果得到國務(wù)院和財(cái)政部的充分肯定,并獲得第二屆數(shù)字中國建設(shè)峰會(huì)數(shù)字福建電子政務(wù)十佳案例成果獎(jiǎng),同時(shí)在全國推廣使用,為我國早日實(shí)現(xiàn)精準(zhǔn)脫貧奠定了基礎(chǔ).本文詳細(xì)描述了該系統(tǒng)的體系架構(gòu)和關(guān)鍵技術(shù),對實(shí)現(xiàn)效果和建設(shè)經(jīng)驗(yàn)進(jìn)行了分享,該系統(tǒng)建設(shè)思路可以為其他政府部門解決其他領(lǐng)域建設(shè)問題提供參考和借鑒.