《電力行業(yè)云服務(wù)設(shè)計與技術(shù)要求》_第1頁
《電力行業(yè)云服務(wù)設(shè)計與技術(shù)要求》_第2頁
《電力行業(yè)云服務(wù)設(shè)計與技術(shù)要求》_第3頁
《電力行業(yè)云服務(wù)設(shè)計與技術(shù)要求》_第4頁
《電力行業(yè)云服務(wù)設(shè)計與技術(shù)要求》_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

ICS點擊此處添加ICS號

點擊此處添加中國標準文獻分類號

DL

中華人民共和國電力行業(yè)標準

XX/TXXXXX—XXXX

電力行業(yè)云應(yīng)用設(shè)計與技術(shù)要求

RequirementofDesignandTechniqueforCloudApplicationsinElectricPower

Industry

點擊此處添加與國際標準一致性程度的標識

(征求意見稿)

XXXX-XX-XX發(fā)布XXXX-XX-XX實施

發(fā)布

XX/TXXXXX—XXXX

I

XX/TXXXXX—XXXX

電力行業(yè)云應(yīng)用設(shè)計與技術(shù)要求

1范圍

本標準規(guī)定電力行業(yè)可部署運行在云環(huán)境中、能統(tǒng)一適配云計算特性的業(yè)務(wù)應(yīng)用和服務(wù)的設(shè)計和技

術(shù)要求,制定本標準。

本標準適用于電力行業(yè)相關(guān)的單體架構(gòu)和微服務(wù)架構(gòu)的業(yè)務(wù)應(yīng)用系統(tǒng)的整個全生命周期。

2規(guī)范性引用文件

下列文件對于本文件的應(yīng)用是必不可少的。凡是注日期的引用文件,僅所注日期的版本適用于本文

件。凡是不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件。

GB/T17859-1999計算機信息系統(tǒng)安全保護劃分準則

GB/T22239-2008信息安全技術(shù)信息系統(tǒng)安全等級保護基本要求

GB/T22240-2008信息安全技術(shù)信息系統(tǒng)安全等級保護定級指南

GB/T28452-2012信息安全技術(shù)應(yīng)用軟件系統(tǒng)通用安全技術(shù)要求

GB/T29263信息安全技術(shù)面向服務(wù)的體系結(jié)構(gòu)(SOA)應(yīng)用的總體技術(shù)要求

GB/T29831.3-2013系統(tǒng)與軟件功能性第3部分:測試方法

GB/T31168-2014信息安全技術(shù)云計算服務(wù)安全能力要求

GB/T31915-2015信息技術(shù)彈性計算應(yīng)用接口

GB/T32399-2015信息技術(shù)云計算參考架構(gòu)

GB/T32400信息技術(shù)云計算概覽與詞匯

GB/T32430-2015信息技術(shù)SOA應(yīng)用的服務(wù)分析與設(shè)計

GB/T35279-2017信息安全技術(shù)云計算安全參考架構(gòu)

GB/T35301-2017信息技術(shù)云計算平臺即服務(wù)(PaaS)參考架構(gòu)

GB/T36325-2018信息技術(shù)云計算云服務(wù)級別協(xié)議基本要求

GB/T36326-2018信息技術(shù)云計算云服務(wù)運營通用要求

GB/T36327-2018信息技術(shù)云計算平臺即服務(wù)(PaaS)應(yīng)用程序管理要求

GB/T36463.1-2018信息技術(shù)服務(wù)咨詢設(shè)計第1部分:通用要求

GB/T36610-2018用于微博客的法人和其他組織統(tǒng)一社會信用代碼實名認證服務(wù)接口規(guī)范

GB/T36623-2018信息技術(shù)云計算文件服務(wù)應(yīng)用接口

GB/T36639-2018信息安全技術(shù)可信計算規(guī)范服務(wù)器可信支撐平臺

GB/T33780.1-2017基于云計算的電子政務(wù)公共平臺技術(shù)規(guī)范第1部分:系統(tǒng)架構(gòu)

GB/T34080.1-2017基于云計算的電子政務(wù)公共平臺安全規(guī)范第1部分:總體要求

GB-T5271-1-2000信息技術(shù)詞匯第1部分:基本術(shù)語

DL/T860.2-2006變電站通信網(wǎng)絡(luò)和系統(tǒng)第2部分:術(shù)語

DL/T1729-2017電力信息系統(tǒng)功能及非功能性測試規(guī)范

DL/T1731-2017電力信息系統(tǒng)非功能性需求規(guī)范

YD/T2806-2015云計算基礎(chǔ)設(shè)施即服務(wù)(IaaS)功能要求與架構(gòu)

1

XX/TXXXXX—XXXX

3術(shù)語和定義

GB-T5271-1-2000、DL/T860.2界定的以及下列術(shù)語和定義適用于本文件。

3.1服務(wù)service

提供給用戶滿足其應(yīng)用需求的有形或無形的活動。

[GB/T33780.1-2017,定義3.1]

3.2云服務(wù)cloudservice

通過云計算已定義的接口提供的一種或多種能力。

[GB/T32400-2015,定義3.2.8]

3.3微服務(wù)microservice

把一個大型的單個應(yīng)用程序和服務(wù)拆分為若干個服務(wù)模塊,每個服務(wù)模塊承擔單一職責、模塊化、

相對獨立的一段業(yè)務(wù)邏輯,可獨立部署、獨立運行,并采用輕量級的通信機制互相配合,實現(xiàn)一組同類

