国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

容器管理平臺測試標準研究與應用

2018-01-15 01:42邱紅飛黃春光
現代計算機 2017年34期
關鍵詞:鏡像容器部署

邱紅飛,黃春光

(中國電信股份有限公司廣東研究院,廣州510360)

0 引言

按照云計算的服務模型劃分,云計算可分為軟件即服務(SaaS)、平臺即服務(PaaS)、基礎設施即服務(IaaS)。目前,在IaaS層上的虛擬機技術是最主流的虛擬化技術,它實現了極高的隔離度和標準化,但是虛擬機占用了宿主機的資源,同時虛擬機本身的啟動速度比較緩慢。隨著云平臺研究的進展,PaaS層和IaaS層日趨融合,其核心價值為加速應用、彈性伸縮、動態(tài)編排、高效運維,代表性的是容器技術的推廣應用。容器也是一種虛擬化技術,Docker容器引擎及其上的容器管理平臺使得云平臺構建簡單高效,容器相關技術的優(yōu)勢主要體現在下列四個方面。

(1)應用的快熟部署

在傳統的基礎設施環(huán)境下,容易造成應用打包的依賴關系遺漏以及開發(fā)測試環(huán)境不一致問題。通過容器鏡像方式,可以把鏡像分成基礎鏡像包、應用鏡像包、鏡像庫等層次,再通過dockerfile構建鏡像包,最后發(fā)布鏡像包之后,保持了開發(fā)和測試環(huán)境一致性的部署。

(2)統一資源管理和調度

在傳統虛擬機環(huán)境下,IaaS雖然通過虛擬機的技術實現物理資源的池化,但往往還是靜態(tài)獨占資源,并不能很好的解決共享和資源利用率的問題。容器管理平臺能夠跟IaaS層對接,屏蔽直接對IaaS資源的獲取,通過容器應用按需的方式,進一步加大平臺資源的使用率;同時容器具備資源隔離的能力,可以提高應用在宿主機上的部署密度,提升資源利用率。

(3)平臺彈性伸縮

在傳統虛擬機環(huán)境下,在流量快速上升和下降時,短時間內完成應用的擴容和收縮都是很困難的事情。容器管理平臺可以滿足業(yè)務突發(fā)高峰時應用的處理能力要求,實現對業(yè)務動態(tài)變化的敏捷響應。容器管理平臺有很強的彈性,支持手動和自動的擴容方式,自動方式可以根據設定的動態(tài)伸縮指標,完成應用的快速擴容和縮減。

(4)應用升級和回滾

傳統模式下應用軟件的升級,除了應用軟件本身的升級,還會包含依賴軟件包的升級。由于依賴關系的復雜性,所以在傳統的環(huán)境下回滾一般比較困難。通過使用容器技術,應用軟件升級時,制作一個新的容器鏡像,升級過程就是先部署一個新的容器,然后停掉舊的容器,再啟動新容器?;貪L過程就是把新的容器停掉,啟動舊的容器,整個過程相對簡單。

本文旨在研究電信企業(yè)容器管理平臺的測試方法,包括性能、可擴展性、高可用性、可移植性等技術指標,從而真正建立一套完整的容器管理平臺的測試標準,為企業(yè)內選型和采購提供依據。

1 主流產品介紹

(1)容器技術

利用應用容器引擎,開發(fā)者可以打包應用以及依賴包到一個可移植的容器中,然后發(fā)布到電信的應用Linux服務器上,容器使用沙箱機制,相互之間沒有接口。容器運行后幾乎沒有性能開銷,可以很容易地在機器和數據中心中運行。容器將單一應用程序劃分成一組小的服務,服務之間互相協調、互相配合,可針對各種特定生產需求而定制個性化的功能。Docker是dotCloud開源的一個基于LXC(Linux Container)的應用容器引擎。Docker擴展了LXC特性并使用高層的API,利用輕量級虛擬化技術進行資源隔離,讓開發(fā)者可以將應用程序、依賴的運行庫文件打包,然后發(fā)布到任何系統為Linux的機器上。

