鐘云南,陳冬隱,翁 貞,劉小龍,黃妹妹
(1.國網福建省電力有限公司,福建 福州 350000;2.國網福建省電力有限公司 信息通信分公司,福建 福州 350000;3.國網福建省電力有限公司 長汀縣供電公司,福建 龍巖 366300;4.國網信通億力科技有限責任公司,福建 福州 350003)
目前的電力服務系統以業務營銷及應用系統為主,主要由3類信息系統構成即電力業務管理、營銷業務管理及應用平臺支持,隨著電力規模的不斷擴大以及用戶需求的多樣化發展,電力服務系統存在的問題和不足主要表現在:各類業務領域同信息系統間的交互種類繁多,采用不同技術的多種多樣的系統間的接口造成了系統的臃腫,海量的電力數據在不同系統間的復制質量較低,易導致數據多次重復復制及寫入,數據在水平和垂直系統間的傳輸信道以及數據交換協議的統一程度較低,降低了整體服務系統的可擴展性,不利于電力服務及應用的正常運營和開展。
電力業務應用系統平臺建設工作隨著智能電網建設及能源互聯網建設工作的深入發展而逐步向規模化、高效率的方向發展,云化趨勢顯著,對功能的多樣性及性能的穩定性提出了更高的要求。單體使電力云平臺的復雜程度較高,進而增加了系統平臺的擴展、維護、升級等方面的難度,通常在對某個部分進行更新的同時需對整個應用進行重新部署,不利于電力服務質量及效率的有效提升;受到普遍存在的多樣化管理方式的限制,導致在面對相同業務需求的情況下系統功能被重復建設,通過模塊化開發、建設電力云平臺及分布式部署架構的構建可有效解決上述問題,微服務架構(Micro-Service Architecture)為電力云平臺的優化提供了理想的解決方案,實現了面向服務架構(SOA)思想的微服務架構能夠通過在各離散的服務中完成不同功能的分解,從而實現對解決方案的解耦,近年來迅速發展完善的IT建設理念(包括DevOps、持續交付等)以及容器技術(包括虛擬化、Docker等)為微服務架構在電力服務云平臺中的落地實施提供了有力的支撐。
不同服務間通過輕量級通信機制(如 REST/JSON 等)的使用即可實現相互間的有效溝通過程,進而實現相互間的有效配合確保平臺整體功能的實現。服務松散自治的微服務架構繼承了 SOA 的優勢(SOA編排操作的方案時基于企業服務總線完成),具備靈活、易實施、可擴展等優勢,微服務架構更加注重服務的開發以及獨立運行,基于現代化技術理念(包括敏捷開發、持續交付、虛擬化、DevOps 等)實現的微服務架構為電力服務系統的移動和智能化辦公奠定了堅實的基礎,能夠在不影響現有電力業務正常運行的基礎上以不同功能的微服務接口的形式完成對復雜應用系統(集中于傳統PC 端)的分解及快速重構,重構后的應用系統不僅適用于移動端還具備低耦合、易于擴展和伸縮等優勢。升級部署系統時僅需通過局部新增、改進或替換過時的組件即可實現,更加符合實際電力服務系統的漸進式演進規律。
基于微服務架構的電力服務系統云平臺的總體架構示意圖,如圖1所示。通過該平臺的建立能夠實現平臺的一鍵式部署、全鏈路監控功能。

