云計算PaaS平臺總體設計說明書_第1頁
云計算PaaS平臺總體設計說明書_第2頁
云計算PaaS平臺總體設計說明書_第3頁
云計算PaaS平臺總體設計說明書_第4頁
云計算PaaS平臺總體設計說明書_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、PAGE 云計算PaaS平臺 總體設計說明書第 PAGE I 頁 共 NUMPAGES 17 頁云計算PaaS平臺總體設計說明書目 錄 TOC o 1-4 h z u HYPERLINK l _Toc535245518 1.引言 PAGEREF _Toc535245518 h 4 HYPERLINK l _Toc535245519 1.1目的 PAGEREF _Toc535245519 h 4 HYPERLINK l _Toc535245520 1.2背景 PAGEREF _Toc535245520 h 4 HYPERLINK l _Toc535245521 1.3術語和縮略語 PAGEREF

2、 _Toc535245521 h 4 HYPERLINK l _Toc535245522 1.4參考資料 PAGEREF _Toc535245522 h 4 HYPERLINK l _Toc535245523 1.5約定 PAGEREF _Toc535245523 h 4 HYPERLINK l _Toc535245524 2.概述 PAGEREF _Toc535245524 h 5 HYPERLINK l _Toc535245525 2.1.產(chǎn)品描述 PAGEREF _Toc535245525 h 5 HYPERLINK l _Toc535245526 2.2.假設與約束 PAGEREF _

3、Toc535245526 h 5 HYPERLINK l _Toc535245527 2.3.環(huán)境、工具及相關約定 PAGEREF _Toc535245527 h 5 HYPERLINK l _Toc535245528 2.3.1.開發(fā)環(huán)境 PAGEREF _Toc535245528 h 5 HYPERLINK l _Toc535245529 2.3.2.運行環(huán)境 PAGEREF _Toc535245529 h 5 HYPERLINK l _Toc535245530 3.總體結構 PAGEREF _Toc535245530 h 7 HYPERLINK l _Toc535245531 3.1.總

4、體設計思路 PAGEREF _Toc535245531 h 7 HYPERLINK l _Toc535245532 3.2.系統(tǒng)邏輯圖 PAGEREF _Toc535245532 h 7 HYPERLINK l _Toc535245533 3.3.子系統(tǒng)邏輯圖 PAGEREF _Toc535245533 h 8 HYPERLINK l _Toc535245534 3.4.生產(chǎn)平臺部署物理架構圖 PAGEREF _Toc535245534 h 10 HYPERLINK l _Toc535245535 3.5.開發(fā)測試平臺部署物理架構圖 PAGEREF _Toc535245535 h 11 HYP

5、ERLINK l _Toc535245536 3.6.生產(chǎn)環(huán)境的災備部署架構圖 PAGEREF _Toc535245536 h 12 HYPERLINK l _Toc535245537 3.7.子系統(tǒng)設計 PAGEREF _Toc535245537 h 13 HYPERLINK l _Toc535245538 3.7.1.平臺運行時設計 PAGEREF _Toc535245538 h 14 HYPERLINK l _Toc535245539 3.7.2.控制臺 PAGEREF _Toc535245539 h 14 HYPERLINK l _Toc535245540 3.7.3.平臺定時伸縮 P

6、AGEREF _Toc535245540 h 15 HYPERLINK l _Toc535245541 3.7.4.用戶管理 PAGEREF _Toc535245541 h 16 HYPERLINK l _Toc535245542 3.7.5.租戶管理 PAGEREF _Toc535245542 h 17 HYPERLINK l _Toc535245543 3.7.6.提醒服務 PAGEREF _Toc535245543 h 18 HYPERLINK l _Toc535245544 3.7.7.服務監(jiān)控 PAGEREF _Toc535245544 h 18 HYPERLINK l _Toc53

7、5245545 3.7.8.平臺監(jiān)控 PAGEREF _Toc535245545 h 19 HYPERLINK l _Toc535245546 3.7.9.審計子系統(tǒng)架構設計 PAGEREF _Toc535245546 h 20 HYPERLINK l _Toc535245547 3.7.10.IaaS適配架構設計 PAGEREF _Toc535245547 h 20 HYPERLINK l _Toc535245548 3.7.11.應用彈性伸縮架構設計 PAGEREF _Toc535245548 h 21 HYPERLINK l _Toc535245549 3.7.12.日志處理架構設計 P

8、AGEREF _Toc535245549 h 22 HYPERLINK l _Toc535245550 3.7.13.MySQL Service Broker設計 PAGEREF _Toc535245550 h 23 HYPERLINK l _Toc535245551 3.7.14.Redis 服務設計 PAGEREF _Toc535245551 h 25 HYPERLINK l _Toc535245552 3.7.15.RabbitMQ 服務設計 PAGEREF _Toc535245552 h 25 HYPERLINK l _Toc535245553 3.7.16.Jenkins 服務設計

9、PAGEREF _Toc535245553 h 26 HYPERLINK l _Toc535245554 3.8.業(yè)務場景/流程設計 PAGEREF _Toc535245554 h 28 HYPERLINK l _Toc535245555 3.8.1.業(yè)務場景/流程清單 PAGEREF _Toc535245555 h 29 HYPERLINK l _Toc535245556 4.數(shù)據(jù)標準使用及數(shù)據(jù)結構設計 PAGEREF _Toc535245556 h 29 HYPERLINK l _Toc535245557 4.1.使用的信息項清單 PAGEREF _Toc535245557 h 29 HY

10、PERLINK l _Toc535245558 4.2.數(shù)據(jù)結構設計 PAGEREF _Toc535245558 h 29 HYPERLINK l _Toc535245559 5.接口設計 PAGEREF _Toc535245559 h 30 HYPERLINK l _Toc535245560 5.1.系統(tǒng)外部接口 PAGEREF _Toc535245560 h 30 HYPERLINK l _Toc535245561 5.2.子系統(tǒng)間接口 PAGEREF _Toc535245561 h 30 HYPERLINK l _Toc535245562 6.復用設計 PAGEREF _Toc53524

