Q∕GDW 12119-2021 微服務(wù)架構(gòu)設(shè)計導(dǎo)則_第1頁
Q∕GDW 12119-2021 微服務(wù)架構(gòu)設(shè)計導(dǎo)則_第2頁
Q∕GDW 12119-2021 微服務(wù)架構(gòu)設(shè)計導(dǎo)則_第3頁
Q∕GDW 12119-2021 微服務(wù)架構(gòu)設(shè)計導(dǎo)則_第4頁
Q∕GDW 12119-2021 微服務(wù)架構(gòu)設(shè)計導(dǎo)則_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、ICS 29. 240Q/GDW國家電網(wǎng)有限公司企業(yè)標(biāo)準(zhǔn)Q/GDW 121192021微服務(wù)架構(gòu)設(shè)計導(dǎo)則Design guideline for microservice architecture2021 -06-25 實(shí)施2021 -06-25布國家電網(wǎng)有限公司 發(fā)布Q/GDW 121192021目 次tti Wii1 翻l2 規(guī)范性引用文件13術(shù)i吾轍5C14鵬i吾35彫十魏35. 1總體要求35. 2總體架構(gòu)35.3拆分原則45. 4拆分方法45. 5設(shè)計要求46磁隹魏46.1開發(fā)運(yùn)維工具要求46. 2部署要求57接口設(shè)計要求5附錄A (資料性附錄) 微服務(wù)架構(gòu)應(yīng)用開發(fā)參考6貓18為規(guī)范

2、基于微服務(wù)架構(gòu)應(yīng)用的通用設(shè)計與技術(shù)要求,包括微服務(wù)設(shè)計要求、運(yùn)維要求和接口設(shè)計要 求,制定本標(biāo)準(zhǔn)。本標(biāo)準(zhǔn)由國家電網(wǎng)有限公司互聯(lián)網(wǎng)部提出并解釋。本標(biāo)準(zhǔn)由國家電網(wǎng)有限公司科技部歸口。本標(biāo)準(zhǔn)起草單位:國網(wǎng)信息通信產(chǎn)業(yè)集團(tuán)有限公司、國網(wǎng)山東省電力公司、國網(wǎng)上海市電力公司、 國網(wǎng)浙江省電力有限公司、國網(wǎng)江蘇省電力有限公司、國網(wǎng)四川省電力公司、國網(wǎng)陜西省電力公司、國 網(wǎng)甘肅省電力公司、南瑞集團(tuán)有限公司、中國電力科學(xué)研究院有限公司、國網(wǎng)重慶市電力公司。本標(biāo)準(zhǔn)主要起草人:劉迪、崔蔚、劉澤三、吳鋼、邱鎮(zhèn)、廖逍、趙峰、付煒平、鄭建寧、王孟強(qiáng)、 張治志、張晶、劉歆一、李春岐、焦艷斌、王璇、張士林、張小勇、崔雪璐、吳

3、巖、李策、毛冬、潘新 陽、徐冉、楊啟帆、呂鵬鵬、唐震宇、張馳、劉少博、劉旭、郭彥飛、李哲、吳高翔。本標(biāo)準(zhǔn)首次發(fā)布。本標(biāo)準(zhǔn)在執(zhí)行過程中的意見或建議反饋到國家電網(wǎng)有限公司科技部。#Q/GDW 121192021微服務(wù)架構(gòu)設(shè)計導(dǎo)則1范圍本標(biāo)準(zhǔn)規(guī)定了基于微服務(wù)架構(gòu)應(yīng)用的通用設(shè)計與技術(shù)要求,包括微服務(wù)設(shè)計要求、運(yùn)維要求、接口 設(shè)計要求等內(nèi)容。本標(biāo)準(zhǔn)適用于指導(dǎo)開發(fā)團(tuán)隊(duì)在公司信息化建設(shè)中對微服務(wù)架構(gòu)的總體設(shè)計。2規(guī)范性引用文件下列文件對于本標(biāo)準(zhǔn)的應(yīng)用是必不可少的。凡是注日期的引用文件,僅注日期的版本適用于本文件。 凡是不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件。GB/T 32430信息技