(2)容器管理平臺

容器管理平臺實現業(yè)務的快速彈性伸縮,提升資源使用效率,滿足業(yè)務突發(fā)高峰時系統的處理能力要求,實現對業(yè)務動態(tài)變化的敏捷響應。容器管理平臺,具有強大的集群管理和應用調度能力,應用支撐能力,包括服務注冊和服務發(fā)現機制,內建負載均衡器,強大的故障發(fā)現和自我修復能力,服務滾動升級和在線擴容能力。目前有兩種比較主流和應用廣泛的容器管理平臺,Kubernetes和 Mesos。

Kubernetes:遵從Apache2.0開源協議,是為Docker設計的容器編排技術。生態(tài)鏈完善,文檔齊全,發(fā)展速度迅猛。國內外很多大型互聯網公司,都基于Kubernetes構建了容器云系統。Kubernetes是為Docker而設計,能夠很好的和Docker技術進行結合。并且生態(tài)圈成熟,發(fā)展迅速,因此,在容器云編排方面,首選Kubernetes,基本能夠滿足大多數的應用場景。

Mesos:遵從Apache2.0開源協議,推出時間較早。產品成熟,在國內外很多大型互聯網公司有很多成功應用案例。產品技術棧復雜,靈活性不高。要在已經存在的工作任務(Hadoop、Spark等)上做容器化,推薦使用Mesos。

2 現有開發(fā)測試存在問題

傳統的開發(fā)測試部署包括以下部分,如圖1:

圖1 傳統的開發(fā)測試部署

傳統的開發(fā)測試部署過程存在如下幾個問題:

(1)對比容器,傳統的物理機和虛擬機部署的資源利用效率都比較低;

(2)物理機多應用在進程空間、CPU資源、磁盤無法有效隔離;

(3)對比容器,虛擬機的密度較低,無法部署較多的應用;

(4)物理機和虛擬機的測試和版本管理復雜,測試包和生產包可能存在不一致等問題;

(5)由于需要重新搭建環(huán)境及部署操作系統,虛擬機的遷移成本高;

(6)對比容器,傳統虛擬機的空間占用大、啟動速度慢,另外管理上也比較復雜。

3 容器的測試內容

現有的開發(fā)測試部署包括以下部分,如圖2:

圖2 基于容器的開發(fā)測試部署

開發(fā)階段從倉庫獲取標準鏡像,開發(fā)完成后將結果鏡像保存在鏡像倉庫中;測試階段從鏡像倉庫中獲取開發(fā)完成的鏡像,并進行驗證測試,測試通過后提交鏡像至倉庫;生產階段獲取最新的鏡像進行部署,同時對原有鏡像進行備份處理。

比較傳統的開發(fā)測試部署流程和以容器為基礎的開發(fā)測試部署流程,現有的開發(fā)部署存在下列優(yōu)點:

①簡化了環(huán)境搭建的步驟,采用容器技術后,不需要自己安裝操作系統,安裝各種中間件軟件和依賴庫;

②提高資源利用率,由于容器技術隔離性好,在測試環(huán)境和生產環(huán)境中可以部署更多的應用;

③提高了開發(fā)質量和交付速度,采用容器技術后,測試階段完成的鏡像文件可以放到生產環(huán)境中運行,因為鏡像本身就帶有自己的依賴文件和環(huán)境參數,不需要進行修改和調整。

由于容器技術在開發(fā)測試部署中優(yōu)點,本文從容器管理平臺的操作易用性、集群、可伸縮、可擴展、高可用等功能和性能要求來制定的一個基于電信系統平臺的容器測試技術規(guī)范,具體內容如下:

(1)性能指標

①容器網絡能力:測試使用容器時,容器同宿主機之間訪問請求的性能,同不使用容器時進行對比檢查;測試使用容器時,跨宿主機容器之間訪問請求的性能,同不使用容器時進行對比檢查。