11、5562 h 31 HYPERLINK l _Toc535245563 6.1.使用的復用資源 PAGEREF _Toc535245563 h 31 HYPERLINK l _Toc535245564 6.2.創(chuàng)建的復用資源 PAGEREF _Toc535245564 h 31 HYPERLINK l _Toc535245565 7.非功能性的設計 PAGEREF _Toc535245565 h 31 HYPERLINK l _Toc535245566 7.1.xxx指標設計 PAGEREF _Toc535245566 h 31 HYPERLINK l _Toc535245567 7.1.1.

12、設計思路 PAGEREF _Toc535245567 h 32 HYPERLINK l _Toc535245568 7.1.2.實現(xiàn)要點 PAGEREF _Toc535245568 h 32 HYPERLINK l _Toc535245569 7.1.3.對部署方案的約束 PAGEREF _Toc535245569 h 32 HYPERLINK l _Toc535245570 7.2.xxx指標設計 PAGEREF _Toc535245570 h 32 HYPERLINK l _Toc535245571 7.2.1.設計思路 PAGEREF _Toc535245571 h 32 HYPERLI

13、NK l _Toc535245572 7.2.2.實現(xiàn)要點 PAGEREF _Toc535245572 h 32 HYPERLINK l _Toc535245573 7.2.3.對部署方案的約束 PAGEREF _Toc535245573 h 32 HYPERLINK l _Toc535245574 8.詳細設計文檔規(guī)劃 PAGEREF _Toc535245574 h 33引言目的 MACROBUTTON TableDeleteTable 雙擊此處添加本文檔的目的 本文檔對PaaS平臺進行總體架構設計,目標用戶為設計人員、開發(fā)人員、測試人員、項目管理人員。背景 MACROBUTTON Tabl

14、eDeleteTable 雙擊此處添加本文檔的背景 目前銀行IT并沒有PaaS平臺,應用的開發(fā)、測試、上線、試運行都是按照傳統(tǒng)的金融IT發(fā)布流程進行。對于以需要快速響應、快速發(fā)布、迭代更新為特征的互聯(lián)網(wǎng)應用來說,傳統(tǒng)IT已經(jīng)難以滿足這種快速發(fā)布的需要,主要表現(xiàn)在:環(huán)境準備時間過長: 產(chǎn)品運行所需要的硬件、軟件環(huán)境往往需要在上線前幾個月就要申請、準備,在產(chǎn)品上線前就需要規(guī)劃出產(chǎn)品今后可能用到的資源數(shù)量;無彈性擴展,擴容難:產(chǎn)品投產(chǎn)后很難再變更應用的部署規(guī)模及資源配給,難以應付突發(fā)流量,難以應對日益增長的數(shù)據(jù)量; 測試環(huán)境與生產(chǎn)環(huán)境差異較大:應用的測試環(huán)境和生產(chǎn)環(huán)境存在較大差異(例如生產(chǎn)環(huán)境是集群

15、部署,而測試環(huán)境則只是單節(jié)點部署),測試案例并不能完全模擬生產(chǎn)環(huán)境;應用的配置信息在不同的環(huán)境需要手工修改(例如修改配置參數(shù)),增加了出錯幾率;上線過程復雜:上線過程除了開發(fā)人員外,往往需要運維人員、DBA等各個環(huán)節(jié)的人員共同參與,或修改配置、或部署應用、或執(zhí)行數(shù)據(jù)庫腳本,增加了上線人力成本的投入,降低了上線投產(chǎn)的效率; 建設周期長:部署周期長,軟件定制開發(fā)慢,與外圍系統(tǒng)接口復雜,實施推廣需要大量的實施人力完成。 通過PaaS云的建設解決以上問題。術語和縮略語 MACROBUTTON TableDeleteTable 雙擊此處添加本文檔的術語和縮略語 PaaS: Platform as a S

16、ervice,平臺服務,把應用平臺作為服務提供PCF: Pivotal Cloud Foundry Pivotal的PaaS云平臺 參考資料 MACROBUTTON TableDeleteTable 雙擊此處添加本文檔所引用的參考資料 應完整列出本文檔所參考或引用的資料,可包括項目其他文檔。標識出每個文件的名稱、編號(如果有)、日期、出版組織、獲取來源,可以通過在此處定義、引用本文檔的附錄、或者引用其它文件的方式來提供。約定 MACROBUTTON TableDeleteTable 雙擊此處添加本文檔的約定 說明在編寫或閱讀本文檔時的一些約定,如需求編號的編碼規(guī)則、圖例規(guī)則等,可以通過在此處定

17、義、引用本文檔的附錄、或者引用其它文件的方式來提供。概述 MACROBUTTON TableDeleteTable 雙擊此處添加 銀行PaaS平臺建設,為應用提供統(tǒng)一的云平臺,大量實現(xiàn)應用平臺相關的自動化和可用性進一步提高,比如灰度發(fā)布、開發(fā)部門的持續(xù)集成(CI)和DevOps(開發(fā)運維)、應用監(jiān)控、及進一步提升應用的可用性。這些功能大多屬于PaaS功能,通過PaaS平臺的建設,并且逐步把應用遷移到PaaS平臺,可以進一步簡化運維,特別是應用部署的標準化和簡化;也可以進一步提高硬件資源池的使用效率,通過PaaS云的自動彈性伸縮、多重的應用故障自動恢復、平臺的高可用性區(qū)等進一步提高平臺的高可用性

18、,實現(xiàn)應用的在線升級包括灰度發(fā)布等,并通過平臺來實現(xiàn)應用日志的集中管理。對開發(fā)部門來說,通過平臺支持的敏捷開發(fā)、CI和DevOps來進一步提高開發(fā)效率,縮短從需求到IT實現(xiàn)的周期。產(chǎn)品描述 MACROBUTTON TableDeleteTable 雙擊此處添加 PaaS平臺構建了開發(fā)、測試、生產(chǎn)運行環(huán)境。通過BuildPack構建包提供了銀行主要的幾種應用平臺,包括dk1.6,jdk1.7,jdk1.8 (分OpenJDK和Oracle JDK兩版本)、IBM JDK1.6、JBoss EAP6.2、Tomcat7、Tomcat8等。提供的服務包括mySQL、RabbitMQ、Redis、Je