型的或緊密耦合的單一業(yè)務(wù)目標或業(yè)務(wù)場景的功能邏輯組合軟件包。每個微服務(wù)可根據(jù)業(yè)務(wù)性能需要進

行獨立擴展。

3.4云平臺cloudplatform

能夠按需提供具有應(yīng)用程序部署、管理和運行能力的操作系統(tǒng)。

[GB/T35301-2017,定義3.1.2]

3.5基礎(chǔ)設(shè)施即服務(wù)infrastructureasaservice;IaaS

云服務(wù)提供商向云服務(wù)用戶提供計算、存儲、云內(nèi)網(wǎng)絡(luò)連接服務(wù)(如虛擬局域網(wǎng)、防火墻愛、負載

均衡、應(yīng)用加速)等資源和其他基礎(chǔ)計算資源,云服務(wù)用戶可以在上面部署和運行任意的應(yīng)用程序。云

服務(wù)用戶不能夠管理和控制底層資源,但是可以管理和控制操作系統(tǒng),已部署的應(yīng)用程序,以及控制部

分的網(wǎng)絡(luò)組件。

[YD/T2806-2015,定義2.1.3]

3.6平臺即服務(wù)platformasaservice;PaaS

云計算中能夠提供部署、管理和運行應(yīng)用程序能力的服務(wù)模式。

[GB/T35301-2017,定義3.1.1]

4縮略語

下列縮略語適用于本文件。

API:應(yīng)用程序編程接口(ApplicationProgrammingInterface)

CS:云服務(wù)(CloudService)

HTTP:超文本傳輸協(xié)議(HyperTextTransferProtocol)

IaaS:基礎(chǔ)設(shè)施即服務(wù)(InfrastructureasaService)

J2EE:Java2平臺企業(yè)版(Java2PlatformEnterpriseEdition)

JNDI:Java命名和目錄接口(JavaNamingandDirectoryInterface)

JSON:Java腳本對象標記(JavaScriptObjectNotation)

2

XX/TXXXXX—XXXX

OSGI:Java語言動態(tài)模塊化系統(tǒng)的一系列規(guī)范(OpenServiceGatewayInitiative)

PaaS:平臺即服務(wù)(PlatformasaService)

REST:表述性狀態(tài)傳遞(RepresentationalStateTransfer)

URI:統(tǒng)一資源標識符(UniformResourceIdentifier)

XML:可擴展性標記語言(ExtensibleMarkupLanguage)

5業(yè)務(wù)應(yīng)用通用的設(shè)計和技術(shù)要求

5.1導則

業(yè)務(wù)應(yīng)用完整的生命周期包括需求、設(shè)計、開發(fā)、運行和下線。具體要求如下:

a)需求應(yīng)關(guān)注功能和非功能方面的要求。

b)設(shè)計需要服務(wù)化的方法、理論。

c)開發(fā)基于特定的開發(fā)框架,對應(yīng)用和服務(wù)開發(fā)、測試和發(fā)布。

d)運行實現(xiàn)快速部署和服務(wù)監(jiān)控等功能。

e)下線通過卸載或關(guān)機完成。

5.2功能要求

功能要求應(yīng)由業(yè)務(wù)應(yīng)用系統(tǒng)自身能提供的功能決定,具體測試可參考DL/T1729-2017電力信息系

統(tǒng)功能及非功能性測試規(guī)范。

5.3非功能要求

非功能要求應(yīng)滿足DL/T1731-2017電力信息系統(tǒng)非功能性需求規(guī)范。

5.4設(shè)計要求

參考GB/T35301和GB/T32399,部署并運行在云環(huán)境上的業(yè)務(wù)應(yīng)用應(yīng)滿足以下設(shè)計原則:

a)支持多實例集群。宜采用無中心節(jié)點的無狀態(tài)對等集群方式,并基于無狀態(tài)對等集群實現(xiàn)應(yīng)用

的水平動態(tài)伸縮。通過負載均衡服務(wù)把用戶請求分發(fā)到任意一個實例節(jié)點,并對集群中的任意

實例節(jié)點的生命周期進行管理。

b)應(yīng)用的進程宜無狀態(tài)且無共享(低耦合)、易處理,應(yīng)用采用多種進程運行方式。

c)共享HTTP會話數(shù)據(jù)。應(yīng)通過HTTP協(xié)議的HEAD方法獲取API接口的附加信息,通過GET、POST

等其它方法實現(xiàn)對API接口的調(diào)用。

d)避免操作本地文件系統(tǒng)。

e)緩存數(shù)據(jù)宜進行集中存儲。

f)應(yīng)用到數(shù)據(jù)庫或其它服務(wù)的訪問發(fā)生中斷時,應(yīng)有重試和熔斷機制。

g)應(yīng)用通過端口綁定來提供服務(wù),并監(jiān)聽發(fā)送至該端口的請求。端口綁定也意味著一個應(yīng)用可成

為另外一個應(yīng)用的后端服務(wù),調(diào)用方將服務(wù)方提供的相應(yīng)URL當作資源存入配置以備將來調(diào)

用。

h)配置數(shù)據(jù)統(tǒng)一管理。和部署環(huán)境相關(guān)的配置信息不應(yīng)直接固化在程序包的配置文件中,應(yīng)通過

