999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Docker的CaaS管理平臺架構(gòu)研究與設(shè)計

2018-11-30 01:52:06
計算機應(yīng)用與軟件 2018年11期
關(guān)鍵詞:系統(tǒng)管理

張 琦

(上海浦東發(fā)展銀行股份有限公司信息科技部 上海 200001)

0 引 言

目前行業(yè)內(nèi)面向云計算CaaS(容器即服務(wù))層的容器技術(shù)逐漸成熟,已經(jīng)得到了較多金融機構(gòu)的認可,并取得了較多成功案例。諸如各大保險、證券、股份制銀行信用卡中心等金融機構(gòu)也已完成將CaaS管理平臺應(yīng)用于微信銀行等關(guān)鍵系統(tǒng)中,滿足高并發(fā)場景(如限時搶購、權(quán)益秒殺等)的業(yè)務(wù)需求,并實現(xiàn)了較好的收益。

基于Docker的CaaS管理平臺最大優(yōu)勢是用戶可根據(jù)需要實現(xiàn)動態(tài)的擴容縮容,減少對資源預(yù)測的依賴,實現(xiàn)業(yè)務(wù)系統(tǒng)快速、彈性伸縮,提升資源使用效率,滿足業(yè)務(wù)突發(fā)高峰時系統(tǒng)的處理能力要求。

為解決我行當前網(wǎng)上銀行、企業(yè)客戶信息整合系統(tǒng)(ECIF)、信用卡等應(yīng)用系統(tǒng)在持續(xù)集成、持續(xù)交付,以及資源彈性伸縮需求方面所存在的諸多問題,并滿足其支付系統(tǒng)的高事務(wù)處理能力(如10 000 TPS)的業(yè)務(wù)需求,在其開發(fā)測試環(huán)境和生產(chǎn)環(huán)境構(gòu)建一套基于Docker的CaaS管理平臺,在實現(xiàn)應(yīng)用系統(tǒng)快速迭代和敏捷交付的同時,也提高運維的效率和降低運維成本。

本文以Docker容器技術(shù)為核心,圍繞構(gòu)建我行CaaS平臺所涉及的技術(shù)和架構(gòu)進行論述,所論及的范圍包括容器、云計算、網(wǎng)絡(luò)、微服務(wù)、存儲、安全等方面,為后續(xù)的CaaS平臺建設(shè)提供理論參考。

1 術(shù)語說明

本文中所涉及的相關(guān)術(shù)語解釋說明如表1所示。

表1 術(shù)語說明

2 架構(gòu)設(shè)計

CaaS平臺的定位是:在生產(chǎn)環(huán)境中承擔支撐容器化業(yè)務(wù)應(yīng)用的發(fā)布和運行的云平臺角色,并建設(shè)與之搭配的容器資源池,支持行內(nèi)業(yè)務(wù)的部署發(fā)布、運維管理和彈性擴展,并能夠和行內(nèi)相關(guān)系統(tǒng)對接。在開發(fā)測試環(huán)境中,該CaaS平臺是對現(xiàn)有開發(fā)測試云的能力補充,增加了容器資源池并擴展了其對DevOps的支持。

2.1 總體架構(gòu)設(shè)計

2.1.1 開發(fā)測試環(huán)境CaaS平臺

開發(fā)測試環(huán)境CaaS平臺架構(gòu)如圖1所示。

圖1 開發(fā)測試環(huán)境CaaS平臺架構(gòu)

在開發(fā)測試環(huán)境中,CaaS平臺使用“開發(fā)測試環(huán)境集中監(jiān)控系統(tǒng)”和“開發(fā)測試環(huán)境應(yīng)用集中監(jiān)控系統(tǒng)”來分別實現(xiàn)平臺宿主機的監(jiān)控和應(yīng)用狀態(tài)監(jiān)控。

CaaS平臺的一些預(yù)制容器編排模版,比如DevOps、微服務(wù)組件模版,未來可以作為“開發(fā)測試環(huán)境云計算管理平臺”之上可被申請的服務(wù),通過對接CaaS平臺的API接口,實現(xiàn)服務(wù)的自助申請和自動獲取。

CaaS平臺能壓縮待投產(chǎn)應(yīng)用鏡像,并上傳至“投產(chǎn)版本管理平臺”,以供生產(chǎn)環(huán)境獲取對應(yīng)應(yīng)用版本。

2.1.2 生產(chǎn)環(huán)境CaaS平臺

生產(chǎn)環(huán)境CaaS平臺架構(gòu)如圖2所示。

圖2 生產(chǎn)環(huán)境CaaS平臺架構(gòu)

CaaS平臺中的“平臺管理”組件提供容器管理平臺能力,在容器集群管理的基礎(chǔ)上構(gòu)建了應(yīng)用管理、租戶權(quán)限、鏡像管理等功能。

CaaS平臺的“容器監(jiān)控”組件能夠自動獲取平臺上容器的運行狀態(tài)數(shù)據(jù),以及提供應(yīng)用狀態(tài)的查詢和展示能力,并能夠在運行狀態(tài)數(shù)據(jù)的基礎(chǔ)上進行異常狀態(tài)告警。