19、nkins等。除了平臺和服務,還提供了統(tǒng)一的日志聚合和日志管理,應用彈性伸縮、平臺定時伸縮、應用監(jiān)控、服務監(jiān)控、平臺監(jiān)控、審計等功能。假設與約束 MACROBUTTON TableDeleteTable 雙擊此處添加 列出可能影響設計的假設條件和約束條件。這里不應包含人力資源、時間等項目管理類的約束條件。此節(jié)需要具體包含什么內(nèi)容尚不明確,須在后續(xù)試點項目重點跟進。環(huán)境、工具及相關約定開發(fā)環(huán)境 MACROBUTTON TableDeleteTable 雙擊此處添加 dk1.6,jdk1.7,jdk1.8 (分OpenJDK和Oracle JDK兩版本)以及IBM JDK1.6的Buildpack

20、;定制以JBoss EAP6.2為應用服務器的Buildpack; 定制以Tomcat7、Tomcat8為應。Tomcat8等。提供的服務包括mySQL、RabbitMQ、Redis、Jenkins等。除了平臺和服務,還提供了統(tǒng)一的日志聚合和日志管理,應用彈性伸縮、平臺定時伸縮、應用監(jiān)控、服務監(jiān)控、平臺監(jiān)控、審計等功能。運行環(huán)境 MACROBUTTON TableDeleteTable 雙擊此處添加 參照可行性分析報告,說明運行環(huán)境的軟硬件要求。例如數(shù)據(jù)庫服務器的配置要求、應用服務器的配置要求等。如果該系統(tǒng)對硬件敏感性高,則必須對硬件要求(如、內(nèi)存、存儲、帶寬等)進行詳細的說明。Tomcat8

21、等。提供的服務包括mySQL、RabbitMQ、Redis、Jenkins等。除了平臺和服務,還提供了統(tǒng)一的日志聚合和日志管理,應用彈性伸縮、平臺定時伸縮、應用監(jiān)控、服務監(jiān)控、平臺監(jiān)控、審計等功能。總體結構 MACROBUTTON TableDeleteTable 雙擊此處添加 本章內(nèi)容須在后續(xù)試點項目重點跟進。總體設計思路總體設計思路是以PCF提供的產(chǎn)品功能為基礎,加上一定的定制和開發(fā)來實現(xiàn)所有的需求功能,同時,考慮主要的非功能要求,比如高可用性、災備、性能、安全性等。在PCF現(xiàn)有的產(chǎn)品特性基礎上,定制實現(xiàn)非功能性需求。系統(tǒng)邏輯圖 MACROBUTTON TableDeleteTable 雙

22、擊此處添加 根據(jù)IT系統(tǒng)架構圖編制標準,繪制系統(tǒng)邏輯圖,說明本軟件產(chǎn)品和其它軟件產(chǎn)品的關聯(lián)關系。如下圖為銀行PaaS雙活架構圖,在深圳和上海各部署一套PCF,通過一些雙活的配置,實現(xiàn)兩地PCF的雙活。最前端是一個DNS實現(xiàn)兩個PCF的域名解析,分別把PaaS應用訪問域名(*假定是此域名)、深圳PaaS系統(tǒng)域名(*)和上海PaaS系統(tǒng)域名(*)統(tǒng)一泛域名解析到一個F5的負載均衡器,而F5把深圳PaaS系統(tǒng)域名(*)請求轉發(fā)到深圳PCF,把上海PaaS系統(tǒng)域名(*)統(tǒng)一泛域名請求轉發(fā)到上海PCF上。而應用域名*請求則配置轉發(fā)策略,不同的應用可以配置不同的轉發(fā)策略,比如90%的請求轉發(fā)到深圳PCF,

23、10%的請求轉發(fā)到上海的PCF,要求轉化的時候配置Session親和性,確保同一個Session只會轉發(fā)到一個PCF。每個PCF都會需要配置自己的系統(tǒng)mySQL HA,可以選用PCF自帶的mySQL服務,也可以采用外部的DBaaS數(shù)據(jù)庫。而對PCF定制的應用,則主要訪問銀行DBaaS數(shù)據(jù)庫。除了采用F5作為請求分發(fā),也可以采用HA Proxy做請求分發(fā)。如下圖采用HA Proxy做請求分發(fā)的邏輯架構圖。配置兩臺高配的X86虛機做HA Proxy服務器,建議每臺HAProxy服務器配置為8G內(nèi)存,12vCPU。每臺HA Proxy上安裝HA Proxy和KeepAlive軟件。兩臺HA Prox

24、y配置出虛擬IP(VIP),在DNS中把應用訪問域名、深圳PaaS系統(tǒng)域名和上海PaaS系統(tǒng)域名的都解析到VIP。通過對HA Proxy的負載算法進行配置(URI配分發(fā)權重),可以對不同的應用分發(fā)不同的流量到深圳PCF集群或是上海PCF集群。根據(jù)對目前銀行的F5使用情況的了解,主要是5000S型,可以支持每秒新建并發(fā)連接35萬,最大的在線長連接為2400萬。而采用HA Proxy的服務器,性能無法和F5同等,因為F5有專用的硬件加速芯片,根據(jù)一些測試經(jīng)驗,在高配的X86服務器上,記過優(yōu)化,HA Proxy的最大在線長連接可能可以達到千萬。本方案建議采用F5作為請求分發(fā)均衡器。 子系統(tǒng)邏輯圖如下