統(tǒng)一配置方式設(shè)置相關(guān)配置項,如將應(yīng)用的配置存儲于環(huán)境變量中。

i)統(tǒng)一日志輸出方式。應(yīng)用系統(tǒng)日志應(yīng)通過相應(yīng)軟件的日志接口輸出日志。

5.5開發(fā)要求

3

XX/TXXXXX—XXXX

單體架構(gòu)或微服務(wù)架構(gòu)的業(yè)務(wù)應(yīng)用應(yīng)滿足的技術(shù)要求,具體如下:

a)容器鏡像:提供Linux和Windows等操作系統(tǒng)需要的基礎(chǔ)容器鏡像,應(yīng)用鏡像需在基礎(chǔ)鏡像基

礎(chǔ)上制作,而且需按照一定的鏡像制作規(guī)范進行鏡像制作。

b)操作系統(tǒng)版本:RHEL6.8、Centos6.8、Windows2008及以上。

c)開發(fā)語言:微服務(wù)架構(gòu)開發(fā)語言要求符合服務(wù)注冊、訂閱規(guī)范;消息總線發(fā)送/接收消息。

d)開放端口:微服務(wù)提供者的TCP監(jiān)聽端口不能與特定的端口沖突。

e)微服務(wù)命名規(guī)范:所有命名必須為小寫字母,命名中除了字母和數(shù)值外只允許使用“.”和英文

的句號來進行分隔,所有微服務(wù)名字中必須包含最少一個“.”分隔符。

5.6運行要求

運行要求主要針對一鍵部署和運行監(jiān)控這兩個功能進行闡述。

5.6.1部署

對業(yè)務(wù)應(yīng)用的部署要求如下:

a)宜考慮高可用和負載均衡。

b)宜采用分層的部署結(jié)構(gòu),前端應(yīng)用集群主要運行Web應(yīng)用;后端應(yīng)用集群主要運行核心業(yè)務(wù)邏

輯。

c)部署環(huán)境是虛擬機、容器或物理機。

d)部署方式一般采用手動、自動。

e)運行環(huán)境是內(nèi)網(wǎng)、外網(wǎng)。

對部署的要求具體應(yīng)包括如下方面:

a)對應(yīng)用部署包命名格式進行約束。

b)對目錄結(jié)構(gòu)中應(yīng)包括的文件夾和文件及用途進行說明。

c)對業(yè)務(wù)應(yīng)用本身進行要求。

命名格式

應(yīng)用提供方應(yīng)通過固定格式說明應(yīng)用部署包的應(yīng)用名稱、編碼、版本、應(yīng)用說明(描述)、開發(fā)單

位、測試單位等信息,見表1。其中應(yīng)用描述文件、應(yīng)用圖標和應(yīng)用截圖均存儲在部署包的根目錄下。

表1應(yīng)用描述信息要素

屬性說明備注

應(yīng)用名稱應(yīng)用的名稱應(yīng)符合信息系統(tǒng)命名規(guī)范

英文名稱應(yīng)用的英文名稱宜不超過20個字符,不應(yīng)重名

應(yīng)用版本應(yīng)用的當前版本號應(yīng)符合信息系統(tǒng)版本規(guī)范

應(yīng)用圖標應(yīng)用的圖標64*64像素,命名為appIco.gif

1024*1024像素,不超過8個截圖,宜2-4個截圖,按

應(yīng)用截圖應(yīng)用的典型頁面截圖

application1.gif、application2.gif規(guī)則延續(xù)

應(yīng)用描述應(yīng)用功能的詳細描述包含所有功能描述,命名為perties

4

XX/TXXXXX—XXXX

開發(fā)單位開發(fā)單位全稱開發(fā)單位

開發(fā)聯(lián)系人項目開發(fā)負責人開發(fā)聯(lián)系人

開發(fā)聯(lián)系方式開發(fā)聯(lián)系方式開發(fā)聯(lián)系方式

測試單位測試單位全稱測試單位

測試聯(lián)系人項目測試負責人測試聯(lián)系人

文件目錄結(jié)構(gòu)

應(yīng)用描述文件目錄結(jié)構(gòu)如下:

#應(yīng)用名稱

=xxx

#英文名稱

app.englishName=xxx

#應(yīng)用版本

app.version=V3.0.0

#應(yīng)用圖標

app.login=/**/**/LOG.PNG

#應(yīng)用截圖

app.picture=/**/**/a.jpg;b.jpg;c.jpg

#應(yīng)用描述

app.desc=xxxxxxxxxxx

#開發(fā)單位

app.developCompany=xxx

#開發(fā)聯(lián)系人

app.developer=xxx

#開發(fā)聯(lián)系方式

app.developerPhone=xxxxxxxxxxx

#測試單位

app.testCompany=xxx

#測試聯(lián)系人

app.tester=xxx

#測試聯(lián)系方式

app.testerPhone=xxxxxxxxxxx

應(yīng)用本身

.1應(yīng)用要求

對業(yè)務(wù)應(yīng)用本身要求如下:

a)采用J2EEServer的應(yīng)用程序?qū)?shù)據(jù)庫的訪問應(yīng)采用JNDI方式,JNDI名稱應(yīng)采用英文名稱_

5

XX/TXXXXX—XXXX

數(shù)據(jù)庫類型_jndi方式(如monitor_mysql_jndi),自動化部署過程中應(yīng)采用此規(guī)則為應(yīng)用系

統(tǒng)創(chuàng)建數(shù)據(jù)源;