CaaS平臺的“容器資源池”組件把主機資源匯總起來形成面向容器化應(yīng)用的資源池,并參與應(yīng)用容器的調(diào)度。

CaaS 平臺及平臺之上的應(yīng)用均使用硬件負載均衡提供流量分發(fā)。同時CaaS平臺會實時跟蹤容器部署狀態(tài),并更新硬件負載均衡設(shè)備的分發(fā)配置。

CaaS 平臺的用戶授權(quán)認證需要接入行內(nèi)的“統(tǒng)一身份和訪問管理系統(tǒng)”進行統(tǒng)一用戶認證和授權(quán)。

CaaS 平臺的應(yīng)用狀態(tài)異常信息需要能夠?qū)拥叫袃?nèi)的“集中監(jiān)控系統(tǒng)系統(tǒng)”系統(tǒng),并在“集中監(jiān)控系統(tǒng)系統(tǒng)”之上進行統(tǒng)一告警管理。

CaaS 平臺及平臺之上的應(yīng)用的日志均被“應(yīng)用集中監(jiān)控系統(tǒng)”收集匯總,并進行應(yīng)用業(yè)務(wù)狀態(tài)的監(jiān)控。

CaaS 平臺及平臺之上的應(yīng)用的日志均被“總分行交易質(zhì)量分析系統(tǒng)”收集匯總,并進行分析。

CaaS平臺能從“投產(chǎn)版本管理平臺”獲取應(yīng)用鏡像壓縮包,并自動轉(zhuǎn)化為鏡像并導(dǎo)入CaaS平臺鏡像倉庫,簡化容器化應(yīng)用在生產(chǎn)環(huán)境的發(fā)布過程。

2.2 應(yīng)用功能架構(gòu)

CaaS平臺在生產(chǎn)環(huán)境和開發(fā)測試云均保持相同的功能架構(gòu),如圖3所示。

圖3 CaaS平臺應(yīng)用功能架構(gòu)

CaaS平臺的功能架構(gòu)由管理平臺組件、插件模塊、監(jiān)控組件和容器資源池組成。管理平臺為Docker容器平臺核心組件,提供了面向應(yīng)用平臺管理的能力。插件模塊通過管理平臺的插件管理組件管理的一系列插件提供。監(jiān)控組件包括監(jiān)控數(shù)據(jù)的收集和管理,以及基于策略的告警管理。容器資源池則通過容器集群調(diào)度軟件把各個容器引擎所在主機的能力組織為集群整體運行能力,通過容器資源池對外提供容器運行環(huán)境。

2.2.1 管理平臺組件

1) 容器管理 提供完善的容器管理能力,包括:

? 展示容器信息,包括容器名稱、容器所屬應(yīng)用、容器所在主機以及容器鏡像等信息。

? 展示容器運行狀態(tài),包括運行中、已停止、已創(chuàng)建等。

? 展示容器日志、資源、進程等運行時數(shù)據(jù)。

? 進行容器管理操作,比如啟動、停止等基本操作。

? 進行容器的部署和配置。

2) 主機管理 提供平臺集群的主機管理能力,包括:

? 接入主機的流程管理。

? 集群的狀態(tài)展示,包括資源使用情況和狀態(tài)。

? 展示主機的運行狀態(tài)以及其上運行的應(yīng)用容器的情況。

? 和主機相關(guān)的存儲和網(wǎng)絡(luò)管理。

? 進行主機管理操作,比如打標簽、更改運行狀態(tài)等。

3) 鏡像倉庫 Docker鏡像是一個只讀的模板。例如:一個鏡像可以包含一個完整的SUSE Linux操作系統(tǒng)環(huán)境,里面僅安裝了Apache或用戶需要的其他應(yīng)用程序。

鏡像可以用來創(chuàng)建 Docker容器。Docker 提供了一個很簡單的機制來創(chuàng)建鏡像或者更新現(xiàn)有的鏡像,用戶甚至可以直接從其他用戶那里下載一個已經(jīng)做好的鏡像來使用。平臺提供完善的鏡像管理能力:

? 支持通過鏡像空間來分組顯示,并能夠設(shè)置訪問權(quán)限。

? 支持通過應(yīng)用代碼或者上傳應(yīng)用包構(gòu)建鏡像。

? 支持前面的鏡像管理,包括版本、描述、訪問權(quán)限、自動構(gòu)建等。

4) 企業(yè)安全 通過認證授權(quán)、網(wǎng)絡(luò)控制、密碼管理、資源隔離等多個方面提供平臺的安全性:

? 支持多租戶模式,并且具有用戶、團隊與租戶三層權(quán)限控制,可以實現(xiàn)租戶應(yīng)用的隔離和資源配額管理。

? 通過密鑰管理訪問開放 API 和持續(xù)發(fā)布的權(quán)限。

? 支持自定義密碼安全策略,提供密碼強度、密碼有效時間和最大嘗試次數(shù)的設(shè)置。

? 使用加密網(wǎng)絡(luò)信道進行平臺訪問和節(jié)點間通信。

? 支持對接企業(yè)統(tǒng)一認證系統(tǒng),如LDAP。