25、為模塊邏輯圖: MACROBUTTON TableDeleteTable 雙擊此處添加 根據(jù)IT系統(tǒng)架構圖編制標準,繪制各子系統(tǒng)的模塊邏輯圖,說明各子系統(tǒng)的模塊劃分及模塊間關系。列出所有模塊,依次說明各模塊的功能以及該模塊與其他模塊間的協(xié)作方式。如:交易處理模塊負責接受渠道提交的投保、撤單等業(yè)務請求,通過網(wǎng)關對接模塊最終發(fā)送到保險公司系統(tǒng),所記錄的交易記錄為清算等其它模塊提供數(shù)據(jù)基礎。如下圖,為基于PCF的銀行PaaS系統(tǒng)邏輯架構圖,包括銀行用到的PCF內(nèi)置模塊,定制模塊,以及和外部模塊的接口。這是對PCF現(xiàn)有模塊的裁剪,有些需要定制,有些可以直接用,有些需要和銀行的系統(tǒng)集成,如和用戶目錄、日

26、志集中處理等模塊的集成。根據(jù)銀行的需求在對PCF模塊進行裁剪后,需要定制的子系統(tǒng)分為如下三大群,分別是應用運行時、服務和PCF自身功能的定制:應用運行時,為應用提供運行環(huán)境,包括:Tomcat 7/8JDK 1.6(OpenJDK,IBM JDK,Oracle JDK)JDK 1.7(OpenJDK, Oracle JDK)JDK 1.8(OpenJDK, Oracle JDK)JBOSS EAP V6.2PCF的應用運行時基于PCF的應用平臺構建規(guī)范BuildPack的規(guī)范進行構建。服務,基于PCF自身提供或是定制的服務,為應用的運行提供服務支撐:MySQLRedisRabbitMQJenk

27、insPCF提供了Service Broker API V2,通過對這些Service Broker的API來實現(xiàn)每個服務,同時通過PCF BOSH API來實現(xiàn)服務虛機的部署。PCF平臺自身定制功能,針對銀行的需求,對PCF平臺進行定制,包括:提醒服務服務監(jiān)控平臺監(jiān)控審計租戶管理用戶管理平臺定時伸縮應用彈性伸縮集中日志管理控制臺IaaS適配PCF的自身定制功能是在PCF現(xiàn)有提供的功能基礎上,通過PCF提供的API進行定制,實現(xiàn)和需求相結合的功能。生產(chǎn)平臺部署物理架構圖 MACROBUTTON TableDeleteTable 雙擊此處添加 根據(jù)IT系統(tǒng)架構圖編制標準,繪制應用部署圖,說明程序

28、實體和數(shù)據(jù)實體的部署情況,以及各部署節(jié)點的軟硬件環(huán)境要求。物理架構設計原則如下:3系統(tǒng)部署分為生產(chǎn)環(huán)境和開發(fā)測試環(huán)境。如下為物理部署邏輯架構圖:。PaaS在深圳和上海分別部署一套PCF集群,深圳5臺X86服務器配置為一個PCF集群,一個集群又分兩個高可用性區(qū),3臺X86為組成一個vSphere集群1,做成一個PCF的高可用性區(qū)A,另外2臺X86為組成一個vSphere集群2,做成一個PCF的高可用性區(qū)B。通過配置兩個高可用性區(qū), PCF的部署自動分布在兩個高可用性區(qū),無論是PCF部件、還是應用實例還是服務,都分布在兩個高可用性區(qū),確保沒有單點故障根據(jù)邏輯架構設計,物理資源分為三大池,一個是應用

29、資源池,二是PCF部件池,第三的服務池。PCF部件池部署PCF的各個部件,每個部件都做HA或是集群,確保每個部件有2份以上,考慮到未來并發(fā)訪問量會比較大,要至少配5個Router部件。應用資源池為DEA池,作為PaaS應用容器,根據(jù)資源的容量計算每個DEA的CPU、內(nèi)存、磁盤額度,至少運行16個以上DEA。服務資源池部署Redis、RabbitMQ、mySQL等服務,所有的服務都支持HA或是集群,確保高可用性。通過資源池的方式提供資源共享程度,提高資源利用率。通過資源分池,提高安全隔離性開發(fā)測試平臺部署物理架構圖 MACROBUTTON TableDeleteTable 雙擊此處添加 根據(jù)IT

30、系統(tǒng)架構圖編制標準,繪制應用部署圖,說明程序實體和數(shù)據(jù)實體的部署情況,以及各部署節(jié)點的軟硬件環(huán)境要求。如下為開發(fā)測試環(huán)境的物理部署邏輯架構圖:。和生產(chǎn)平臺的部署不一樣,開發(fā)測試環(huán)境只在深圳部署一套PCF,但是一套PCF也做兩個高可用性區(qū),5臺X86服務器做成一個vSphere集群,同時配置為一個PCF高可用性區(qū)。和生產(chǎn)平臺的部署不一樣,開發(fā)測試環(huán)境需要配置更多的存儲,因為不同的部門都會來使用開發(fā)測試環(huán)境,每個部門都會部署開發(fā)測試的應用。另外,因為以管理的方式訪問PCF的更多,需要多配置PCF的Cloud Controller實例數(shù),實現(xiàn)應用生命周期管理的大并發(fā)量訪問。DEA在測試環(huán)境也需要配置

31、的更多,可以容納更多的應用實例。開發(fā)測試環(huán)境的服務池也需要配置的更大,因訪問為不同的租戶要PCF服務池,要為不同的租戶配置服務實例。和生產(chǎn)環(huán)境不一樣,在測試環(huán)境有Jenkins服務,而在生產(chǎn)平臺沒有Jenkins服務。 生產(chǎn)環(huán)境的災備部署架構圖 MACROBUTTON TableDeleteTable 雙擊此處添加 根據(jù)IT系統(tǒng)架構圖編制標準,繪制應用部署圖,說明程序實體和數(shù)據(jù)實體的部署情況,以及各部署節(jié)點的軟硬件環(huán)境要求。如下為生產(chǎn)環(huán)境的災備部署架構圖:。在深圳和上海分別部署一套PCF,深圳的生產(chǎn)部署環(huán)境如3.5章節(jié),上海的環(huán)境和深圳部署架構一樣。設置不同的域名,預留不同的IP地址池。應用部