b)應(yīng)用程序的配置信息與應(yīng)用包部署位置無關(guān);

c)應(yīng)用程序的日志數(shù)據(jù)應(yīng)配置存儲到/var/log/英文名稱/英文名稱.log位置(如:

/var/log/bpm/task.log)。

.2部署準備

應(yīng)用部署運行前,應(yīng)完成以下準備操作后才可一鍵部署,再供業(yè)務(wù)人員訪問:

a)應(yīng)用打包由應(yīng)用開發(fā)軟件完成;

b)應(yīng)用部署前應(yīng)經(jīng)過相關(guān)的測試,再發(fā)布到相應(yīng)軟件的鏡像倉庫;

c)將應(yīng)用包部署到應(yīng)用中間件并啟動應(yīng)用,供業(yè)務(wù)人員使用。

5.6.2監(jiān)控

監(jiān)控設(shè)計要求除滿足通用軟件對業(yè)務(wù)應(yīng)用系統(tǒng)監(jiān)控數(shù)據(jù)采集要求外,運行在云平臺上的應(yīng)用或服務(wù)

應(yīng)提供健康檢查的URL,云平臺主動調(diào)用URL檢查應(yīng)用或服務(wù)的運行狀態(tài);同時云平臺上的應(yīng)用或服務(wù)應(yīng)

輸出到控制中心或指定文件,用于云平臺收集和監(jiān)控。

監(jiān)控方式

監(jiān)控接口宜某段固定時間提取一次日志數(shù)據(jù)。單體架構(gòu)是通過查看日志或利用SSH方式登錄到系統(tǒng)

的主機上查看,而微服務(wù)架構(gòu)是通過日志組件實時抽取和檢索,供監(jiān)控組件為已部署的應(yīng)用和服務(wù)設(shè)置

相應(yīng)的告警策略。

資源占用

服務(wù)和應(yīng)用運行占用的資源情況(如CPU、內(nèi)存、網(wǎng)絡(luò)等信息)的具體獲取方式需業(yè)務(wù)應(yīng)用提供相

應(yīng)的接口供云平臺調(diào)用。

運行狀態(tài)

應(yīng)用和服務(wù)運行狀態(tài)(如響應(yīng)時間、錯誤率和緩存命中率等指標)的監(jiān)控宜添加相關(guān)管理腳本和配

置文件;可查看運行服務(wù)的Web服務(wù)器或服務(wù)本身的日志監(jiān)控服務(wù)的響應(yīng)時間(最低限度),進一步可

追蹤報告中錯誤出現(xiàn)的次數(shù)。

5.7安全要求

業(yè)務(wù)應(yīng)用的安全要求除應(yīng)滿足GB/T22239、GB/T22240、GB/T28452、GB/T31168、GB/T

35279、GB/T36639,還需滿足如下具體要求。

5.7.1通用安全要求

按照國家及電力行業(yè)相關(guān)的安全要求,信息系統(tǒng)分為二級和三級系統(tǒng)。系統(tǒng)總體安全防護應(yīng)滿足物

理、邊界、網(wǎng)絡(luò)、應(yīng)用、數(shù)據(jù)、主機和終端等7個層面的要求。具體要求參見GB/T31168-2014、GB/T

31915-2015。

5.7.2應(yīng)用安全要求

云上的業(yè)務(wù)應(yīng)用除遵循傳統(tǒng)通用的應(yīng)用安全防護要求外,還應(yīng)提供一些API接口供云平臺上的安全

防護組件調(diào)用。應(yīng)按照“同級系統(tǒng)統(tǒng)一成域”的原則將信息系統(tǒng)部署到相應(yīng)級別的安全域中,并按照其安

6

XX/TXXXXX—XXXX

全等級進行防護。業(yè)務(wù)系統(tǒng)根據(jù)應(yīng)用系統(tǒng)的安全等級,按照信息安全等級保護要求提供應(yīng)用安全方案。

還需重點考慮云平臺存在的混合架構(gòu)應(yīng)用的安全,云平臺應(yīng)提供安全即服務(wù)。此外,參考GB/T

32399-2015。

5.8數(shù)據(jù)要求

在數(shù)據(jù)架構(gòu)層面需要從業(yè)務(wù)角度對數(shù)據(jù)進行垂直或水平切分,并梳理出微應(yīng)用需要對外暴露的服務(wù)

接口。

6單體架構(gòu)應(yīng)用和服務(wù)設(shè)計和技術(shù)要求

6.1適用場景

單體應(yīng)用架構(gòu)模式下,所有業(yè)務(wù)邏輯在同一個進程內(nèi)實現(xiàn),功能間相互調(diào)用不需要網(wǎng)絡(luò)通信,性能

更高;無分布式事務(wù)、易于運維維護、不存在跨域問題等優(yōu)點。因此,單體應(yīng)用適用于業(yè)務(wù)需求穩(wěn)定、

無需頻繁迭代;代碼相對簡單、易理解、易維護;編譯、部署、啟動、迭代周期要求不高;負載變化不

大;數(shù)據(jù)庫表之間緊耦合、多表關(guān)聯(lián)操作多、不易分庫的業(yè)務(wù)應(yīng)用。

6.2設(shè)計要求

6.2.1設(shè)計原則

單體應(yīng)用的設(shè)計要點如下:

a)應(yīng)用統(tǒng)一上云原則。單體應(yīng)用部署在內(nèi)網(wǎng)或外網(wǎng),或同時部署。