5) 應(yīng)用管理 平臺是以容器為交付標準件的企業(yè)級應(yīng)用云平臺。平臺中的應(yīng)用都是容器化的應(yīng)用,由一個服務(wù)或多個服務(wù)構(gòu)成。容器化應(yīng)用運行在一個輕量的、安全的、可移植的隔離環(huán)境中,因此可以與其他有不同依賴和環(huán)境需求應(yīng)用共同運行在同一個主機環(huán)境中,而無需擔心互相沖突。平臺的應(yīng)用管理能力包括:

? 應(yīng)用的發(fā)布管理,包括應(yīng)用部署、版本更新、灰度發(fā)布等。

? 應(yīng)用的配置管理,包括應(yīng)用的資源限制、配置、負載均衡等。

? 應(yīng)用的運維支撐,包括應(yīng)用日志的歸集和展示、監(jiān)控等。

? 應(yīng)用的網(wǎng)絡(luò)管理,包括應(yīng)用的網(wǎng)絡(luò)模式、IP管理等。

6) 模版管理 應(yīng)用模版通過預(yù)先定義的應(yīng)用編排實現(xiàn)了應(yīng)用服務(wù)的快速部署。除平臺本身預(yù)制的應(yīng)用模版外,用戶也可以創(chuàng)建自定義的應(yīng)用模版,并設(shè)置應(yīng)用模版的訪問權(quán)限。應(yīng)用模版的能力包括:

? 應(yīng)用模版的管理,包括模版的定義、分類、信息管理和維護。

? 應(yīng)用模版的權(quán)限控制,支持指定模版對不同租戶的訪問權(quán)限。

? 應(yīng)用模版的參數(shù)管理,支持定義模版參數(shù)并接入應(yīng)用創(chuàng)建流程。

? 應(yīng)用模版的導(dǎo)入,支持批量導(dǎo)入模版描述文件。

2.2.2 插件模塊

1) 插件機制 CaaS平臺插件功能是通過將與其他應(yīng)用系統(tǒng)的接口封裝成容器,即每一個插件都是一個功能完整且獨立的 Docker 鏡像。可通過微服務(wù)技術(shù)將擴展功能模塊化,通過對應(yīng)接口將“應(yīng)用模塊”注冊到CaaS平臺中。

插件需要實現(xiàn)一個Restful接口,和對應(yīng)的管理平臺UI界面。就可以作為“模塊”安裝到CaaS平臺中,平臺通過Restful接口,實現(xiàn)了插件的服務(wù)注冊、服務(wù)調(diào)用,并提供了API Gateway,支持權(quán)限認證。插件可以通過任何編程語言開發(fā),如Java、Python、PHP。插件還具備網(wǎng)絡(luò)訪問能力,可以通過插件對接外部系統(tǒng)。插件可以存儲少量元信息在控制器中,如果需要大量的數(shù)據(jù)持久化,可以自行配置需要的數(shù)據(jù)庫服務(wù)。

由于插件也是一個容器,所以管理操作都是通過操作容器進行。業(yè)務(wù)邏輯封裝在插件內(nèi),管理平臺控制器通過Restful接口進行調(diào)用。CaaS平臺還需保證插件的高可用,一旦插件容器停止,CaaS平臺會自動重啟該插件。如果插件所在的服務(wù)器宕機,CaaS則會將插件遷移到合適的新服務(wù)器上去。

在CaaS平臺中的每個模塊均是通過 HTML 中 IFrame 的方式嵌入控制器頁面中,并通過 HTTP 協(xié)議與服務(wù)端進行交互。每個模塊都是一個獨立的 Docker 鏡像,并通過一定的接口向 CaaS中預(yù)先定義的幾個擴展點中增加功能項,其架構(gòu)如圖4所示。

圖4 插件機制架構(gòu)

2) 插件管理 CaaS平臺支持通過插件機制擴展平臺功能,在不涉及修改平臺代碼的前提下,通過插件提供一致的平臺操作體驗,包括:

? 插件的列表和展示。

? 插件的安裝、部署和管理,并能夠體現(xiàn)插件的運行狀態(tài)。

3) 自動擴展插件 CaaS平臺的自動擴展插件能夠根據(jù)策略動態(tài)調(diào)整應(yīng)用容器實例數(shù),包括:

? 自定義實例擴展策略。

? 自動監(jiān)控應(yīng)用容器的運行狀態(tài)。

? 當狀態(tài)符合擴展策略時自動觸發(fā)實例伸縮。

4) 投產(chǎn)管理插件 投產(chǎn)管理插件通過對接“投產(chǎn)版本管理平臺”,讓開發(fā)測試環(huán)境的CaaS平臺與生產(chǎn)環(huán)境的CaaS平臺進行數(shù)據(jù)交換,實現(xiàn)測試環(huán)境的投產(chǎn)數(shù)據(jù)包能夠自動的導(dǎo)入生產(chǎn)環(huán)境,并通過自動化的環(huán)境配置更新,降低人為修改配置的出錯風險。其架構(gòu)設(shè)計如圖5所示。

圖5 投產(chǎn)管理插件架構(gòu)