32、署是,在應用部署的Web Console中分別往深圳PCF和上海PCF部署應用,等兩地的應用均部署成功再返回。配置Service和Service Broker的時候兩邊一樣配置,生產(chǎn)一樣的Service名和Service Broker的Service Plan。用戶管理統(tǒng)一鏈接到銀行的AD上。MySQL Service使用外部的銀行MySQL as a Service,做一個Broker即可。Redis服務兩邊不復制。RabbitMQ通過腳本實現(xiàn)兩邊的元數(shù)據(jù)同步。平臺監(jiān)控采用Zabbix,在監(jiān)控數(shù)據(jù)采集的時候分別往上海和深圳兩個Zabbix服務器發(fā)一份。PCF采用兩個內(nèi)部mySQL數(shù)據(jù)庫PCF

33、的系統(tǒng)數(shù)據(jù)庫,由于mySQL有HA功能,可以避免數(shù)據(jù)庫的單點故障。深圳和上海兩個PCF分別用各自的內(nèi)置mySQL HA集群。子系統(tǒng)設計 MACROBUTTON TableDeleteTable 雙擊此處添加 根據(jù)銀行總行信息技術部IT系統(tǒng)清單管理規(guī)范),定義出子系統(tǒng),說明本軟件產(chǎn)品和其它軟件產(chǎn)品的關聯(lián)關系。子系統(tǒng)清單子系統(tǒng)編號子系統(tǒng)名稱配置系統(tǒng)的單元名稱(可選)關聯(lián)系統(tǒng)編號/子系統(tǒng)編號關聯(lián)關系的描述PASS.01平臺運行時PASS.02控制臺PASS.01控制臺應用部署在平臺運行時PASS.03平臺定時伸縮PASS.01平臺定時伸縮應用部署在平臺運行時PASS.04用戶管理PASS.05租戶管

34、理PASS.06提醒服務PASS.07服務監(jiān)控PASS.08平臺監(jiān)控PASS.09審計PASS.10IaaS適配PASS.11應用彈性伸縮PASS.12集中日志管理PASS.13MySQL服務BrokerPASS.14Redis服務PASS.15RabbitMQ服務PASS.16Jenkins服務平臺運行時設計應用運行時,為應用提供運行環(huán)境,包括以下運行時:Tomcat 7/8JDK 1.6(OpenJDK,IBM JDK,Oracle JDK)JDK 1.7(OpenJDK, Oracle JDK)JDK 1.8(OpenJDK, Oracle JDK)JBOSS EAP V6.2以上平臺運

35、行時均是通過PCF的BuildPack來實現(xiàn)的,而PCF的BuildPack有相應的規(guī)范,根據(jù)規(guī)范即可實現(xiàn)相應的Buildpack。buildpack是工作在CloudFoundry這個大框架下的,尊從一些規(guī)范,規(guī)范要求buildpack至少含有一個bin目錄,bin目錄下有三個文件,文件名固定,分別是:detect # 這個文件的作用是偵測你的項目,比如是個Java項目 or php項目,用的什么Runtime和Framework之類的compile # 這是buildpack的核心文件,一般作用就是去拉取相應的Runtime(e.g. python2.7/ruby1.9.3)下來,做一下配

36、置放到指定位置,拉取相應的Framework(e.g. Flask/Django)下來,做一下配置,放到指定位置release # 這個文件最終要求輸出一個yaml,來描述如何啟動app之類的三個腳本由Cloudfoundry順次執(zhí)行。根據(jù)Buildpack的規(guī)范,我們可以從OpenJDK/Oracle JDK/IBM JDK等生產(chǎn)相應的Buildpack??刂婆_控制臺是部署在PCF上的一個應用,供不同的角色登錄使用,如管理員登錄到控制臺進行系統(tǒng)管理、設定等,租戶管理員登錄控制臺設置權限、分配資源,普通用戶登錄控制臺部署應用、監(jiān)控應用、綁定服務、管理應用等??刂婆_分別在深圳和上海兩個PCF上部

37、署,訪問同一個DBaaS數(shù)據(jù)庫。平常只訪問深圳PCF上部署的console應用,在Console應用中如果有對PCF的操作,會通過CF SDK分別訪問深圳PCF和上海PCF,使得在兩邊都有操作,比如通過console部署應用或是綁定服務,console會控制分別在深圳PCF上和上海PCF上部署同一應用,綁定同一服務名,雖然深圳的服務和上海的服務名字相同,但是各自運行在各自的PCF上。雖然角色不一樣,但是Console是一個獨立的應用,部署在PCF中,如下為控制臺的技術架構??刂婆_開發(fā)為一個war包應用,部署在PCF DEA,作為PCF的一個應用??刂婆_應用分為3大模塊,一個是GUI,也即Web

38、界面,符合招呼Web風格的界面,主要是基于jQuery界面控件和JavaScript實現(xiàn)。第二是基于Spring MVC的業(yè)務邏輯模塊,界面各個業(yè)務功能的Java實現(xiàn),其中部分業(yè)務會訪問數(shù)據(jù),這部分還包括審計模塊,詳見審計架構設計。第三是把控制臺要用到的CF API封裝為一個CF SDK,直接提供java接口供MVC業(yè)務邏輯實現(xiàn)部分實現(xiàn),CF SDK調用PCF提供的標準的Restful的API。數(shù)據(jù)庫采用銀行提供的DBaas數(shù)據(jù)庫服務。由于銀行現(xiàn)有基于AD的用戶目錄,一方面PCF可以配置和AD的SSO,也即AD的用戶可以登錄到PCF,但是登錄到PCF以后,還需要選擇用戶在什么組織架構,用戶在A

39、D的組織架構和在PCF的組織架構的映射關系可以保存在mySQL數(shù)據(jù)庫中,用戶第一次登錄PCF的時候要選擇相應的PCF組織架構。而在MVC的業(yè)務邏輯實現(xiàn)部分,也可以實現(xiàn)和AD的SSO,這樣用戶在現(xiàn)有的應用環(huán)境中登錄以后可以直接進入Console。平臺定時伸縮平臺定時是部署在Ops上的一個應用,也即根據(jù)Ops安裝包規(guī)范開發(fā)的的一個Ruby程序,由管理員登錄使用。平臺定時伸縮Ruby應用分為兩大模塊,一個是設置部分,包括配置定時伸縮的界面,如伸縮起始結束時間,伸縮多少虛機。另外就是伸縮的實現(xiàn),通過調用Ops提供的API把伸縮的虛機配置發(fā)送給Ops,同時調用BOSH API,通過BOSH API來實現(xiàn)