b)數(shù)據(jù)統(tǒng)一存儲原則。數(shù)據(jù)庫選擇依據(jù)業(yè)務(wù)特性一般采用關(guān)系型數(shù)據(jù)庫。

6.2.2總體架構(gòu)

總體架構(gòu)的各層,如圖1所示。

a)接入門戶類型:企業(yè)門戶和移動門戶,實現(xiàn)用戶交互;

b)單體架構(gòu)的業(yè)務(wù)應(yīng)用基于云平臺實現(xiàn)相應(yīng)功能。

7

XX/TXXXXX—XXXX

圖1單體架構(gòu)的總體架構(gòu)

6.2.3系統(tǒng)架構(gòu)

系統(tǒng)架構(gòu)推薦采用分層架構(gòu)風格,宜上層調(diào)用下層,禁止下層調(diào)用上層,限制同層調(diào)用。包括展現(xiàn)

層、控制層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層和數(shù)據(jù)存儲層,各層功能,如圖2所示:

a)展現(xiàn)層:負責頁面交互,運行在客戶端瀏覽器中;

b)控制層:負責接收前端請求并分發(fā)給業(yè)務(wù)邏輯層,將處理結(jié)果反饋給前端應(yīng)用;

c)業(yè)務(wù)邏輯層:負責實現(xiàn)業(yè)務(wù)邏輯,業(yè)務(wù)邏輯可以進一步拆分為多層,如:服務(wù)層、接口層、業(yè)

務(wù)層、公共業(yè)務(wù)組件層、公共技術(shù)組件層等;

d)數(shù)據(jù)訪問層:負責實現(xiàn)數(shù)據(jù)訪問和持久化操作,包括對非結(jié)構(gòu)化數(shù)據(jù)的操作,如針對關(guān)系型數(shù)

據(jù)庫的SQL語句執(zhí)行的操作等;

e)數(shù)據(jù)存儲層:負責實現(xiàn)數(shù)據(jù)的永久存儲,根據(jù)業(yè)務(wù)需求選擇數(shù)據(jù)庫類型,一般推薦關(guān)系型數(shù)據(jù)

庫;負責實現(xiàn)數(shù)據(jù)庫端的存儲過程、表索引,不推薦實現(xiàn)觸發(fā)器。

其中架構(gòu)各層部署/運行設(shè)計如下:

a)控制層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層的部署/運行在應(yīng)用服務(wù)器端,實現(xiàn)業(yè)務(wù)邏輯;

b)數(shù)據(jù)存儲層的部署/運行在數(shù)據(jù)庫端,實現(xiàn)數(shù)據(jù)存儲和部分數(shù)據(jù)計算。

圖2單體架構(gòu)的系統(tǒng)架構(gòu)

6.2.4部署設(shè)計

部署設(shè)計主要包括如下方面:

a)邏輯部署單元設(shè)計。宜采用動靜分離設(shè)計;

b)物理部署節(jié)點設(shè)計。節(jié)點類型包括Web應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器等;

c)物理拓撲設(shè)計。適用于事務(wù)處理類應(yīng)用在云上環(huán)境部署場景,描述業(yè)務(wù)應(yīng)用系統(tǒng)物理部署拓撲

結(jié)構(gòu),以及邏輯部署單元在物理部署節(jié)點的分布。

邏輯部署

.1部署單元

部署單元要求如下:

a)可映射為一個或多個部署包;

b)部署單元大小宜小于500M;

c)部署單元類型可通過功能/模塊/組件進行劃分。

8

XX/TXXXXX—XXXX

.2部署節(jié)點

部署節(jié)點要求如下:

a)部署節(jié)點是部署單元所在的宿主系統(tǒng),可通過部署單元的需求劃分類型;

b)一個部署節(jié)點包含多個部署單元(部署包);

c)禁止單節(jié)點部署。

物理部署

物理部署拓撲包括內(nèi)網(wǎng)獨立部署、內(nèi)外網(wǎng)結(jié)合部署,具體要求如下:

a)內(nèi)網(wǎng)獨立部署(將應(yīng)用、數(shù)據(jù)庫等全部部署在內(nèi)網(wǎng));

b)內(nèi)外網(wǎng)結(jié)合部署(數(shù)據(jù)庫部署在內(nèi)網(wǎng),應(yīng)用部署在外網(wǎng);數(shù)據(jù)庫部署在內(nèi)網(wǎng),應(yīng)用同時部署在

內(nèi)網(wǎng)和外網(wǎng))。

6.3技術(shù)要求

技術(shù)要求除應(yīng)遵循5.1功能要求之外,還應(yīng)滿足附錄A;非功能要求除滿足通用5.2非功能要求的

要求之外,還應(yīng)滿足如下幾點:

a)部署對性能、可靠性要求高的大型系統(tǒng)時,推薦動靜分離部署,即Web服務(wù)器部署靜態(tài)資源,

應(yīng)用服務(wù)器部署動態(tài)資源;并發(fā)要求不高的應(yīng)用可動靜合并部署;

b)業(yè)務(wù)應(yīng)用系統(tǒng)禁止單節(jié)點部署、數(shù)據(jù)庫禁止單節(jié)點部署,所有的部署均需要考慮高可用、負載

均衡,以及內(nèi)存數(shù)據(jù)庫、緩存數(shù)據(jù)和高性能計算場景要求。