4、術(shù)S0A應(yīng)用的服務(wù)分析與設(shè)計Q/GDW 11822. 1國家電網(wǎng)公司一體化“國網(wǎng)云”第1部分術(shù)語3術(shù)語和定義Q/GDW 11822. 1界定的以及下列術(shù)語和定義適用于本文件。3. 1微月艮務(wù) m i croserv i ce一些可協(xié)同工作、小而自治、分布式模式的軟件服務(wù),以服務(wù)方式實(shí)現(xiàn)的軟件包,具有部署獨(dú)立、 通信輕量的特點(diǎn),支撐單一業(yè)務(wù)邏輯的功能實(shí)現(xiàn)。3. 2微服務(wù)架構(gòu) m i croserv i ce arch i tecture一種基于分布式模式的軟件架構(gòu),其核心思想是把一個大型的應(yīng)用程序拆分為若干個服務(wù)模塊,每 個服務(wù)模塊承擔(dān)單一職責(zé)、模塊化、相對獨(dú)立的一段業(yè)務(wù)邏輯,可獨(dú)立部署、獨(dú)立運(yùn)

5、行,并采用輕量級 的通信機(jī)制互相配合為用戶提供最終價值。每個微服務(wù)可根據(jù)業(yè)務(wù)性能需要進(jìn)行獨(dú)立擴(kuò)展。3. 3分布式服務(wù)總線distributed serv i ce bus用于對服務(wù)進(jìn)行管理的平臺組件,包括服務(wù)注冊、發(fā)現(xiàn)、調(diào)用、路由、監(jiān)控等。3. 4配置中心config center為微服務(wù)提供多個環(huán)境下的統(tǒng)一動態(tài)配置信息的存儲,在各個運(yùn)行環(huán)境下通過推拉的方式將更新的 信息同步到微服務(wù)中。3. 5微月艮務(wù)網(wǎng)關(guān) m i croserv i ce gateway微服務(wù)架構(gòu)中的一個關(guān)鍵的角色,用來保護(hù)、增強(qiáng)和控制對于微服務(wù)的訪問,實(shí)現(xiàn)請求接入、業(yè)務(wù) 聚合、攔截策略和統(tǒng)一管理等功能。3. 6應(yīng)用程序編程

6、接口 App I i cat i on Programm i ng Interface提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解 內(nèi)部工作機(jī)制的細(xì)節(jié)。3. 7開發(fā)運(yùn)維_體化DevOpsDevelopment (開發(fā))和Operations (運(yùn)維、運(yùn)營)的合成詞,通過自動化工具和管理制度,將業(yè) 務(wù)目標(biāo)的規(guī)劃與度量、開發(fā)和測試、發(fā)布和部署、監(jiān)控和優(yōu)化形成一個快速迭代的閉環(huán),形成對業(yè)務(wù)目 標(biāo)快速持續(xù)集成及持續(xù)交付的能力。3. 8最終事務(wù)_致性 eventua I cons i stency借助消息隊(duì)列實(shí)現(xiàn),業(yè)務(wù)邏輯處理成功后發(fā)送消息,確保消息是發(fā)送成功的

7、,之后由消息隊(duì)列投遞 來進(jìn)行處理,如果成功則結(jié)束,如果沒有成功則重試,直到成功。3. 9兩階段提交 two phase comm i t事務(wù)的發(fā)起者提出一個請求,要求其依賴服務(wù)響應(yīng)請求,當(dāng)所有依賴服務(wù)均成功確認(rèn)時,事務(wù)的發(fā) 起者通知所有執(zhí)行者確認(rèn)事務(wù),只要有一個執(zhí)行者返回失敗時,則通知所有執(zhí)行者取消事務(wù)。3. 10事務(wù)豐卜償 transact i on compensat i ng每個操作都要注冊一個與其對應(yīng)的確認(rèn)和補(bǔ)償(撤銷)操作,通過嘗試執(zhí)行、確認(rèn)執(zhí)行及取消執(zhí)行 三個階段,實(shí)現(xiàn)對分布式事務(wù)一致性的管理。3. 11灰度發(fā)布 gray re I ease一種上線策略,在該策略中,把新的應(yīng)用程序

8、版本發(fā)布到生產(chǎn)服務(wù)器的一小部分上,并嚴(yán)格監(jiān)控以 確定其是否按預(yù)期運(yùn)行,運(yùn)行無誤后再推廣到整個集群。3. 12持續(xù)交付 cont i nuous de I i very一套流程和實(shí)踐,從根本上清除軟件生產(chǎn)過程中的浪費(fèi),能更快地交付高質(zhì)量的功能,并在業(yè)務(wù)和 用戶之間建立快速有效的反饋環(huán)。3. 13表述性狀態(tài)傳遞RESTf u I一種網(wǎng)絡(luò)應(yīng)用程序的設(shè)計風(fēng)格和開發(fā)方式,基于HTTP,通常使用JS0N格式定義報文,提供GET、 POST、PUT、DELETE操作方式對服務(wù)端資源進(jìn)行操作。3. 14幕等性 i dempotent i ty對同一個系統(tǒng),使用同樣的條件,一次請求和重復(fù)的多次請求對系統(tǒng)資源的影