? 平臺能夠?qū)С鲋付ǖ膽?yīng)用模版以及涉及到的鏡像為投產(chǎn)數(shù)據(jù)包。

? 投產(chǎn)數(shù)據(jù)包通過“投產(chǎn)版本管理平臺”接口上傳到指定位置。

? 平臺能夠通過“投產(chǎn)版本管理平臺”接口從指定位置導(dǎo)入投產(chǎn)數(shù)據(jù)包。

? 在導(dǎo)入模版和鏡像的過程中自動更新相關(guān)的鏡像信息。

5) 服務(wù)目錄插件 平臺的服務(wù)目錄插件能夠根據(jù)“云計算管理平臺”的接口規(guī)范把CaaS平臺的應(yīng)用模版部署能力以服務(wù)的方式暴露出來,實現(xiàn)CaaS平臺功能在“云計算管理平臺”上的展示、申請和管理。架構(gòu)設(shè)計如圖6所示。

圖6 服務(wù)目錄插件架構(gòu)

? 服務(wù)目錄插件實現(xiàn)符合“開發(fā)測試環(huán)境云計算管理平臺”規(guī)范的API,把CaaS平臺功能暴露為“開發(fā)測試環(huán)境云計算管理平臺”之上的服務(wù)。

? 插件通過調(diào)用CaaS平臺API對服務(wù)進行展示、申請和管理。

6) 統(tǒng)一認證插件 UIAS是統(tǒng)一認證和訪問管理系統(tǒng),平臺的授權(quán)認證需要統(tǒng)一通過它來實現(xiàn)。UIAS提供了基于SOAP和ESB的訪問方式,支持實時和批量同步用戶授權(quán)信息。UIAS對接模塊主要包括兩部分能力:

? 實現(xiàn)CaaS平臺認證攔截器,把認證請求重定向到UIAS認證,并能夠通過UIAS認證結(jié)果指導(dǎo)平臺的認證行為。

? 能夠從UIAS上同步用戶的組織結(jié)構(gòu)和權(quán)限,并能夠映射UIAS的授權(quán)模型到平臺的授權(quán)模型,從而通過UIAS進行統(tǒng)一權(quán)限管理。

? UIAS 權(quán)限信息同步采用實時和批量兩種方式,定期通過批量方式獲取權(quán)限,同時基于通知機制實時更新。

統(tǒng)一認證插件架構(gòu)設(shè)計如圖7所示。

圖7 統(tǒng)一認證插件架構(gòu)

7) 狀態(tài)報告插件 CaaS平臺提供一定周期內(nèi)的關(guān)于應(yīng)用運行狀態(tài)的報告,幫助應(yīng)用管理員更好地根據(jù)應(yīng)用的狀態(tài)數(shù)據(jù)對應(yīng)用的運行環(huán)境和配置進行合理調(diào)優(yōu),實現(xiàn)數(shù)據(jù)驅(qū)動的業(yè)務(wù)運營。

CaaS平臺通過運行報告模塊,周期性收集應(yīng)用容器的運行狀態(tài)數(shù)據(jù),包括CPU、內(nèi)存、網(wǎng)絡(luò)等方面,并基于這些數(shù)據(jù)生成應(yīng)用運行狀態(tài)報告,并通過郵件發(fā)送給指定的郵箱。

8) 告警對接插件 CaaS平臺支持設(shè)置告警策略,通過實時監(jiān)控應(yīng)用容器的運行狀況,當發(fā)現(xiàn)應(yīng)用狀態(tài)符合設(shè)置的告警條件時會觸發(fā)告警,告警通知會接入現(xiàn)有的集中監(jiān)控系統(tǒng)系統(tǒng)(OVO或Zabbix),進行統(tǒng)一的告警管理。

2.2.3 負載均衡

CaaS平臺將采用LVS技術(shù)來實現(xiàn)平臺的負載均衡,LVS(Linux Virtual Server),即Linux虛擬服務(wù)器,主要用于服務(wù)器集群的負載均衡,可以實現(xiàn)高性能,高可用的服務(wù)器集群技術(shù)。可將許多低性能的服務(wù)器組合在一起形成一個超級服務(wù)器。其配置較簡單,且有多種負載均衡的方法。此外,其運行穩(wěn)定可靠,即使在集群的服務(wù)器中某臺服務(wù)器無法正常工作,也不影響整體效果,可擴展性也非常好。

LVS是四層負載均衡,即建立在OSI模型的第四層(傳輸層)之上,即LVS支持TCP/UDP的負載均衡。因為LVS是四層負載均衡,所以LVS相對于其他高層負載均衡的解決辦法,比如DNS域名輪流解析、應(yīng)用層負載的調(diào)度、客戶端的調(diào)度等,其效率非常高。

LVS的轉(zhuǎn)發(fā)主要通過修改IP地址(NAT模式,分為源地址修改SNAT和目標地址修改DNAT)、修改目標MAC(DR模式)來實現(xiàn)。其架構(gòu)設(shè)計如圖8所示。

圖8 LVS架構(gòu)設(shè)計

? 部署兩個LVS服務(wù)并通過Keepalived 實現(xiàn)高可用。

? LVS 分發(fā)請求至CaaS平臺的HAProxy 服務(wù)。