6.4安全要求

單體架構(gòu)的業(yè)務(wù)應(yīng)用應(yīng)遵循5.7安全要求。

7微服務(wù)架構(gòu)應(yīng)用和服務(wù)設(shè)計和技術(shù)要求

7.1適用場景

微服務(wù)架構(gòu)模式下,每個微服務(wù)體量較小,代碼易于開發(fā)、維護、編譯、部署;開發(fā)迭代周期短,

運行故障隔離性好,利于彈性伸縮、頻繁部署,持續(xù)交付能力強。因此,微服務(wù)適用于隨著業(yè)務(wù)發(fā)展業(yè)

務(wù),業(yè)務(wù)需求變動頻繁;代碼邏輯復雜、耦合度高、不易維護;編譯、部署、啟動、迭代周期要求高;

局部功能模塊有高并發(fā)、提供公共服務(wù)、故障隔離、快速頻繁迭代等特殊要求;模塊間數(shù)據(jù)庫表無緊密

耦合關(guān)系。

7.2設(shè)計要求

與傳統(tǒng)單體架構(gòu)應(yīng)用相比,微服務(wù)架構(gòu)應(yīng)用應(yīng)更多地關(guān)注業(yè)務(wù)和技術(shù)層面的設(shè)計。

7.2.1設(shè)計原則

設(shè)計拆分微服務(wù)的原則如下:

a)通信方式

1)無狀態(tài)通信原則。Restful通信風格與開發(fā)語言無關(guān),使用無狀態(tài)協(xié)議HTTP和JSON報文

序列化;

2)無狀態(tài)服務(wù)原則。把有狀態(tài)的業(yè)務(wù)服務(wù)改變?yōu)闊o狀態(tài)的計算類服務(wù)。

b)設(shè)計原則

9

XX/TXXXXX—XXXX

3)按不同服務(wù)功能的設(shè)計拆分原則;水平復制:運行多個實例時,使用集群+負載均衡模式;

數(shù)據(jù)分區(qū):按照用戶請求地區(qū)進行數(shù)據(jù)分區(qū),增加集群數(shù)量;拆分模式:基于不同的業(yè)務(wù)

設(shè)計拆分;

4)宜保持業(yè)務(wù)單一、高內(nèi)聚、松耦合:一個服務(wù)實現(xiàn)一個完整的獨立業(yè)務(wù)功能;

5)具有重用性特點的公共功能應(yīng)設(shè)計拆分為獨立微服務(wù);

6)訪問量較大、資源消耗較大、耗時較長的功能,應(yīng)設(shè)計拆分為獨立微服務(wù);

7)耦合性強、存在事務(wù)強一致性的業(yè)務(wù),不要拆分到多個微服務(wù)內(nèi),宜避免分布式事務(wù);

8)一組強關(guān)聯(lián)的數(shù)據(jù)對象的所有增刪改操作,不要設(shè)計拆分到多個微服務(wù)中;

9)需訪問全業(yè)務(wù)統(tǒng)一數(shù)據(jù)中心處理域數(shù)據(jù)庫的微服務(wù),宜為每個微服務(wù)設(shè)計獨立數(shù)據(jù)庫;

10)保持微服務(wù)架構(gòu)簡單性、避免分布式數(shù)據(jù)庫事務(wù)、減少非必要的聚合服務(wù)。

c)拆分原則

1)高負載服務(wù)拆分原則。根據(jù)已存在的業(yè)務(wù)服務(wù),拆分出高負載點,分析并發(fā)負載、長連接

負載、高計算負載、數(shù)據(jù)庫負載、文件操作負載等;

2)避免業(yè)務(wù)應(yīng)用過度拆分原則。避免業(yè)務(wù)應(yīng)用系統(tǒng)過度拆分為大量的微服務(wù);

3)業(yè)務(wù)完整、職責單一的應(yīng)用功能單元應(yīng)當拆分為獨立微服務(wù)。該單元建議為三級或三級以

下應(yīng)用功能,例如“物資管理(一級)->采購管理(二級)—>投標管理(三級)->標書上

傳(四級)”;

4)建議業(yè)務(wù)應(yīng)用包含的微服務(wù)數(shù)量是三級應(yīng)用功能的1/3倍到5倍(拆分過細維護困難、影

響性能;拆分過粗達不到解耦目的。考慮到實際應(yīng)用中個別模塊之間耦合度比較高或引起

分布式事務(wù),可以合并成一個微服務(wù),或某個模塊過大,可以拆分為多個微服務(wù))。

5)具有重用性特點的公共功能應(yīng)當拆分為獨立微服務(wù);

6)訪問量較大、資源消耗較大、耗時較長的功能,應(yīng)拆分為獨立微服務(wù);

7)一組強關(guān)聯(lián)的數(shù)據(jù)對象的所有增刪改操作,不要拆分到多個微服務(wù)中;

8)耦合性強、存在事務(wù)強一致性的業(yè)務(wù),不要拆分到多個微服務(wù)內(nèi),盡可能避免分布式事務(wù)。

d)開發(fā)原則

1)前后端分離原則。技術(shù)分離:前后端代碼分離,物理分離:部署方式;

2)采用面向接口的設(shè)計,需遵循接口穩(wěn)定性和向前兼容的原則;

3)接口定義推薦遵循“單一職責”原則,采用外觀模式,實現(xiàn)微服務(wù)對外接口和內(nèi)部邏輯組件