②容器應用并發(fā)訪問測試:容器的并發(fā)訪問性能達到性能指標要求,測試并發(fā) 100,200,300,400,500個用戶,對比系統吞吐量TPS(Transaction Per Second)測試結果。

(2)可用性測試

①容器應用的高可用性:支持容器應用的集群高可用部署;支持容器應用的故障恢復機制。

②容器管理平臺的高可用性:管理平臺故障,不影響業(yè)務應用的正常運行;管理平臺支持高可用部署。

③鏡像倉庫的高可用性:鏡像倉庫支持集群部署,同時容器鏡像支持多副本備份,存儲和磁盤故障可快速恢復。

(3)彈性伸縮

①應用手動擴縮容:支持管理員根據業(yè)務的實際情況,手動進行應用的擴縮容。

②應用自動擴縮容:支持自動擴縮容的機制,支持CPU、MEM等指標,以及時間周期等指標觸發(fā)自動擴縮容機制。

(4)可維護性

①容器監(jiān)控管理:支持容器應用以及所在宿主機的各項指標的監(jiān)控,包括CPU、MEM、網絡、磁盤等。

②告警管理:支持根據監(jiān)控的關鍵指標設置告警的規(guī)則和閾值,支持告警的上報和查詢。

③日志管理:支持容器日志以及應用業(yè)務日志的采集和匯總,提供容器統一日志查詢機制。

(5)開放性

①API開放能力:能夠提供北向API,根據應用場景調用容器管理平臺的API完成管理操作。

(6)安全性

①用戶管理:提供用戶注冊和審批等用戶管理能力。

②權限管理:提供基于角色的權限管理能力。

③資源隔離:支持用戶之間資源的隔離。

(7)基礎功能指標

①鏡像倉庫

(a)鏡像上傳/下載:提供應用鏡像的上傳和下載機制,兼容 Docker Registry V2 API;

(b)鏡像版本管理:提供應用鏡像的多版本管理;

(c)鏡像權限控制:提供鏡像權限管理機制,通過權限控制鏡像的查看。

②容器生命周期管理

(a)容器應用創(chuàng)建和刪除:能夠進行創(chuàng)建容器應用和刪除容器應用;

(b)容器應用啟動和停止:能夠完成容器應用的停止然后重新啟動,刪除后列表檢查;

(c)容器應用部署和調度:應用部署時支持多種調度算法;

(d)容器應用部署后健康檢查和故障恢復:容器應用部署后支持監(jiān)控檢查的機制,當發(fā)現容器故障時,平臺負責故障容器的快速恢復。

(e)容器管理平臺和鏡像倉庫的對接:容器管理平臺在部署應用時直接從鏡像倉庫拉取鏡像進行部署。

③容器網絡和存儲

(a)跨主機容器網絡能夠互通:能夠提供支持跨宿主機的容器之間的網絡互通;

(b)容器網絡和宿主機網絡互通:支持容器和宿主機網絡的互通,容器應用和非容器應用之間的網絡互通;

(c)容器支持宿主機本地磁盤:容器支持宿主機本地磁盤掛載容器卷;

(d)容器支持網絡存儲:容器支持網絡存儲掛載容器卷。

④應用編排和管理

(a)應用編排管理:提供復雜應用編排能力,完成應用的一鍵化部署;

(b)應用配置管理:提供應用配置管理能力,針對應用的配置進行統一的管理和下發(fā);

(c)應用滾動升級:提供應用滾動升級的機制,實現應用不間斷對外提供服務,同時支持應用的版本的回退;

(d)應用負載均衡:提供應用負載均衡能力,支持應用多實例的負載均衡。

4 性能測試實施解決方案

容器性能測試包括容器網絡性能、容器應用并發(fā)訪問性能。容器網絡性能主要指容器同通宿主機之間訪問請求的性能,跨宿主機容器之間訪問請求的性能。容器應用并發(fā)訪問性能是指容器的并發(fā)訪問性能達到性能指標要求,主要是測試并發(fā)100,200,300,400,500個用戶的TPS。具體實施方案主要是部署qperf客戶端和服務端鏡像、通過編寫LoadRunner腳本來獲取系統的各項性能指標,大致的方法如下:

(1)測試數據準備

測試場景準備如表1:

表1 測試場景數據準備

(2)容器網絡性能測試過程

容器網絡性能測試的測試步驟示意圖如圖3。

①步驟1:預置集群內服務器運行容器,容器軟件、容器集群管理軟件已安裝就緒,使用qperf作為基準測試工具;

②步驟2:將qperf分別安裝部署在兩臺主機A、B,設主機A為client端,B為Server端,通過主機A向主機B請求,測試其帶寬,作為基準值Val;

③步驟3:設主機A仍為client端,將主機B系統環(huán)境與qperf一起構建為鏡像C啟動該鏡像,設為Server端,測試Client與Server的帶寬Val1;

④步驟4:設主機A系統環(huán)境與qperf一起構建為鏡像B,啟動該鏡像,并設為client端;啟動鏡像C,設為Server端,測試Client與Server的帶寬Val2。

預期的測試結果,程序運行正常,所有數據包均可正確收發(fā),Val1>=Val*80%,Val2>=Val*70%。

(3)容器應用并發(fā)訪問性能測試過程

容器應用并發(fā)訪問性能測試部署圖如圖3。

圖3 容器網絡性能布署圖

①準備壓力測試工具LoadRunner,采用鏡像A部署容器應用,準備好測試腳本。

②分別并發(fā)100、300、500用戶,壓測此容器應用查看此應用的TPS和平均響應時間。

③每次并發(fā)持續(xù)10分鐘。

④填寫 100、200、300、400、500并發(fā)的 TPS和平均響應時間。

圖4 并發(fā)訪問性能測試部署圖

5 結語

Docker是一種輕量級的虛擬化技術,相比傳統的虛擬機架構有很大優(yōu)勢,目前電信企業(yè)應用系統平臺都有采用容器技術部署各類業(yè)務系統的規(guī)劃。本文針對容器管理平臺的集群系統的部署、高可靠性、開放性、安全性、基礎功能和性能等問題,設計了測試標準和評估方法,該設計與企業(yè)應用系統相結合并得到了應用,具有很高的可靠性和效率。本文希望建立一套完整的容器管理平臺的測試標準,能夠衡量和評估不同的容器管理平臺的功能和性能。

[1]張忠琳.基于 OpenStack云平臺的 Docker應用[J].設計研究與應用,2014,35(11):73-76.

[2]伍陽.基于Docker的虛擬化技術研究[J].信息技術,2016(1):121-126.

[3]常煜芬.中間件技術研究[J].計算機應用與研究,2001,12(12)233-236.

[4]陳琳.網絡中間件的測試方法研究[J].計算機應用研究,2005,8(9)137-139.

[5]周相兵.面向服務的網構軟件中間件研究[J].計算機應用研究,2008,10(9)56-59.

[6]華為實踐小組.Docker技術入門與實踐[M].機械工業(yè)出版社,2016.

猜你喜歡
鏡像容器部署
一種基于Kubernetes的Web應用部署與配置系統
晉城:安排部署 統防統治
鏡像
部署
難以置信的事情
鏡像
液體對容器底及容器對桌面的壓力和壓強
部署“薩德”意欲何為?
取米
鏡像
申扎县| 历史| 曲阜市| 阜新| 迭部县| 淮阳县| 锦州市| 红原县| 阿荣旗| 商城县| 汉阴县| 廊坊市| 罗源县| 漳平市| 定结县| 南京市| 和林格尔县| 忻城县| 博乐市| 张家口市| 洞头县| 长岭县| 桓台县| 双流县| 贺州市| 梅河口市| 广昌县| 卢龙县| 潢川县| 墨江| 仙桃市| 历史| 闽清县| 丹巴县| 平罗县| 杭州市| 恩平市| 海南省| 新蔡县| 舟山市| 清徐县|