? CaaS平臺的HAProxy服務(wù)能夠根據(jù)容器的部署架構(gòu)自動更新分發(fā)配置。

2.2.4 監(jiān)控組件

監(jiān)控組件提供集群、主機和容器運行狀態(tài)數(shù)據(jù)的收集、分析和展示,并通過對接集中監(jiān)控系統(tǒng)(OVO、Zabbix)提供告警支持。架構(gòu)設(shè)計如圖9所示。

圖9 監(jiān)控組件架構(gòu)

1) 監(jiān)控管理 提供CaaS平臺上集群、主機和容器運行狀態(tài)的數(shù)據(jù)收集、匯總分析以及信息展示,包括:

? 實時收集集群、主機和應(yīng)用容器的運行狀態(tài)信息。

? 能夠提供可定制的監(jiān)控數(shù)據(jù)儀表盤。

? 能夠支持通過查詢語言查詢狀態(tài)數(shù)據(jù)。

2) 告警管理 提供基于容器監(jiān)控數(shù)據(jù)的告警能力,包括:

? 支持自定義靈活的告警策略,允許多個告警策略同時生效。

? 根據(jù)容器運行數(shù)據(jù)自動檢測告警策略匹配程度。

? 當符合告警策略的情況發(fā)生時能根據(jù)預(yù)先設(shè)置好的規(guī)則發(fā)布告警。

? 通過API對接現(xiàn)有的集中監(jiān)控系統(tǒng)。

2.2.5 容器資源池

1) 容器調(diào)度 通過Docker Swarmkit和Kubernetes集群管理技術(shù)對集群中的Docker主機資源進行統(tǒng)一管理和容器調(diào)度,包括:

? 集群中主機的接入管理、節(jié)點角色控制以及集群狀態(tài)管理。

? 靈活的容器調(diào)度策略,充分利用集群資源。

? 容器的資源限額管理和控制。

? 能夠在容器調(diào)度的同時匹配相關(guān)的網(wǎng)絡(luò)和存儲資源。

2) 容器引擎 使用Docker引擎提供單機環(huán)境下對容器的管理和操作,包括:

? 容器的啟動、停止、日志、監(jiān)控等操作支持。

? 對主機的存儲、網(wǎng)絡(luò)等資源進行編排。

? 通過容器技術(shù)對進程進行隔離空間運行,并設(shè)置資源限制。

2.3 主要業(yè)務(wù)流程

2.3.1 DevOps 持續(xù)發(fā)布流程

開發(fā)項目組可通過CaaS管理平臺,使用圖形化界面進行應(yīng)用編排。應(yīng)用編排內(nèi)容包括容器與容器之間的組成關(guān)系、容器的彈性伸縮配置、與外部資源的交互關(guān)系等,如圖10所示。

圖10 CaaS平臺應(yīng)用編排示意

DevOps持續(xù)發(fā)布流程如圖11所示。

圖11 DevOps持續(xù)發(fā)布流程

? 項目組向代碼倉庫(SVN/GIT)提交代碼,持續(xù)集成服務(wù)器根據(jù)代碼更新,通過Jenkins構(gòu)建應(yīng)用程序。

? 項目組在CaaS平臺新建DevOps流程(一般為多個),配置相關(guān)參數(shù),配置參數(shù)應(yīng)包括:代碼倉庫接口、持續(xù)集成服務(wù)器接口、鏡像命名規(guī)范、DevOps觸發(fā)條件(手動/自動),使平臺對接持續(xù)集成服務(wù)器。

? 項目組向代碼倉庫更新代碼后,根據(jù)約定的DevOps觸發(fā)條件,由CaaS平臺對接持續(xù)集成服務(wù)器,根據(jù)持續(xù)集成服務(wù)器工程構(gòu)建新版本鏡像,通過鏡像倉庫對新版本鏡像進行管理,從而完成持容器的續(xù)集成和部署。

? 整體應(yīng)用測試完成后,項目組通過投產(chǎn)版本交付管理平臺,將容器鏡像、參數(shù)配置等信息交付生產(chǎn)環(huán)境。

? 生產(chǎn)環(huán)境應(yīng)用管理員從投產(chǎn)版本管理系統(tǒng)中把指定應(yīng)用包轉(zhuǎn)換成容器鏡像,并根據(jù)應(yīng)用的版本號設(shè)置容器鏡像的版本標簽。

? 生產(chǎn)環(huán)境應(yīng)用管理員把容器鏡像上傳到CaaS平臺的鏡像倉庫中。

? 生產(chǎn)環(huán)境應(yīng)用管理員登錄CaaS平臺,并根據(jù)應(yīng)用發(fā)布要求從相應(yīng)的鏡像發(fā)布應(yīng)用。

2.3.2 自動彈性伸縮

自動彈性伸縮,即CaaS平臺能夠根據(jù)應(yīng)用管理員設(shè)置的應(yīng)用彈性伸縮策略自動調(diào)整應(yīng)用容器實例數(shù),業(yè)務(wù)流程說明如下:

? 應(yīng)用管理員在CaaS平臺創(chuàng)建指定應(yīng)用的彈性伸縮策略。