的解耦。

7.2.2總體架構(gòu)

總體架構(gòu)的各層功能,如圖3所示:

a)接入門戶類型:企業(yè)門戶和移動門戶,實現(xiàn)用戶交互;

b)微服務(wù)架構(gòu)的業(yè)務(wù)應(yīng)用基于云平臺實現(xiàn)相應(yīng)功能。

10

XX/TXXXXX—XXXX

圖3微服務(wù)架構(gòu)的總體架構(gòu)

7.2.3系統(tǒng)架構(gòu)

系統(tǒng)架構(gòu)設(shè)計宜采用分層架構(gòu)風格,微服務(wù)間訪問依賴不宜超過5層;微服務(wù)間禁止出現(xiàn)循環(huán)依賴。

分為微應(yīng)用層、微服務(wù)層、數(shù)據(jù)存儲層,各層功能如圖4所示:

a)展現(xiàn)層:瀏覽器提供微應(yīng)用訪問入口;

b)微應(yīng)用層:采用的技術(shù)框架決定了架構(gòu)模式;

c)微服務(wù)層:包括公共服務(wù)和業(yè)務(wù)處理服務(wù)。公共服務(wù)提供日志等公共服務(wù);業(yè)務(wù)處理服務(wù)處理

業(yè)務(wù)規(guī)則,訪問數(shù)據(jù)庫;

d)數(shù)據(jù)存儲層:負責實現(xiàn)數(shù)據(jù)的永久存儲,根據(jù)業(yè)務(wù)需求選擇數(shù)據(jù)庫類型,宜選擇關(guān)系型數(shù)據(jù)庫;

負責實現(xiàn)數(shù)據(jù)庫端的存儲過程、表索引,不宜選擇實現(xiàn)觸發(fā)器。

圖4微服務(wù)架構(gòu)的系統(tǒng)架構(gòu)

7.2.4部署設(shè)計

部署設(shè)計主要包括如下方面:

a)邏輯部署單元設(shè)計。每個部署單元宜包括一個到多個微服務(wù);

11

XX/TXXXXX—XXXX

b)物理部署節(jié)點設(shè)計。節(jié)點類型包括:微服務(wù)部署節(jié)點、數(shù)據(jù)庫部署節(jié)點;

c)發(fā)布設(shè)計。宜采用多版本共存的灰度發(fā)布方式。

邏輯部署

.1部署單元

部署單元要求如下:

a)每個部署單元包括一個或多個微服務(wù);

b)高負載服務(wù),宜單獨部署。

.2部署節(jié)點

微服務(wù)部署基于云平臺部署,包含微服務(wù)部署節(jié)點和數(shù)據(jù)庫部署節(jié)點。

物理部署

物理部署拓撲包括三類部署模式,具體要求如下:

a)內(nèi)網(wǎng)獨立部署(將應(yīng)用、數(shù)據(jù)庫等全部部署在內(nèi)網(wǎng));

b)外網(wǎng)獨立部署(數(shù)據(jù)庫、應(yīng)用全部部署在外網(wǎng));

c)內(nèi)外網(wǎng)同時部署(數(shù)據(jù)庫部署在內(nèi)網(wǎng),應(yīng)用部署在外網(wǎng);數(shù)據(jù)庫部署在內(nèi)網(wǎng),應(yīng)用分別部署在

內(nèi)網(wǎng)和外網(wǎng))。

7.3技術(shù)要求

技術(shù)要求除應(yīng)遵循5.1功能要求之外,還應(yīng)滿足附錄B;非功能要求除滿足通用5.2非功能要求

之外,還應(yīng)滿足如下幾點:

a)在承載業(yè)務(wù)應(yīng)用運行的服務(wù)器發(fā)生故障時,自動啟動新服務(wù)器,恢復故障服務(wù)器所有信息,保

障業(yè)務(wù)應(yīng)用不間斷運行的故障自愈時間;

f)每個部署單元包括一個到多個微服務(wù),高負載服務(wù)建議部署為單獨的部署單元。

7.4安全要求

微服務(wù)架構(gòu)的業(yè)務(wù)應(yīng)用應(yīng)遵循5.7安全要求。

8對外的公共服務(wù)的設(shè)計與技術(shù)要求

8.1設(shè)計要求

業(yè)務(wù)應(yīng)用系統(tǒng)的服務(wù)接口設(shè)計過程中要考慮到與PaaS應(yīng)用程序管理相關(guān)的PaaS服務(wù)提供者的服務(wù)

供應(yīng),PaaS服務(wù)消費者使用云平臺服務(wù)部署運行應(yīng)用程序以及PaaS協(xié)作者基于PaaS應(yīng)用程序管理的功

能提供第三方服務(wù)的場景的接口設(shè)計。

8.2技術(shù)要求

8.2.1單體架構(gòu)的服務(wù)

單體架構(gòu)的服務(wù)技術(shù)要求應(yīng)滿足GB/T29263和GB/T32430。

8.2.2微服務(wù)架構(gòu)的服務(wù)

12

XX/TXXXXX—XXXX

微服務(wù)架構(gòu)的服務(wù)技術(shù)要求應(yīng)遵循7.2.2微服務(wù)設(shè)計原則,主要闡述接口要求。

概述

參考GB/T36623和GB/T36610-2018,服務(wù)接口要求適用于服務(wù)和應(yīng)用的規(guī)劃、設(shè)計、建設(shè)、開發(fā)、