40、虛機的增加和減少,從而實現(xiàn)預定的平臺伸縮。程序包還包括一個定時器,根據(jù)預定的時間定時調用伸縮的BOSH API和Ops API。另外,平臺定時伸縮還需要配置一個數(shù)據(jù)庫服務,采用PCF內(nèi)置的mySQL數(shù)據(jù)庫服務,伸縮策略、伸縮時間、伸縮記錄等均需要寫如數(shù)據(jù)庫。用戶管理用戶管理子系統(tǒng)技術架構和控制臺類似,也是部署在PCF上的一個應用,主要供管理員登錄到控制臺進行用戶管理。用戶管理分為兩大邏輯模塊,一個是和AD域的集成,一個是非AD用戶管理,包括用戶創(chuàng)建、停用、刪除、權限分配等。由于銀行現(xiàn)有基于AD的用戶目錄,一方面PCF可以配置和AD的SSO,也即AD的用戶可以登錄到PCF,但是登錄到PCF以后,

41、還需要選擇用戶在什么組織架構,用戶在AD的組織架構和在PCF的組織架構的映射關系可以保存在mySQL數(shù)據(jù)庫中,用戶第一次登錄PCF的時候要選擇相應的PCF組織架構或是根據(jù)組織架構映射確定用戶在PCF的組織架構。而在MVC的業(yè)務邏輯實現(xiàn)部分,也需要實現(xiàn)和AD的SSO,這樣用戶在現(xiàn)有的應用環(huán)境中登錄以后可以直接進入Console。系統(tǒng)要用創(chuàng)建數(shù)據(jù)庫,采用PCF內(nèi)置的PCF mySQL數(shù)據(jù)庫,數(shù)據(jù)庫包括組織架構關系等,目前的組織架構關系如如下的二級架構:此組織架構的三級部門和PCF的Org對應,四級部門和Space對應。對于非AD的用戶,通過PCF的API可以創(chuàng)建用戶、分配到組織架構和項目中去、配置

42、資源權限、停止用戶、刪除用戶等。非AD的用戶一方面要在數(shù)據(jù)庫中配置組織架構關系,另外,在通過PCF API創(chuàng)建用戶、配置PCF角色以后,要把相應的信息寫入數(shù)據(jù)庫,用于統(tǒng)一的用戶管理。租戶管理租戶管理子系統(tǒng)技術架構和控制臺類似,也是部署在PCF上的一個應用,主要供管理員登錄到控制臺進行租戶管理。租戶管理的主要功能通過PCF API實現(xiàn),如創(chuàng)建租戶、修改租戶信息等。由于部門信息PCF不內(nèi)置支持,比如磁盤額度控制,需要再寫數(shù)據(jù)庫,把額度配置信息寫入數(shù)據(jù)庫。同時每次部署應用的時候,把應用的磁盤信息更新到租戶表,如果在Push應用的發(fā)現(xiàn)Push應用的用戶所屬租戶磁盤額度不夠,需要告警,并終止應用Push

43、。如果可以Push應用,要把應用所占有的磁盤信息更新到租戶磁盤實際用量表。另外,按照需要分析,把租戶的基本信息寫入數(shù)據(jù)庫,便于查詢,支持需求的各種模糊查詢條件。管理員刪除租戶的時候要查詢數(shù)據(jù)庫表的租戶信息,如果租戶的內(nèi)存實際用量或磁盤實際用量不為零,這提示不能刪除,同時通過PCF API查詢有什么應用部署在此租戶。管理員查看租戶的詳細信息時,通過PCF API檢索租戶的詳細信息頁,除了顯示租戶的基本信息外,還需檢索顯示租戶的工作空間列表、用戶列表、應用列表等信息提醒服務PCF內(nèi)置有提醒服務,需要配置,目前只支持Email的方式。PCF提供了基于Web頁面和命令行的配置方式,配置提醒服務,包括提

44、醒服務的Email模板,哪些情況進行提醒,比如應用故障了,彈性伸縮了等。PCF需要配置Email服務器,才能安裝提醒服務。PCF的提醒服務還提供了API,可以定制開發(fā)一個提醒配置應用。本期只實施基于PCF內(nèi)置提供的Web配置和命令行配置,不通過提醒服務的API定制節(jié)目。如下圖是配置哪些信息需要提醒。提醒服務也可以配置發(fā)送給特定的人員,或是發(fā)給某Space或是某組織。服務監(jiān)控如下圖為服務監(jiān)管的技術架構,服務監(jiān)管主要基于Zabbix的監(jiān)控方案。PCF內(nèi)置的P-metrics可以采集PCF安裝的所有虛機的監(jiān)控信息,包括各個服務的監(jiān)控信息,以及各個部件的監(jiān)控信息。對于Service Broker,如果

45、是PCF內(nèi)置的Service,會有專門的虛機運行相應的Service Broker,如果是定制開發(fā)的Service Broker,相應的Service Broker程序在PCF DEA上以PCF應用的方式運行。本方案中,也會對系統(tǒng)的Java Buildpack打包一個Zabbix Agent,可以采集到應用運行的各種狀態(tài)信息。Zabbix包括5大部分,核心是Zabbix Server,Zabbix Server:負責接收agent發(fā)送的報告信息的核心組件,所有配置、統(tǒng)計數(shù)據(jù)及操作數(shù)據(jù)均由其組織進行Zabbix Database:專用于存儲所有配置信息,以及有zabbix收集的數(shù)據(jù),在本設計中采