? CaaS平臺實時監(jiān)控指定應(yīng)用的運行狀態(tài),并檢查是否匹配彈性伸縮策略。

? 當指定應(yīng)用的運行狀態(tài)符合預(yù)定義的彈性伸縮策略時,CaaS平臺自動根據(jù)策略調(diào)整應(yīng)用的容器實例數(shù)。

? CaaS平臺會自動根據(jù)應(yīng)用容器的部署架構(gòu)調(diào)整對應(yīng)負載均衡的分發(fā)配置。

2.3.3 應(yīng)用水平擴展

應(yīng)用水平擴展,即應(yīng)用管理員能夠人工調(diào)整指定應(yīng)用容器實例數(shù),業(yè)務(wù)流程說明如下:

? 應(yīng)用管理員通過某種方式,比如查看應(yīng)用狀態(tài)日報告,需要調(diào)整指定應(yīng)用的容器實例數(shù)。

? 應(yīng)用管理員在CaaS平臺上修改指定應(yīng)用的容器實例數(shù)。

? CaaS平臺根據(jù)設(shè)置,動態(tài)調(diào)整運營實例數(shù)。

? CaaS平臺會自動根據(jù)應(yīng)用容器的部署架構(gòu)調(diào)整對應(yīng)負載均衡的分發(fā)配置。

2.3.4 擴充集群節(jié)點

擴容集群節(jié)點,即CaaS平臺管理員需要向CaaS平臺的容器資源池增加主機節(jié)點,業(yè)務(wù)流程說明如下:

? CaaS平臺管理員在目標主機上安裝和容器資源池相同版本的Docker引擎。

? 登錄CaaS平臺,獲得帶密鑰的平臺接入主機命令。

? 在目標主機上運行該命令,完成主機接入。

2.4 相關(guān)系統(tǒng)配套改造要求

CaaS平臺需要相關(guān)應(yīng)用系統(tǒng)(如網(wǎng)上銀行、企業(yè)客戶信息整合系統(tǒng)(ECIF)、信用卡等)配合完成容器化改造。此外對 “集中監(jiān)控系統(tǒng)”和“開發(fā)測試環(huán)境云計算管理平臺”也有相應(yīng)的改造要求。

2.4.1 業(yè)務(wù)系統(tǒng)容器化封裝

應(yīng)用的封裝是把應(yīng)用運行所需的環(huán)境和應(yīng)用一起打包成為一個鏡像,該鏡像可在任意主機上無差別的運行,無需考慮應(yīng)用運行所依賴的環(huán)境問題。業(yè)務(wù)應(yīng)用系統(tǒng)容器化封裝的過程是將傳統(tǒng)應(yīng)用轉(zhuǎn)變?yōu)榭蛇\行在容器平臺上的Docker鏡像的過程,主要包括三部分內(nèi)容:

(1) 準備基礎(chǔ)鏡像:應(yīng)用鏡像需要從某個基礎(chǔ)鏡像的基礎(chǔ)上衍生出來,基礎(chǔ)鏡像里面可以包括一些普遍適用的軟件包或者系統(tǒng),比如Java運行時環(huán)境或者Tomcat Web服務(wù)器。

(2) 準備 Dockerfile:是一個描述文件,描述了鏡像打包的完整過程,比如基礎(chǔ)鏡像,在基礎(chǔ)鏡像上運行的命令等。

(3) 根據(jù)應(yīng)用包和Dockerfile構(gòu)建鏡像,并上傳CaaS平臺鏡像倉庫。

2.4.2 業(yè)務(wù)系統(tǒng)的日志

由于業(yè)務(wù)應(yīng)用運行在CaaS平臺后,部署架構(gòu)是動態(tài)的,而且通常情況下會通過多個容器實例共同支撐業(yè)務(wù)負載,因此傳統(tǒng)的應(yīng)用日志管理方式并不能很好地適應(yīng)CaaS平臺的場景。CaaS平臺上線后,業(yè)務(wù)應(yīng)用會采用以下方式進行日志管理:

? 將主機中一個固定的目錄作為容器卷掛入業(yè)務(wù)容器。

? 業(yè)務(wù)應(yīng)用會在卷根目錄建立下述格式的日志文件夾:“應(yīng)用名”/“容器ID”/“日志文件名”。

2.4.3 開發(fā)測試環(huán)境應(yīng)用集中監(jiān)控系統(tǒng)

考慮未來開發(fā)測試環(huán)境中運行的應(yīng)用對應(yīng)用日志的監(jiān)控需求,后續(xù)“集中監(jiān)控系統(tǒng)”需要在開發(fā)測試環(huán)境中部署,并與開發(fā)測試云中的CaaS平臺對接。

2.4.4 開發(fā)測試環(huán)境云計算管理平臺

CaaS平臺的一些預(yù)制容器編排模版,比如DevOps、微服務(wù)組件模版,可以作為“開發(fā)測試環(huán)境云計算管理平臺”之上可被申請的服務(wù),實現(xiàn)CaaS平臺服務(wù)的自助申請和自動獲取。因此,“開發(fā)測試環(huán)境云計算管理平臺”的服務(wù)目錄需要能夠補充CaaS平臺服務(wù),并通過集成CaaS平臺API實現(xiàn)服務(wù)自動供給。