圖1 電力服務系統云平臺總體架構示意圖Fig.1 Schematic diagram of the overall architecture of the cloud platform of the power service system
(1)平臺服務,包括平臺組件服務和應用管理服務(主要負責管理電力云平臺承載的應用,實現了自動部署、彈性伸縮、全鏈路監控等功能),平臺組件服務可以將多租戶接口向云服務中心提供,云服務中心提供接口的調用實現服務的統一對外提供,并且可在業務應用中綁定相應的平臺服務,業務應用根據自身實際需求可對具體的 API(由部分平臺服務提供)進行調用;
(2)基礎設施服務層,可以將服務功能向服務層提供,云服務中心對各個接口進行整合后實現了虛擬機、容器等計算服務以及集中式存儲和分布式存儲服務統一對外提供;各組件和應用內部實例由云服務中心通過負載均衡服務接口(由負載均衡器提供)進行自動部署、監控、調度,最終實現負載均衡的有效配置;
(3)云服務中心,主要由云控制臺、部署配置和監控調度構成,部署配置針對應用和云平臺組件運行環境(支撐其服務化和動態部署)通過使用腳本引擎技術實現部署編排功能;全鏈路監控數據(從訪問入口到基礎硬件)通過云服務中心的監控調度完成收集過程,并根據設定的調度策略提供彈性調度能力(包括底層硬件資源及上層平臺服務)。
電力服務系統云平臺的云服務屬于統一對外提供的 IT 服務清單(集成了基礎設施服務、業務應用系統、平臺服務及云服務中心),支撐包括微應用、SaaS 應用和 API等在內的新型應用形態,實現應用的有效自動部署過程,故障恢復及資源自動在線伸縮功能的實現使業務系統上線周期得以顯著縮短,同時提升了業務系統運行質量。
通過在電力服務系統中應用微服務架構實現了應用程序可拓展性的顯著提高,系統平臺的應用程序和功能主要由微服務框架通過微應用和微服務實現,能夠將強大的信息支持提供給特定業務,本文所設計的電力服務系統云平臺主要由一組微應用和微服務構成,在分布式服務總線上完成各微服務的注冊,微服務由分布式服務總線進行推送,在此基礎上實現微服務在微應用間的調用。由微應用程序實現具體的業務邏輯(通過調用微服務),并將同微應用交互的接口組件提供給用戶。
基于微服務的電力服務系統云平臺構建的首要任務在于對較大且復雜程度高的業務邏輯進行抽象和劃分,基于微服務架構的電力服務系統云平臺架構如圖2所示。電力云中負責監控管理系統運行的功能模塊視為平臺中的一個微服務,開發完電力微服務應用后需對其進行部署、驗證(通過持續交付組件完成);然后,在電力服務系統云平臺中發布的同時在服務注冊中心完成注冊。用戶通過平臺的服務網關組件發出相應的微服務請求,服務網關發展完成對請求的攔截和定位。

圖2 基于微服務架構的電力云平臺架構Fig.2 Power cloud platform architecture based on micro-service architecture
持續交付組件
微服務持續交付流程為:源碼管理、自動構建、部署管理、集成測試、發布管理,主要負責完成在運行環境中完成可編程配置的各電力應用微服務(由平臺承載,具備易于維護、變更及擴展的特點)自動高效、可持續的部署過程。
服務注冊中心
平臺中的每一項服務實例都會根據策略而發生變化,服務注冊中心主要記錄各實例訪問信息,對各實例的運行狀況進行追蹤以及對運行時的動態信息進行監測,并在此基礎上進行適當的調整。客戶端對服務注冊中心的服務進行訪問時先向分發層提交訪問請求,對服務實例定位之后完成相應調度策略的選擇。
服務網關
服務網關封裝了平臺內的服務信息,提供執行結果緩存機制,提供負載均衡、協議轉換、安全防護等策略。
本文通過采用微服務架構實現對電力云平臺架構的微服務化,完成復雜業務模塊到多個微服務的抽象劃分。
..建立統一的服務間通信機制
通過進程間通信機制的統一建立使各個微服務間的交互功能得以有效實現,建立進程間通信機制的主要步驟:
(1)定義服務標識,針對服務的 API 完成唯一描述標識的定義,明確一個服務對應多實例共存時的描述方式,以確保向前兼容性;
(2)服務并發控制,通過設計服務間并發策略,實現對實例的并發管理;
(3)處理失效部分,服務調用時可能發生的異常情況(包括調用超時、服務內部及網絡錯誤等)易導致調用阻塞、當前占用資源難以釋放等問題的出現。為此,可采用熔斷限流及超時重試等策略;
(4)同步請求/響應模式,具體可按照實際需要選用遠程過程調用(RPC,基于序列化和反序列化機制)、http 的RESTful、基于 XML 和SOAP的WebService等;
(5)確定異步消息通信模式,發起一次請求后客戶端無需等待服務端的響應即可繼續執行業務邏輯,客戶端通過回調式Apache 的 Active MQ對服務端的響應結果進行處理。
..服務發現機制
主要負責向云平臺中的服務提供定位功能。包括服務調用者發現(由服務請求方從相應的若干實例中選取并發出請求)和分發層服務發現(由分發層根據接收到的服務請求對服務實例進行查詢和定位)。
隨著電網的信息化及智能化水平的不斷提升,電網建設及發展工作面臨著新的挑戰,電力服務系統對建設電力云平臺提出了更高的要求,目前在業務集成、數據共享等領域已經取得了一定的進展。本文提出了一種基于微服務架構的電力服務系統云架構的優化方案,深入分析了電力云平臺關鍵組件的搭建方法,通過引入微服務架構使電力云平臺標準統一及結構復雜等問題得以有效解決。在有效簡化了服務系統平臺的運維管理過程的同時,提升了整體電力服務水平及電力管理工作的質量。