9、響是一致的。 4縮略語下列縮略語適用于本文件。API:應(yīng)用程序編程接口 (Application Programming Interface)DevOps:開發(fā)運(yùn)維一體化(Development和Operations的組合詞)RESTful:表述性狀態(tài)傳遞(Representational State Transfer)SG-UAP:國家電網(wǎng)公司統(tǒng)一應(yīng)用開發(fā)平臺(State Grid Unified Application Platform)5設(shè)計要求5.1總體要求應(yīng)以滿足業(yè)務(wù)需求為前提,通過對微服務(wù)模塊解耦,設(shè)計清晰、穩(wěn)定的系統(tǒng)架構(gòu)。5.2總體架構(gòu)微服務(wù)架構(gòu)分為基礎(chǔ)設(shè)施層、服務(wù)層、應(yīng)用層、D

10、evOps四個主要部分,如圖1所示:a) 基礎(chǔ)設(shè)施層應(yīng)為系統(tǒng)運(yùn)行提供基礎(chǔ)支撐環(huán)境,提供控制臺及監(jiān)控中心為系統(tǒng)運(yùn)維提供便捷管理 方式;b) 服務(wù)層應(yīng)采用微服務(wù)架構(gòu)設(shè)計,部署統(tǒng)一的注冊中心、配置中心,提供穩(wěn)定、無狀態(tài)、抽象的 業(yè)務(wù)服務(wù)能力,并通過微服務(wù)網(wǎng)關(guān)對應(yīng)用層提供統(tǒng)一的API接口。其中按業(yè)務(wù)領(lǐng)域劃分的微服 務(wù)宜獨(dú)立設(shè)計并維護(hù)專屬數(shù)據(jù)庫;c) 應(yīng)用層應(yīng)實(shí)現(xiàn)人機(jī)界面交互、對外接口交互等,可根據(jù)應(yīng)用場景的交互需求以及開發(fā)團(tuán)隊(duì)的技 術(shù)儲備,選擇適合的技術(shù)架構(gòu);d) DevOps應(yīng)提供需求、設(shè)計、開發(fā)、測試、發(fā)布等階段的支撐工具。11ips前端應(yīng)用需求IM服務(wù)層配置中心微服務(wù)網(wǎng)關(guān)注冊中心開發(fā)IM發(fā)布IM

11、基礎(chǔ)云平臺(國網(wǎng)云)圖1微服務(wù)總體架構(gòu)5.3拆分原則微服務(wù)設(shè)計應(yīng)遵循以下原則:a)高內(nèi)聚低耦合原則:將業(yè)務(wù)完整、職責(zé)單一的功能單元拆分為獨(dú)立微服務(wù),耦合性強(qiáng)或存在緊 密事務(wù)聯(lián)系的相關(guān)功能宜設(shè)計在同一微服務(wù)中;b)粒度適中原則:微服務(wù)拆分應(yīng)保持適中的顆粒度,首次設(shè)計不宜過度拆分,宜采用逐步拆分、 持續(xù)演進(jìn)的方式不斷細(xì)化微服務(wù);c)前后端分離原則:將后端服務(wù)剝離為可獨(dú)立開發(fā)及獨(dú)立部署的微服務(wù),微服務(wù)應(yīng)以API接口方 式為前端應(yīng)用提供標(biāo)準(zhǔn)的業(yè)務(wù)支撐能力;d)服務(wù)無狀態(tài)原則:微服務(wù)應(yīng)是無狀態(tài)的,微服務(wù)接口不應(yīng)包含服務(wù)請求的狀態(tài)信息。5. 4拆分方法微服務(wù)拆分可采用以下方法:a)基于業(yè)務(wù)領(lǐng)域識別:宜將業(yè)

