• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Docker的CaaS管理平臺架構研究與設計

      2018-11-30 01:52:06
      計算機應用與軟件 2018年11期
      關鍵詞:測試環(huán)境插件鏡像

      張 琦

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

      0 引 言

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

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

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

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

      1 術語說明

      本文中所涉及的相關術語解釋說明如表1所示。

      表1 術語說明

      2 架構設計

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

      2.1 總體架構設計

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

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

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

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

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

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

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

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

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

      CaaS平臺中的“平臺管理”組件提供容器管理平臺能力,在容器集群管理的基礎上構建了應用管理、租戶權限、鏡像管理等功能。

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

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

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

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

      CaaS 平臺的應用狀態(tài)異常信息需要能夠對接到行內的“集中監(jiān)控系統(tǒng)系統(tǒng)”系統(tǒng),并在“集中監(jiān)控系統(tǒng)系統(tǒng)”之上進行統(tǒng)一告警管理。

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

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

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

      2.2 應用功能架構

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

      圖3 CaaS平臺應用功能架構

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

      2.2.1 管理平臺組件

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

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

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

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

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

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

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

      ? 接入主機的流程管理。

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

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

      ? 和主機相關的存儲和網(wǎng)絡管理。

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

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

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

      ? 支持通過鏡像空間來分組顯示,并能夠設置訪問權限。

      ? 支持通過應用代碼或者上傳應用包構建鏡像。

      ? 支持前面的鏡像管理,包括版本、描述、訪問權限、自動構建等。

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

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

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

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

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

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

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

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

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

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

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

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

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

      ? 應用模版的權限控制,支持指定模版對不同租戶的訪問權限。

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

      ? 應用模版的導入,支持批量導入模版描述文件。

      2.2.2 插件模塊

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

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

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

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

      圖4 插件機制架構

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

      ? 插件的列表和展示。

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

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

      ? 自定義實例擴展策略。

      ? 自動監(jiān)控應用容器的運行狀態(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ù)包能夠自動的導入生產(chǎn)環(huán)境,并通過自動化的環(huán)境配置更新,降低人為修改配置的出錯風險。其架構設計如圖5所示。

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

      ? 平臺能夠導出指定的應用模版以及涉及到的鏡像為投產(chǎn)數(shù)據(jù)包。

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

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

      ? 在導入模版和鏡像的過程中自動更新相關的鏡像信息。

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

      圖6 服務目錄插件架構

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

      ? 插件通過調用CaaS平臺API對服務進行展示、申請和管理。

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

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

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

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

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

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

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

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

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

      2.2.3 負載均衡

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

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

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

      圖8 LVS架構設計

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

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

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

      2.2.4 監(jiān)控組件

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

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

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

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

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

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

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

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

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

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

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

      2.2.5 容器資源池

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

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

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

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

      ? 能夠在容器調度的同時匹配相關的網(wǎng)絡和存儲資源。

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

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

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

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

      2.3 主要業(yè)務流程

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

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

      圖10 CaaS平臺應用編排示意

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

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

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

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

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

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

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

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

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

      2.3.2 自動彈性伸縮

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

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

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

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

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

      2.3.3 應用水平擴展

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

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

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

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

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

      2.3.4 擴充集群節(jié)點

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      3 技術架構

      3.1 技術路線

      該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è)內比較成熟的技術方案是Docker Swarm、Google Kubernetes和Mesos三者。三者具有各自優(yōu)、劣勢,具體比較如表2所示。

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

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

      3.2 物理架構

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      4) CaaS平臺整體作為應用,與配置管理平臺進行對接,實現(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 高可用設計

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

      3.5 運維監(jiān)控

      開發(fā)測試環(huán)境使用Zabbix服務器對計算節(jié)點宿主機進行監(jiān)控,應用狀態(tài)、日志及容器狀態(tài),以及容器的應用日志均由應用監(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)控,應用狀態(tài)、日志及容器狀態(tài)以及容器的應用日志均由應用監(jiān)控系統(tǒng)進行監(jiān)控,系統(tǒng)日志由日志管理平臺進行收集。

      4 結 語

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

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

      猜你喜歡
      測試環(huán)境插件鏡像
      全數(shù)字仿真測試環(huán)境在航天軟件測試中的應用研究
      鏡像
      當代黨員(2020年20期)2020-11-06 04:17:52
      自編插件完善App Inventor與樂高機器人通信
      電子制作(2019年22期)2020-01-14 03:16:34
      雷達航跡處理測試環(huán)境構建方法研究
      科技視界(2019年10期)2019-09-02 03:22:27
      網(wǎng)絡設備自動化測試設計與實現(xiàn)
      鏡像
      小康(2018年23期)2018-08-23 06:18:52
      MapWindowGIS插件機制及應用
      鏡像
      小康(2015年4期)2015-03-31 14:57:40
      鏡像
      小康(2015年6期)2015-03-26 14:44:27
      負離子紡織品檢測方法分析
      中國纖檢(2015年4期)2015-03-13 18:25:35
      平和县| 鄂伦春自治旗| 蕉岭县| 嘉峪关市| 甘德县| 扎鲁特旗| 呼伦贝尔市| 巴塘县| 榆林市| 平定县| 辽宁省| 木兰县| 辽源市| 额济纳旗| 综艺| 吴堡县| 青川县| 新田县| 小金县| 合川市| 邛崃市| 永城市| 洪江市| 翁源县| 大埔县| 奎屯市| 铜梁县| 太湖县| 鄂温| 芒康县| 蒙城县| 达日县| 金湖县| 宁蒗| 奉贤区| 班戈县| 紫云| 思茅市| 徐闻县| 德庆县| 邵阳市|