3 技術(shù)架構(gòu)

3.1 技術(shù)路線

該CaaS平臺所涉及的開發(fā)框架及工具如下:

? 開發(fā)語言:Golang、Ruby、NodeJS、Python、HTML5、Shell等。

? 編譯工具:Makefile、Gulp。

? 前端框架:AngularJS。

? 后端框架:Python、Flask。

? 源代碼管理工具:Git、SVN。

? 研發(fā)項目管理及缺陷管理工具:Jira。

? 容器引擎:Docker。

? 容器集群(資源池)管理、編排工具:Swarm、Kubernetes。

? 自動化測試框架:Pyunit、Karma、Selenium。

在容器編排工具的選擇上,現(xiàn)在業(yè)內(nèi)比較成熟的技術(shù)方案是Docker Swarm、Google Kubernetes和Mesos三者。三者具有各自優(yōu)、劣勢,具體比較如表2所示。

表2 主流容器編排工具優(yōu)、劣勢比較

綜上所述,該CaaS平臺可使用Swarm作為容器資源池的集群管理工具,而Kubernetes工具則可用于容器的調(diào)度。

3.2 物理架構(gòu)

3.2.1 開發(fā)測試環(huán)境

開發(fā)測試環(huán)境CaaS平臺物理架構(gòu)如圖12所示。

圖12 開發(fā)測試環(huán)境CaaS平臺物理架構(gòu)

圖12中“集中監(jiān)控系統(tǒng)(Zabbix)”為現(xiàn)有系統(tǒng),“開發(fā)測試云計算管理平臺”和“應(yīng)用監(jiān)控系統(tǒng)”為需配合改造系統(tǒng),其余為新建系統(tǒng):

1) CaaS平臺由應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器、鏡像倉庫、控制節(jié)點、負載均衡設(shè)備組成。容器資源池應(yīng)滿足開發(fā)、測試、投產(chǎn)驗證的環(huán)境需求。

2) 平臺通過直連業(yè)務(wù)網(wǎng)段“統(tǒng)一認證系統(tǒng)”實現(xiàn)用戶身份認證,并使用“集中監(jiān)控系統(tǒng)”對平臺及資源池宿主機狀態(tài)進行監(jiān)控,容器及容器的應(yīng)用日志均由應(yīng)用監(jiān)控系統(tǒng)進行監(jiān)控。

3) 開發(fā)測試環(huán)境CaaS平臺通過與“開發(fā)測試環(huán)境云計算管理平臺”集成實現(xiàn) CaaS服務(wù)申請,并與持續(xù)集成服務(wù)器完成一鍵開發(fā)-測試-部署功能。

4) 應(yīng)用開發(fā)完成后,通過“投產(chǎn)版本交付平臺”交付,交付內(nèi)容包括:容器鏡像、應(yīng)用模板、參數(shù)配置等信息。

3.2.2 生產(chǎn)環(huán)境

生產(chǎn)環(huán)境CaaS平臺物理架構(gòu)如圖13所示。

圖13 生產(chǎn)環(huán)境CaaS平臺物理架構(gòu)

1) CaaS平臺由應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器、鏡像倉庫、控制節(jié)點、負載均衡設(shè)備組成,平臺部署于生產(chǎn)管理網(wǎng)段,并分別在業(yè)務(wù)網(wǎng)、信用卡DMZ、網(wǎng)銀APP網(wǎng)段各部署一個容器資源池。

2) 平臺通過ESB與統(tǒng)一認證系統(tǒng)進行交互,實現(xiàn)用戶身份認證,并使用OVO對平臺及資源池宿主機狀態(tài)進行監(jiān)控,應(yīng)用狀態(tài)、日志及容器狀態(tài)、日志均由應(yīng)用監(jiān)控系統(tǒng)進行監(jiān)控。系統(tǒng)日志由日志管理平臺進行收集。

3) 生產(chǎn)環(huán)境使用備份平臺對容器鏡像進行備份,數(shù)據(jù)庫通過導(dǎo)出到本地的方式使用備份平臺進行備份。

4) CaaS平臺整體作為應(yīng)用,與配置管理平臺進行對接,實現(xiàn)配置管理。

3.3 系統(tǒng)軟件

CaaS平臺所涉及的系統(tǒng)軟件包括操作系統(tǒng)、數(shù)據(jù)庫、中間件及其他通用工具軟件(如規(guī)則引擎、工作流等),包括產(chǎn)品和版本號,具體如表3所示。

表3 CaaS平臺所涉及系統(tǒng)軟件

續(xù)表3

開發(fā)測試環(huán)境與生產(chǎn)環(huán)境所部屬的軟件除所使用許可數(shù)量不同外,其版本相一致。另外,為節(jié)約資源成本,開發(fā)測試環(huán)境的監(jiān)控軟件均采用開源的Zabbix。

3.4 高可用設(shè)計

CaaS平臺應(yīng)用服務(wù)器、計算節(jié)點通過硬件實現(xiàn)負載均衡,數(shù)據(jù)庫、鏡像服務(wù)器通過主備機實現(xiàn)高可用。