46、用PCF內(nèi)置的mySQL 數(shù)據(jù)庫服務,根據(jù)銀行現(xiàn)有需求的估計,每個月可能會產(chǎn)生上百G的數(shù)據(jù),可以給mySQL配置較大的服務計劃,同時定時的把數(shù)據(jù)轉儲出去。Web interface(frontend):zabbix的GUI接口,通常與server運行在同一臺機器上。根據(jù)招呼的界面風格,對Zabbix的Web界面進行定制。Proxy:用于分布式監(jiān)控環(huán)境中,代理Server收集部分被監(jiān)控數(shù)據(jù)并統(tǒng)一發(fā)往Server端Agent:部署在被監(jiān)控主機上,負責收集本地數(shù)據(jù)并發(fā)往Server端或者Proxy端平臺監(jiān)控和服務監(jiān)管技術架構類似,PaaS的監(jiān)控平臺統(tǒng)一采用Zabbix,分別監(jiān)控PCF的三大資源池:P

47、CF部件池、服務池、應用DEA池。一方面可以監(jiān)控各個服務的狀態(tài)信息,另外一方面可以監(jiān)控PCF各個部件模塊的狀態(tài)信息,也可以監(jiān)控PCF上運行的應用狀態(tài)信息。對于服務監(jiān)管和PCF部件監(jiān)控而言,都是通過PCF內(nèi)置的P-metrics把所有的狀態(tài)信息采集到P-Metrics服務器上,然后通過JMX的方式傳送到Zabbix Server。由Zabbix Server進行存儲、分析、處理和展示。審計子系統(tǒng)架構設計審計子系統(tǒng)作為一個應用部署到PCF DEA。審計子系統(tǒng)作為控制臺的一部分,分為兩個模塊,第一是操作記錄模塊,把所有對Console的操作寫入數(shù)據(jù)庫,審計子系統(tǒng)的數(shù)據(jù)庫部署在。IaaS適配架構設計P

48、CF 1.5已經(jīng)支持了OpenStack,目前我們在PCF 1.5的Beta版本已經(jīng)安裝在OpenStack環(huán)境下了,而青云會直接支持OpenStack的API。PCF是通過CPI(Cloud Programming Interface)來和下面的IaaS接口,如下圖。只要實現(xiàn)了BOSH的CPI接口即可。如下圖,CPI只要實現(xiàn)下面的10個API即可。對于招呼目前的IaaS接口,我們的方案建議是采用PCF已經(jīng)指出的OpenStack標準接口,無論是青云還是華為的FusionSphere,都可以提供標準的OpenStack API接口,只要這些接口完全兼容OpenStack API,就可以直接接口

49、,如果有不完全兼容的地方,可以對IaaS層的接口再做一層封裝,使之完全兼容即可。應用彈性伸縮架構設計應用彈性伸縮作為一個PCF應用部署在PCF的DEA上運行。系統(tǒng)架構如下圖: 。彈性伸縮需要獲取伸縮策略所需的實時數(shù)據(jù)。數(shù)據(jù)采集分為兩個來源:應用彈性伸縮的子系統(tǒng)由三部分組成,一是指標采集,如上所述,第二是控制界面,對彈性伸縮策略的配置,第三是伸縮控制,包括定時控制(根據(jù)預先設定的時間進行伸縮),伸縮的實際控制是通過PCF API直接訪問Cloud Controller,實現(xiàn)應用實例的擴張或是收縮。另外,應用伸縮需要把應用伸縮策略的配置、伸縮操作等寫入數(shù)據(jù)庫,采用DBaas的mySQL數(shù)據(jù)庫,創(chuàng)建

50、一個mySQL的服務即可。日志處理架構設計如下圖為PaaS日志處理子系統(tǒng)的架構設計,子系統(tǒng)主要分為兩部分:1、PCF日志采集聚合服務,通過PCF內(nèi)置的Doppler模塊負責采集日志,日志的來源有三種:A、PCF各個部件的日志,在PCF的OPS通過配置就可以把日志都采集到DopplerB、PCF各個服務的日志,在PCF的OPS通過配置各個服務日志輸出的就可以把日志都采集到DopplerC、PCF的各個應用日志,PCF缺省會把所有的應用日志都輸出到DopplerDoppler采集的日志包括監(jiān)控日志、錯誤日志和其他等日志。2、日志處理采用IBM SmartCloud Analytics,Dopple

51、r可以把所有的日志通過syslog協(xié)議輸出到IBM SmartCloud Analytics,由IBM SmartCloud Analytics進行統(tǒng)一處理。對于PCF的外置服務,通過標準的日志協(xié)議采集到IBM SmartCloud Analytics。通過對IBM SmartCloud Analytics(簡稱ISCA)的定制,系統(tǒng)管理員和開發(fā)人員能夠登錄ISCA平臺查看日志;通過對ISCA的定制把監(jiān)控日志和錯誤日志實時導出并顯示到機房監(jiān)控界面上。 MySQL Service Broker設計mySQL的服務設計分兩個,一個是生產(chǎn)環(huán)境的mySQL服務,一個是開發(fā)測試環(huán)境的mySQL服務。開發(fā)

52、測試環(huán)境不需要災備,是一個標準的服務設計方法。但是生產(chǎn)環(huán)境的mySQL要考慮深圳和上海兩個PCF的災備,所以設計方法和常規(guī)不一樣。如下為開發(fā)測試環(huán)境的mySQL服務:開發(fā)測試環(huán)境也采用銀行的DB as a Service數(shù)據(jù)庫服務池,開發(fā)一個mySQL Service Broker的應用程序,部署在PCF的DEA上運行。此Service Broker要實現(xiàn)Service Broker V2的規(guī)范,包括Fetch Catalog、Provision Instance、Create Binding、Remove Binding、Remove Instance等。比如Provision Instan