12、務(wù)完整、職責(zé)單一的功能垂直拆分為獨(dú)立微服務(wù);b)基于基礎(chǔ)服務(wù)識別:宜將具有重用能力的公共服務(wù)水平拆分為基礎(chǔ)微服務(wù);c)基于性能指標(biāo)識別:宜將高并發(fā)、海量數(shù)據(jù)等性能壓力大的模塊拆分為獨(dú)立部署的微服務(wù);d)基于其它方法識別:宜將可靠性要求高的核心模塊與可靠性要求低的非核心模塊拆分為不同 的微服務(wù)。5. 5設(shè)計要求微服務(wù)設(shè)計應(yīng)遵循以下要求:a)微服務(wù)治理:微服務(wù)治理應(yīng)包含注冊中心、微服務(wù)網(wǎng)關(guān)、配置中心、服務(wù)監(jiān)控等組件,宜通過 云平臺提供的分布式服務(wù)總線對所有的微服務(wù)進(jìn)行統(tǒng)一管理;b)事務(wù)一致性設(shè)計:針對分布式事務(wù)可選擇最終事務(wù)一致性、兩階段提交、事務(wù)補(bǔ)償?shù)冉鉀Q方案, 宜優(yōu)先選擇最終事務(wù)一致性方案;c

13、)分布式日志設(shè)計:應(yīng)提供統(tǒng)一的日志管理組件實(shí)現(xiàn)日志的集中采集、管理及分析。6運(yùn)維要求 6.1開發(fā)運(yùn)維工具要求開發(fā)運(yùn)維工具應(yīng)支撐需求下發(fā)、代碼提交與編譯、測試與驗(yàn)證,部署與運(yùn)維等階段,提供軟件研發(fā) 端到端的支持,具體要求如下:a)技術(shù)路線可參照附錄表A. 1;b)微服務(wù)應(yīng)具備持續(xù)集成及持續(xù)交付能力;c)微服務(wù)測試應(yīng)包括單元測試、組件測試、集成測試、系統(tǒng)測試等各個環(huán)節(jié);d)代碼倉庫應(yīng)支持SVN、Git等主流配置管理工具;e)鏡像庫應(yīng)支持鏡像文件的統(tǒng)一管理和共享;f)容器管理模塊應(yīng)提供對容器的管理及編排工具;g)自動發(fā)布功能應(yīng)提供發(fā)布包的資源庫管理及發(fā)布管理組件。6. 2部署要求微服務(wù)部署要求主要包

14、括如下方面:a)每個部署單元可包括一個或多個微服務(wù);b)可采用多版本共存的灰度發(fā)布方式;c)宜考慮高可用和負(fù)載均衡;d)宜采用容器方式進(jìn)行部署。7接口設(shè)計要求微服務(wù)接口設(shè)計應(yīng)遵循如下規(guī)則:a)微服務(wù)接口宜遵循RESTful輕量級的接口設(shè)計風(fēng)格,接口報文示例見附錄A. 2;b)微服務(wù)接口應(yīng)設(shè)計為無狀態(tài)服務(wù),應(yīng)避免對用戶登錄狀態(tài)的依賴;c)微服務(wù)接口宜具有冪等性質(zhì)。附錄A(資料性附錄)微服務(wù)架構(gòu)應(yīng)用開發(fā)參考A. 1技術(shù)路線基于微服務(wù)架構(gòu)的應(yīng)用的技術(shù)路線如表A. 1所示。表A. 1技術(shù)路線要求分層類型產(chǎn)品/技術(shù)總體技術(shù)選型JDK平臺版本:1.8.x及以上要求開源軟件選用 BSD、Apache Lic

15、ense 2. 0、LGPL、MIT 協(xié)議的開源 軟件開發(fā)平臺統(tǒng)一應(yīng)用開發(fā)平臺(SG-UAP3. 1)及以上展現(xiàn)層門戶企業(yè)門戶2.0及以上瀏覽器IE9.0+, Firefox55+, Chrome58+應(yīng)用層前端技術(shù)HTML、 CSS JavaScript vue.js 等服務(wù)層云平臺組件統(tǒng)一權(quán)限組件,統(tǒng)一流程組件分布式服務(wù)總線中間件SG-APS2. 0及以上版本W(wǎng)ebLogic 12. 2. 1. 3 及以上版本Tomcat V8. 0及以上版本數(shù)據(jù)層數(shù)據(jù)庫SG-RDB (MySQL、 PostgreSQL)國網(wǎng)數(shù)據(jù)中臺Oracle llg及以上非結(jié)構(gòu)化數(shù)據(jù)大數(shù)據(jù)平臺組件(對非結(jié)構(gòu)化數(shù)據(jù)訪問

16、,訪問方式和API 和原非結(jié)構(gòu)化平臺一致)資源層操作系統(tǒng)Redhat Linux/CentOS Linux V7. 5 及以上版本 Windows server 2008 spl 及以上部署環(huán)境容器虛擬機(jī)運(yùn)行云環(huán)境私有云環(huán)境A.2微服務(wù)接口報文示例A. 2. 1報文示例1前端應(yīng)用采用web + java架構(gòu),在前端應(yīng)用的java程序中針對各渠道的差異分別進(jìn)行身份鑒權(quán),基 于token或session獲取到用戶信息后,并將操作用戶等通用信息統(tǒng)一封裝在報文頭,微服務(wù)報文示例如 下:a)請求報文通用報文頭信息:1)應(yīng)用端請求流水號:reqID2)請求渠道編碼:channelCode3)請求端系統(tǒng)編碼

