肖睿 杜旭 段海燕
【摘?要】南網(wǎng)互聯(lián)網(wǎng)統(tǒng)一服務(wù)平臺作為公司數(shù)字化轉(zhuǎn)型要打造的四大業(yè)務(wù)平臺之一,承擔(dān)著整合公司“互聯(lián)網(wǎng)+”業(yè)務(wù),研究構(gòu)建“互聯(lián)網(wǎng)+”商業(yè)模式,打造能源經(jīng)濟合作新業(yè)態(tài),完成公司從傳統(tǒng)信息系統(tǒng)向基于南網(wǎng)云的新一代數(shù)字化基礎(chǔ)平臺和互聯(lián)網(wǎng)應(yīng)用的轉(zhuǎn)型的重任。本文介紹了微服務(wù)架構(gòu)在互聯(lián)網(wǎng)統(tǒng)一服務(wù)平臺的實踐,重點探討業(yè)務(wù)中心規(guī)劃、系統(tǒng)架構(gòu)設(shè)計、微服務(wù)粒度劃分以及開發(fā)運維一體化嘗試等內(nèi)容。
【關(guān)鍵詞】微服務(wù);電力營銷;互聯(lián)網(wǎng)+
1 需求分析
南網(wǎng)互聯(lián)網(wǎng)統(tǒng)一服務(wù)平臺是一個直接供客戶使用的互動系統(tǒng),是公司數(shù)字化轉(zhuǎn)型要打造的四大業(yè)務(wù)平臺之一,需要能敏捷地對客戶需求做出響應(yīng)和改變,需要能快速交付創(chuàng)新成果以提升客戶體驗和忠誠度,具體需達成如下目標(biāo):
(1)構(gòu)建客戶統(tǒng)一服務(wù)模式
以客戶為中心,將用電客戶、電商客戶、電動汽車客戶、光伏客戶、能效客戶、金融客戶等所有的客戶匯聚到統(tǒng)一用戶中心,為全渠道客戶提供統(tǒng)一賬戶服務(wù),實現(xiàn)一次注冊、全渠道應(yīng)用。并通過客戶全息信息管理、客戶特征分析、客戶全景視圖等功能,為全渠道客戶提供差異化的服務(wù)。
(2)構(gòu)建高效互動響應(yīng)
平臺應(yīng)實現(xiàn)各渠道統(tǒng)一服務(wù)接入、統(tǒng)一服務(wù)訪問控制、統(tǒng)一數(shù)據(jù)處理服務(wù)、統(tǒng)一消息管理、統(tǒng)一消息推送、統(tǒng)一客戶服務(wù)分級、統(tǒng)一路由調(diào)度、統(tǒng) 一服務(wù)監(jiān)控、統(tǒng)一接口管理、統(tǒng)一訪問權(quán)限管理,促進電力企業(yè)和客戶之間高效互動,統(tǒng)一服務(wù)入口和內(nèi)容,提供更加多元化、符合客戶需求的服務(wù)產(chǎn)品,實施渠道一體化運營,保持渠道間服務(wù)體驗一致性,使其滿足8000萬用戶對現(xiàn)有功能的系統(tǒng)需求。
(3)推動主動服務(wù)模式實施
推動各類業(yè)務(wù)在線上的一網(wǎng)通辦,實現(xiàn)常用辦電業(yè)務(wù)“一次都不跑”,非常用業(yè)務(wù)“最多跑一次” 的服務(wù)模式落地,提升業(yè)務(wù)申請便捷程度,以移動化、互動化的方式,為客戶提供智能化、個性化服務(wù)。
(4)構(gòu)建互聯(lián)網(wǎng)+統(tǒng)一客戶的管理
形成客戶全景視圖,匯聚用電客戶、電商客戶、電動汽車客戶、光伏客戶、能效客戶、結(jié)算客戶等所有的客戶信息和業(yè)務(wù)信息,挖掘客戶價值,賦能產(chǎn)業(yè)發(fā)展。
2 解決方案
2.1業(yè)務(wù)中心規(guī)劃
業(yè)務(wù)中心設(shè)計主要考慮高內(nèi)聚低耦合、數(shù)據(jù)完整性和可運營等原則,即一個業(yè)務(wù)中心內(nèi)業(yè)務(wù)應(yīng)該是相關(guān)性很高,而業(yè)務(wù)中心之間業(yè)務(wù)隔離性比較大,而且每個業(yè)務(wù)中心數(shù)據(jù)模型是相對獨立和完整的,總之,一個業(yè)務(wù)中心可以理解是承載業(yè)務(wù)邏輯、沉淀業(yè)務(wù)數(shù)據(jù)、產(chǎn)生業(yè)務(wù)價值的業(yè)務(wù)單元。
2.2系統(tǒng)架構(gòu)設(shè)計
平臺基于南網(wǎng)云PAAS平臺建設(shè),采用微服務(wù)框架、前后端分離技術(shù)實現(xiàn),數(shù)據(jù)使用大數(shù)據(jù)平臺存儲。如圖1所示,系統(tǒng)前端使用nginx服務(wù)器,負(fù)責(zé)html頁面等靜態(tài)資源解析,后端采用Java服務(wù)器(tomcat)負(fù)責(zé)業(yè)務(wù)邏輯處理。前端頁面通過ajax調(diào)用后端的restuful api接口并使用json數(shù)據(jù)進行交互,這樣好處是前端開發(fā)可專注前端邏輯實現(xiàn),并且前端服務(wù)器可以通過水平擴展動態(tài)抵御訪問洪峰,后端開發(fā)則可專注業(yè)務(wù)邏輯實現(xiàn),只提供服務(wù)接口以支持多前端,大大提高代碼重用性和可維護性。系統(tǒng)把微服務(wù)拆分成兩類,一類是有狀態(tài)服務(wù)即圖中的微應(yīng)用,部署在網(wǎng)側(cè)DMZ區(qū),負(fù)責(zé)面向前端提供訪問服務(wù),以及接收和維持客戶端的會話狀態(tài),微應(yīng)用具備把會話狀態(tài)轉(zhuǎn)成無狀態(tài)的能力;一類是無狀態(tài)服務(wù)即圖中的微服務(wù),部署在網(wǎng)側(cè)IDC區(qū),負(fù)責(zé)處理業(yè)務(wù)邏輯,供微應(yīng)用或其他外部應(yīng)用調(diào)用,每個微服務(wù)運行實例通常是一個云虛擬機或者一個Docker,由于無狀態(tài),方便進行橫向擴展以支持高并發(fā)訪問。
2.3服務(wù)粒度考量
在本項目中,我們主要采用如下步驟來確定微服務(wù)粒度:
①首先,從業(yè)務(wù)出發(fā)將整個系統(tǒng)拆分多個業(yè)務(wù)中心,參見2.2節(jié),每個業(yè)務(wù)中心是承載業(yè)務(wù)邏輯、沉淀業(yè)務(wù)數(shù)據(jù)、產(chǎn)生業(yè)務(wù)價值的業(yè)務(wù)單元。
②其次,參考業(yè)務(wù)中心數(shù)據(jù)模型以及各渠道端界面原型需求,識別出業(yè)務(wù)中心所有最小粒度業(yè)務(wù)功能單元,在此基礎(chǔ)上梳理出所有服務(wù)接口清單,每個服務(wù)接口要能支持不同渠道服務(wù)需求,以保證每個微服務(wù)支持多前端。
③最后綜合考慮業(yè)務(wù)、技術(shù)和治理方面因素,將服務(wù)接口從底向上聚合成微服務(wù)。業(yè)務(wù)方面主要考慮單一職責(zé)原則,每個微服務(wù)代表特定的業(yè)務(wù)邏輯,避免微服務(wù)之間共享數(shù)據(jù)庫表;技術(shù)方面主要考慮部署獨立性和動態(tài)擴展,避免分布式事務(wù),每個微服務(wù)可以獨立開發(fā)和演進。治理方面主要考慮微服務(wù)運行策略配置合理和便利性,例如將高低頻訪問服務(wù)接口分割成獨立的微服務(wù),可以為高頻訪問服務(wù)獲得更好的性能和可靠性做針對性優(yōu)化。
總之,微服務(wù)粒度劃分沒有一個簡單方法,必須在遵循一些基本原則基礎(chǔ)上綜合考慮多方面因素做到合適粒度就可以了。在本項目中平臺最終規(guī)劃了八大業(yè)務(wù)中心,30個左右微服務(wù),200左右服務(wù)接口。
2.4開發(fā)運維一體化
采用微服務(wù)架構(gòu)的目的之一就是將單體應(yīng)用分解為微小的互相連接的微服務(wù),以期能敏捷地對客戶需求做出響應(yīng)和改變,快速交付創(chuàng)新成果以提升客戶體驗和忠誠度。我們知道傳統(tǒng)開發(fā)與運維是分離的,運維與開發(fā)處于信息系統(tǒng)不同生命周期階段,開發(fā)負(fù)責(zé)功能實現(xiàn),運維負(fù)責(zé)系統(tǒng)上線后系統(tǒng)的穩(wěn)定和高效運行,并且開發(fā)和運維通常是由不同部門負(fù)責(zé)的,二者關(guān)注的目標(biāo)不一致,造成開發(fā)與運維之間存在一堵很沉重的墻,很難實現(xiàn)應(yīng)用程序的快速交付。因此,在本項目中我們“前移”運維工作,采用開發(fā)運維一體化運作模式,確保統(tǒng)一服務(wù)平臺項目具備持續(xù)交付及持續(xù)運營的能力。
3 結(jié)束語
基于微服務(wù)架構(gòu)的南網(wǎng)統(tǒng)一服務(wù)平臺目前已經(jīng)成功上線運行,服務(wù)全網(wǎng)8000多萬客戶,應(yīng)用效果比較顯著。平臺通過一套微服務(wù)支持網(wǎng)廳、掌廳、微信公眾號、支付寶生活號等多個前端,實現(xiàn)客戶一次注冊、全渠道應(yīng)用,改變了以前不同渠道客戶需重復(fù)注冊現(xiàn)象,大大提升了客戶通過互聯(lián)網(wǎng)辦理業(yè)務(wù)比例,為南網(wǎng)業(yè)務(wù)辦理“一次都不跑”的承諾提供堅實可靠的技術(shù)保障。在項目實踐中,對微服務(wù)粒度劃分方法做了比較深入研究,對開發(fā)運維一體化也做了有益嘗試,并取得不錯成效。
(作者單位:南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司)