測試、使用和維護等相關(guān)過程,如圖5所示:

a)服務(wù)接口是一系列RESTful風格的API,用于云平臺環(huán)境中技術(shù)平臺組件之間、技術(shù)平臺組件

與業(yè)務(wù)應(yīng)用系統(tǒng)之間、業(yè)務(wù)應(yīng)用系統(tǒng)與業(yè)務(wù)應(yīng)用系統(tǒng)之間的互相操作和調(diào)用;

b)對于業(yè)務(wù)應(yīng)用系統(tǒng)和云平臺組件的私有用途的API不做要求;

c)服務(wù)消費者包括最終用戶或者其它系統(tǒng)實例;

d)服務(wù)提供者(業(yè)務(wù)應(yīng)用系統(tǒng)和云平臺組件)基于服務(wù)接口要求通過HTTPRESTful接口為服務(wù)

消費者提供服務(wù);

e)REST(RepresentationalStateTransfer)從資源的角度來觀察整個IT系統(tǒng),分布在各處

的資源位置和名稱由URI指定,對資源的操作包括獲取、創(chuàng)建、修改和刪除資源,這些操作對

應(yīng)HTTP協(xié)議提供的GET、POST、PUT和DELETE方法;

f)RESTfulWeb服務(wù)(也稱為RESTfulWebAPI)是一個使用HTTP并遵循REST原則的Web

服務(wù)。它從以下三個方面定義資源的管理:

1)URI資源位置,比如:/resources/;

2)Web服務(wù)接受與返回的數(shù)據(jù)類型,比如:JSON,XML等;

3)Web服務(wù)在該資源上所支持的一系列請求方法(比如:GET、HEAD、POST、PUT、PATCH

或DELETE)。

圖5服務(wù)接口在服務(wù)提供者架構(gòu)中的定位

本部分描述的服務(wù)接口要求建立了信息系統(tǒng)IT資源層次模型,參考GB/T36325,具體如下:

a)以遵循信息化架構(gòu)中確定的業(yè)務(wù)應(yīng)用系統(tǒng)名稱實現(xiàn)對資源標識名稱的標準化;

b)制定了RESTfulWebServices設(shè)計原則;

c)并規(guī)定了業(yè)務(wù)應(yīng)用系統(tǒng)為使用云平臺提供的故障自愈等能力需要提供的公共接口;

d)為云服務(wù)提供者和云服務(wù)客戶(簡稱:雙方)建立云服務(wù)級別協(xié)議提供指導;

e)為客戶對提供者交付的云服務(wù)進行考評提供參考依據(jù);

f)為第三方進行云服務(wù)級別協(xié)議評估提供參考依據(jù)。

IT系統(tǒng)(資源)層次模型

RESTfulWebAPI采用面向資源的架構(gòu)。信息系統(tǒng)資源層次模型共分為三層,如圖6所示:

a)下面兩層級可根據(jù)管理需求進行擴展;

b)在資源層次模型的第三層中,具體的技術(shù)平臺組件和應(yīng)用系統(tǒng)資源標識均需采用信息化架構(gòu)中

定義的組件名稱;

13

XX/TXXXXX—XXXX

c)技術(shù)平臺組件包括云平臺中的IaaS和PaaS的各組件;

d)業(yè)務(wù)應(yīng)用系統(tǒng)包括電力行業(yè)各業(yè)務(wù)域中的應(yīng)用系統(tǒng),這些組件的命名均需采用企業(yè)信息架構(gòu)模

型中定義的組件名稱;

e)技術(shù)平臺組件和業(yè)務(wù)應(yīng)用系統(tǒng)包含的更詳細的資源信息由它們自行定義。

圖6資源層次模型

RESTful服務(wù)設(shè)計原則

.1資源標識與版本管理

一個資源應(yīng)具有一個或多個標識,采用URI作為資源標識。為保證URI的“可尋址性”和“可讀性”,采

用路徑變量來表達資源層次結(jié)構(gòu),URI的目錄結(jié)構(gòu)約定如下:

{協(xié)議}//{域名}/{版本}/{請求操作}

a)協(xié)議:服務(wù)接口與用戶請求之間的通信協(xié)議,宜使用HTTPS協(xié)議;

b)域名:采用8.2IT系統(tǒng)(資源)層次模型中約定的系統(tǒng)的域名,例如:;

c)版本:API的版本信息,例如:/v1.0.0;

d)請求操作:代表API服務(wù)的業(yè)務(wù)操作名稱,采用動名詞組合的方式,具體內(nèi)容由各業(yè)務(wù)應(yīng)用系

統(tǒng)或云平臺技術(shù)組件自行確定。

e)例如創(chuàng)建流程:/v1.0.0/createProcess。

.2資源數(shù)據(jù)格式約定

資源請求參數(shù)格式與服務(wù)器返回的數(shù)據(jù)格式,應(yīng)使用標準的JSON格式。

.3資源請求方式約定

HTTP請求方法的具體含義,見表2:

表2HTTP請求方法

狀態(tài)碼含義

14

XX/TXXXXX—XXXX

HEAD用于數(shù)據(jù)類(如結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù))請求的元數(shù)據(jù)獲取

GET用于查詢操作,不應(yīng)產(chǎn)生數(shù)據(jù)的修改或變更

PUT用于新增操作

PATCH用于更新操作

DELETE用于刪除操作

POST

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論