53、ce的時候要調用數(shù)據(jù)庫的API去創(chuàng)建數(shù)據(jù)庫的實例,并創(chuàng)建相應的用戶,在remove instance的時候做反操作,調用數(shù)據(jù)庫的API去刪除數(shù)據(jù)庫的實例,并刪除相應的用戶。對于生產(chǎn)環(huán)境的mySQL服務架構如下圖: mySQL的Service Broker作為一個PCF應用分別部署在深圳的PCF和上海的PCF,兩個Service Broker完全一樣,訪問同一個Service Broker的數(shù)據(jù)庫,這個數(shù)據(jù)庫目前建議是采用現(xiàn)有的DB as a Service,保存Service Broker的一些數(shù)據(jù),比如Service Instance的元數(shù)據(jù)信息、用戶名口令等。同時,在深圳和上海的控制臺上調

54、用PCF來創(chuàng)建服務、綁定服務。在深圳控制臺創(chuàng)建服務的時候,會調用深圳的Service Broker去真正創(chuàng)建服務實例、創(chuàng)建用戶等,如果調用深圳的Service Broker故障,則轉向調用上海的Service Broker去真正創(chuàng)建服務實例、創(chuàng)建用戶等,并確保只會調用一次創(chuàng)建數(shù)據(jù)庫實例。當深圳PCF故障,切換到上海PCF的時候,上海的PCF MySQL Service Broker正常運行,而且上海PCF的Console也正常運行,原有的所有數(shù)據(jù)庫Instance都在上海的Service Broker中有創(chuàng)建,只是通過Console創(chuàng)建數(shù)據(jù)庫實例的時候會控制只創(chuàng)建一份。Redis 服務設計Re

55、dis服務的設計是基于PCF現(xiàn)有的Redis服務,增加集群功能。要改造現(xiàn)有的PCF的Redis服務,一方面是改造PCF OPS上的Redis配置,增加集群相關的配置。第二是對Service Broker的改造,要增加Service Broker創(chuàng)建Redis集群實例的實現(xiàn),以及綁定Service Instance的實現(xiàn)。Redis采用多臺虛機,部署Redis集群,同時也提供單機Redis服務。也即兩個Service Plan,一個是在Redis集群中創(chuàng)建一個Redis服務實例,另外一個是單獨創(chuàng)建一個Redis虛機。預先通過OPS安裝好一批Redis獨享虛機,如果Redis獨享虛機不夠,需要通過

56、OPS再加配Redis獨享虛機。RabbitMQ 服務設計RabbitMQ的服務的設計是基于PCF現(xiàn)有的RabbitMQ服務,增加HA Proxy VIP自動切換功能。PCF的RabbitMQ已經(jīng)支持了HA架構,可以配置多個RabbitMQ節(jié)點做成HA模式,同時前端可以配置HA Proxy做RabbitMQ切換。PCF的RabbitMQ服務的HA Proxy的IP不能自由浮動,我們在本次設計中配置KeepAlive來實現(xiàn)VIP,并實現(xiàn)HAProxy故障之后的IP自動切換。Jenkins 服務設計Jenkins的服務設計是基于現(xiàn)有的開源Jenkins定制為支持HA的Jenkins服務。如下為銀行

57、Jenkins服務的使用場景:用戶使用Eclipse,安裝PCF的插件,可以把應用直接部署在PCF上,同時安裝RTC插件,代碼和RTC同步。而一旦提交代碼到RTC,然后就可以觸發(fā)Jenkins對項目進行構建,比如通過Mavin構建,然后通過Jenkins做測試,然后再通過Jenkins自動部署到PCF上。用戶操作的時序圖如下:如下圖為Jenkins服務的技術架構。Jenkins分為兩類機器,一個是Master機器,整體負責Jenkins的運行,第二是Slave的任務機,Jenkins Master機器可以把任務分發(fā)給不同的Jenkins Slave任務機處理,Master會監(jiān)控每臺Slave機

58、器的運行狀態(tài),如果Slave機器故障,不會把任務分發(fā)過去。在本架構中,配置一臺Jenkins Master虛機,同時配置一臺Jenkins Master的熱備機器,如果主Jenkins機故障,我們直接訪問熱備的Jenkins機器即可。在Jenkins Master和熱備機器之間配置了ssh + rsync + inotify的數(shù)據(jù)同步機制,Master的任何數(shù)據(jù)變化會同步到熱備機器上去。角色分類:(人機交互產(chǎn)品建議填寫,用于UAT測試案例編寫)角色分類角色細分相關子系統(tǒng)系統(tǒng)管理員生產(chǎn)平臺系統(tǒng)管理員開發(fā)測試平臺系統(tǒng)管理員租戶管理員開發(fā)測試平臺Org管理員開發(fā)測試平臺Space管理員普通用戶生產(chǎn)平

59、臺普通用戶開發(fā)測試平臺普通用戶業(yè)務場景/流程設計 MACROBUTTON TableDeleteTable 雙擊此處添加 以模塊為最小單位來說明系統(tǒng)主要功能的實現(xiàn)流程,可以用時序圖或泳道圖的方式來表示。例子,以“積分業(yè)務總圖”-“積分使用”“積分直接消費”進行描述業(yè)務場景如下,為PaaS的總業(yè)務場景圖,從3個不同的角色的角度分為不同的業(yè)務場景業(yè)務場景/流程清單序號業(yè)務場景/流程名稱業(yè)務場景/流程功能描述業(yè)務場景/流程圖名1管理員配置生產(chǎn)平臺2管理員創(chuàng)建租戶管理員3管理員創(chuàng)建普通用戶4租戶管理員監(jiān)控管理5租戶管理員配置租戶6普通用戶使用控制臺7普通用戶應用監(jiān)控8普通用戶申請資源9普通用戶部署應用10普通用戶的提醒服務數(shù)據(jù)標準使用及數(shù)據(jù)結構設計 MACROBUTTON TableDeleteTable 雙擊此處添加 對照業(yè)務需求書數(shù)據(jù)標準章節(jié),進一步分析需求,補充和完善CMB DS-業(yè)務數(shù)據(jù)標準制定中相關聯(lián)的業(yè)務對象和信息項,在此基礎上進行數(shù)據(jù)庫設計。使用的信息項清單 MACROBUTTON TableDeleteTable 雙擊此處添加 信息項清單,直接通過一事通專業(yè)系統(tǒng)

溫馨提示

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

評論

0/150

提交評論