亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2018-11-30 01:52:06
        關(guān)鍵詞:測(cè)試環(huán)境插件鏡像

        張 琦

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

        0 引 言

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

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

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

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

        1 術(shù)語說明

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

        表1 術(shù)語說明

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        2.2.1 管理平臺(tái)組件

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

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

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

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

        ? 進(jìn)行容器管理操作,比如啟動(dòng)、停止等基本操作。

        ? 進(jìn)行容器的部署和配置。

        2) 主機(jī)管理 提供平臺(tái)集群的主機(jī)管理能力,包括:

        ? 接入主機(jī)的流程管理。

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

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

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

        ? 進(jìn)行主機(jī)管理操作,比如打標(biāo)簽、更改運(yùn)行狀態(tài)等。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        2.2.2 插件模塊

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

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

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

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

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

        2) 插件管理 CaaS平臺(tái)支持通過插件機(jī)制擴(kuò)展平臺(tái)功能,在不涉及修改平臺(tái)代碼的前提下,通過插件提供一致的平臺(tái)操作體驗(yàn),包括:

        ? 插件的列表和展示。

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

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

        ? 自定義實(shí)例擴(kuò)展策略。

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

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

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

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

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

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

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

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

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

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

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

        ? 插件通過調(diào)用CaaS平臺(tái)API對(duì)服務(wù)進(jìn)行展示、申請(qǐng)和管理。

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

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

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

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

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

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

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

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

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

        2.2.3 負(fù)載均衡

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

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

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

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

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

        ? LVS 分發(fā)請(qǐng)求至CaaS平臺(tái)的HAProxy 服務(wù)。

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

        2.2.4 監(jiān)控組件

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

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

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

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

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

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

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

        ? 支持自定義靈活的告警策略,允許多個(gè)告警策略同時(shí)生效。

        ? 根據(jù)容器運(yùn)行數(shù)據(jù)自動(dòng)檢測(cè)告警策略匹配程度。

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

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

        2.2.5 容器資源池

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

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

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

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

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

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

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

        ? 對(duì)主機(jī)的存儲(chǔ)、網(wǎng)絡(luò)等資源進(jìn)行編排。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        2.3.2 自動(dòng)彈性伸縮

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

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

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

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

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

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

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

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

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

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

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

        2.3.4 擴(kuò)充集群節(jié)點(diǎn)

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

        ? CaaS平臺(tái)管理員在目標(biāo)主機(jī)上安裝和容器資源池相同版本的Docker引擎。

        ? 登錄CaaS平臺(tái),獲得帶密鑰的平臺(tái)接入主機(jī)命令。

        ? 在目標(biāo)主機(jī)上運(yùn)行該命令,完成主機(jī)接入。

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

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

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

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

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

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

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

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

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

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

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

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

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

        2.4.4 開發(fā)測(cè)試環(huán)境云計(jì)算管理平臺(tái)

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

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

        3.1 技術(shù)路線

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

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

        ? 編譯工具:Makefile、Gulp。

        ? 前端框架:AngularJS。

        ? 后端框架:Python、Flask。

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

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

        ? 容器引擎:Docker。

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

        ? 自動(dòng)化測(cè)試框架:Pyunit、Karma、Selenium。

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

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

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

        3.2 物理架構(gòu)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        4) CaaS平臺(tái)整體作為應(yīng)用,與配置管理平臺(tái)進(jìn)行對(duì)接,實(shí)現(xiàn)配置管理。

        3.3 系統(tǒng)軟件

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

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

        續(xù)表3

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

        3.4 高可用設(shè)計(jì)

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

        3.5 運(yùn)維監(jiān)控

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

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

        4 結(jié) 語

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

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

        猜你喜歡
        測(cè)試環(huán)境插件鏡像
        全數(shù)字仿真測(cè)試環(huán)境在航天軟件測(cè)試中的應(yīng)用研究
        鏡像
        自編插件完善App Inventor與樂高機(jī)器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        雷達(dá)航跡處理測(cè)試環(huán)境構(gòu)建方法研究
        科技視界(2019年10期)2019-09-02 03:22:27
        網(wǎng)絡(luò)設(shè)備自動(dòng)化測(cè)試設(shè)計(jì)與實(shí)現(xiàn)
        鏡像
        小康(2018年23期)2018-08-23 06:18:52
        MapWindowGIS插件機(jī)制及應(yīng)用
        鏡像
        小康(2015年4期)2015-03-31 14:57:40
        鏡像
        小康(2015年6期)2015-03-26 14:44:27
        負(fù)離子紡織品檢測(cè)方法分析
        青青草视频华人绿色在线| 免费超爽大片黄| 三级在线看中文字幕完整版 | 91精品国产色综合久久不卡蜜| 少妇激情一区二区三区久久大香香| 穿着白丝啪啪的av网站| 白丝兔女郎m开腿sm调教室| 国产精品厕所| 日韩精品一区二区三区中文9| 手机在线播放av网址| 乱子伦在线观看| 国产精品国产三级农村妇女| 老熟妇高潮av一区二区三区啪啪| 久久精品国产亚洲不av麻豆| 天堂av中文在线官网 | av国产传媒精品免费| 厨房玩丰满人妻hd完整版视频| 国产对白刺激在线观看| 久久久亚洲精品蜜臀av| 中文字幕一区二区三区的| 中文字幕被公侵犯的漂亮人妻| 伊人久久综在合线亚洲不卡| 蜜臀一区二区av天堂| 久久精品国产久精国产爱| 成人无码免费一区二区三区| 久久亚洲av成人无码软件| 精品成人av人一区二区三区| 无码人妻丰满熟妇啪啪网站| 亚洲h视频| 国产大学生自拍三级视频| 亚洲人成网77777色在线播放| 国产人妻精品一区二区三区不卡 | 久久精品国产亚洲片| 亚洲国产精品久久婷婷| 久久久久成人片免费观看蜜芽| 中字无码av电影在线观看网站| 青青草成人免费播放视频| 又大又粗欧美黑人aaaaa片| 精品乱码卡1卡2卡3免费开放| 免费观看成人稀缺视频在线播放| 国产婷婷色一区二区三区深爱网|