17、:reqSysCode4)用戶所屬機(jī)構(gòu)編碼:orgNo5)操作用戶編碼:userNo6)接口版本號(XX. yy) : version (初始為 “1.0”)b)應(yīng)答報文可通用報文頭信息:1)業(yè)務(wù)返回代碼:code2)業(yè)務(wù)返回描述:messagec)報文的主體內(nèi)容:1)業(yè)務(wù)數(shù)據(jù)節(jié)點(diǎn):datad)請求報文及應(yīng)答報文示例,如圖A. 1所示:請求報文:應(yīng)答報文:”reqID”: ”1260476885645791234”,code: ”0”,”channelCode”: ”APP”,message: ”成功”,orgNo”: ”1001”,”data”: ” 1260793006924107778”

18、userNo”: ”10001”,”version”: ”1.0”,”data”: demoBoolean: true,”demoDate”: ”2020-05-15 11:32:15”, demoDouble: 1.1,demolnteger: 1,demoString:測試字段圖A. 1微服務(wù)接口報文示例1A. 2.2報文示例2前端應(yīng)用采用web純前端架構(gòu),在微服務(wù)網(wǎng)關(guān)中對全部渠道進(jìn)行統(tǒng)一身份鑒權(quán),token節(jié)點(diǎn)直接定義 在微服務(wù)報文中,請求報文及應(yīng)答報文示例,如圖A. 2所示:請求報文: (應(yīng)答報文:f”reqID”: 1260476885645791234*,1code: ”0”,”c

19、hannelCode”: ”APP”,message: ”成功,demoBoolean: true,”demoID”: ” 1260793006924107778”demoDate”: ”2020-05-15 11:32:15”, ” demoDouble”: 1.1,demolnteger: 1,”demoString”:測試字段”, version: ”1.0”,token: xxxxxxxxxxxxxxxxxxxxxxxx1圖A. 2微服務(wù)接口報文示例2微服務(wù)架構(gòu)設(shè)計導(dǎo)則目 次i_髖io2編制主要原則103與其他標(biāo)準(zhǔn)文件的關(guān)系104主要工作過程105 標(biāo)準(zhǔn)結(jié)構(gòu)和內(nèi)容106 紋側(cè)111編制

20、背景本標(biāo)準(zhǔn)依據(jù)國家電網(wǎng)有限公司下達(dá)的2020年第一批技術(shù)標(biāo)準(zhǔn)制修訂計劃的通知(國家電網(wǎng)科 2020) 21號文)的要求編寫。本標(biāo)準(zhǔn)的編制背景為公司在深入推進(jìn)微服務(wù)建設(shè)工作的基礎(chǔ)上,要求進(jìn)一步規(guī)范信息系統(tǒng)研發(fā)單位 設(shè)計微服務(wù)的架構(gòu)導(dǎo)則。本標(biāo)準(zhǔn)的編制目的為滿足電力物聯(lián)網(wǎng)條件下,解決目前公司信息化發(fā)展過程中由于缺乏統(tǒng)一微服務(wù) 設(shè)計規(guī)范標(biāo)準(zhǔn),帶來的微服務(wù)架構(gòu)不統(tǒng)一、難以管理等問題。2編制主要原則本標(biāo)準(zhǔn)根據(jù)以下原則編制:a)堅(jiān)持先進(jìn)性與實(shí)用性相結(jié)合、統(tǒng)一性與靈活性相結(jié)合、可靠性與經(jīng)濟(jì)性相結(jié)合的原則,以標(biāo)準(zhǔn) 化為引領(lǐng),服務(wù)公司科學(xué)發(fā)展;b)認(rèn)真研宄國內(nèi)外現(xiàn)行相關(guān)的IEC標(biāo)準(zhǔn)、國家標(biāo)準(zhǔn)、行業(yè)標(biāo)準(zhǔn)、企業(yè)標(biāo)準(zhǔn),體現(xiàn)微

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論