3.5 運維監(jiān)控

開發(fā)測試環(huán)境使用Zabbix服務(wù)器對計算節(jié)點宿主機進行監(jiān)控,應(yīng)用狀態(tài)、日志及容器狀態(tài),以及容器的應(yīng)用日志均由應(yīng)用監(jiān)控系統(tǒng)進行監(jiān)控。

生產(chǎn)環(huán)境中使用OVO對CASS平臺進行監(jiān)控,平臺通過ESB與統(tǒng)一認證系統(tǒng)進行交互,實現(xiàn)用戶身份認證,并使用OVO對平臺及資源池宿主機狀態(tài)進行監(jiān)控,應(yīng)用狀態(tài)、日志及容器狀態(tài)以及容器的應(yīng)用日志均由應(yīng)用監(jiān)控系統(tǒng)進行監(jiān)控,系統(tǒng)日志由日志管理平臺進行收集。

4 結(jié) 語

該CaaS平臺架構(gòu)中引入并集成了多種第三方開源技術(shù),由于開源技術(shù)具有迭代速度快、缺乏原公司支持等特點,因此針對容器化平臺中使用的第三方開源技術(shù)需要考慮技術(shù)支持問題。一方面是衡量項目組對于這些引入技術(shù)的掌握程度,另一方面還要考慮是否需要引入第三方技術(shù)支持公司對相應(yīng)技術(shù)進行有效支持和維護。

引入容器化平臺可以使得應(yīng)用具有持續(xù)集成特性,即應(yīng)用在開發(fā)過程中,開發(fā)測試人員可以在測試環(huán)境中盡量模擬真實軟件架構(gòu),以便盡早發(fā)現(xiàn)潛在的問題,提高開發(fā)測試的效率。另外,平臺的自動部署功能將實現(xiàn)秒級自動完成系統(tǒng)的部署,提高系統(tǒng)部署及升級的效率,還支持平臺容器的組件以及非容器組件的統(tǒng)一部署。這些新特性的引入,將改變原有的開發(fā)、測試及部署的流程,因此對于新流程的規(guī)范管理和協(xié)調(diào)將是容器化平臺建設(shè)的又一重點任務(wù)。

猜你喜歡
系統(tǒng)管理
棗前期管理再好,后期管不好,前功盡棄
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
加強土木工程造價的控制與管理
如何加強土木工程造價的控制與管理
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
“這下管理創(chuàng)新了!等7則
雜文月刊(2016年1期)2016-02-11 10:35:51
主站蜘蛛池模板: 午夜精品影院| a色毛片免费视频| 成人国产精品视频频| 欧美国产日韩另类| 国产午夜无码片在线观看网站| 伊人久久大香线蕉影院| 欧美日韩一区二区三区四区在线观看| 国产精品极品美女自在线| 四虎影院国产| 国产成人高清精品免费| 呦女精品网站| 丰满人妻一区二区三区视频| 亚洲欧洲日产国产无码AV| 亚洲精品在线91| 日韩一级毛一欧美一国产| 亚洲精品在线观看91| 欧美日韩国产在线播放| 激情综合激情| 国产精品白浆无码流出在线看| 国产网友愉拍精品| 亚洲日本中文字幕天堂网| 欧美日本在线播放| 国产精品自在在线午夜区app| 亚洲精品片911| 成人在线视频一区| 亚洲第一中文字幕| 久久综合丝袜长腿丝袜| 欧美成在线视频| 国产午夜福利亚洲第一| 日韩av资源在线| av一区二区三区高清久久| 国产无码网站在线观看| 一级毛片基地| 99视频在线免费| 人妻丰满熟妇AV无码区| 欧美成人手机在线观看网址| 国产成人久久综合777777麻豆| 五月天久久婷婷| 国产一级毛片高清完整视频版| 午夜啪啪福利| 国内视频精品| 谁有在线观看日韩亚洲最新视频| 高清无码一本到东京热| 欧美性精品| 亚洲无码久久久久| 国产一区成人| 爱爱影院18禁免费| 欧美另类视频一区二区三区| 91久久国产综合精品| 亚洲国产成人无码AV在线影院L| 天天爽免费视频| 久久不卡精品| 久久99国产乱子伦精品免| 欧美色图第一页| 欧美成人午夜在线全部免费| 亚洲一区无码在线| 污网站免费在线观看| 手机精品视频在线观看免费| 亚洲精品视频免费看| 秋霞午夜国产精品成人片| 欧美日韩国产在线播放| 三上悠亚精品二区在线观看| 在线欧美日韩国产| 99久久无色码中文字幕| 亚欧美国产综合| 日韩a级毛片| 97青青青国产在线播放| 亚洲av成人无码网站在线观看| 福利在线不卡| 国产美女精品在线| 99久久性生片| 无码精品国产VA在线观看DVD| 国产精品99r8在线观看| 欧美国产菊爆免费观看 | 九色视频线上播放| 亚洲精品大秀视频| 国产精品一区在线麻豆| 日韩经典精品无码一区二区| 国产H片无码不卡在线视频| 国产区网址| 人妻丝袜无码视频| 国产成人AV综合久久|