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

?

云應(yīng)用管理平臺的設(shè)計與實現(xiàn)

2017-06-10 17:36溫云龍
移動通信 2017年8期
關(guān)鍵詞:虛擬化

【摘 要】為了有效應(yīng)對企業(yè)內(nèi)部使用獨占式物理服務(wù)器部署Web應(yīng)用而造成硬件資源閑置和浪費的問題,提出了企業(yè)私有云的解決方案實現(xiàn)云應(yīng)用管理平臺。該平臺研究虛擬化技術(shù)管理和調(diào)度底層虛擬化資源,集成了Web應(yīng)用部署調(diào)度機制實現(xiàn)自動部署,并提出了彈性負(fù)載均衡完成多租戶場景下對虛擬資源的動態(tài)共享。通過對比試驗,平臺虛擬資源可有效替代物理資源,克服了硬件的消耗浪費并節(jié)省了成本支出。

【關(guān)鍵詞】云應(yīng)用管理平臺 虛擬化 彈性負(fù)載均衡 PaaS IaaS

doi:10.3969/j.issn.1006-1010.2017.08.014 中圖分類號:TP302 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-1010(2017)08-0069-05

引用格式:溫云龍. 云應(yīng)用管理平臺的設(shè)計與實現(xiàn)[J]. 移動通信, 2017,41(8): 69-73.

Design and Implementation of Cloud Application Management Platform

WEN Yunlong

[Abstract] In order to effectively cope with the idle and wasted hardware resource resulting from deploying Web applications due to exclusively occupying physical servers in enterprises, a solution based on enterprise private cloud to realize cloud application management platform was proposed in this paper, on which the Virtualization Technology management and the scheduling of lower-layer virtualized resources were investigated. Deployment scheduling mechanism of web application was integrated, to realize the automatic deployment. The elastic load balance was proposed to achieve the dynamic sharing of virtualized resources in the scenario of multi-tenant. Comparative experiments demonstrate the platform virtualized resource not only effectively replaces the physical resource, but also reduces the hardware consumption with the saved expenditure.

[Key words]cloud application management platform virtualization elastic load balance PaaS IaaS

1 引言

Web應(yīng)用部署常獨占物理服務(wù)器資源,配置硬件資源和應(yīng)用運行環(huán)境耗時費力;對于高并發(fā)的應(yīng)用系統(tǒng),配置昂貴的負(fù)載均衡設(shè)備存在一定的資源浪費情況。常見的企業(yè)解決方案采用虛擬機和軟件負(fù)載均衡來解決物理資源問題,使用SVN和Git代碼倉庫實現(xiàn)代碼管理,集成Jenkins實現(xiàn)代碼自動編譯構(gòu)建[1]等。在云計算PaaS(Platform as a Service,平臺即服務(wù))層面,也有開源平臺CloudFoundry[2]、OpenShift[3]和Docker[4]容器架構(gòu)解決資源共享的問題。本文采用J2EE規(guī)范開發(fā)的云應(yīng)用管理平臺(簡稱云平臺),借鑒主流開源PaaS平臺的優(yōu)點,結(jié)合代碼倉庫和持續(xù)構(gòu)建等系統(tǒng),設(shè)計并實現(xiàn)一種支持大多數(shù)Web框架的開發(fā)和部署,以適應(yīng)高并發(fā)條件下的動態(tài)負(fù)載均衡,便于二次開發(fā)的全生命周期管理平臺。

2 云平臺總體架構(gòu)

云平臺屬于PaaS范疇,總體架構(gòu)包含IaaS(Infras-tructure as a Service,基礎(chǔ)設(shè)施即服務(wù))層、接口驅(qū)動層、應(yīng)用管理和調(diào)度系統(tǒng)、服務(wù)層以及鏡像層,并結(jié)合軟件開發(fā)中主流的源代碼管理工具、缺陷管理工具等開源技術(shù),形成比較完整的企業(yè)級云平臺解決方案。

云平臺的設(shè)計需要考慮如下:

(1)接口層通過開發(fā)多個主流虛擬化平臺驅(qū)動,提供多種虛擬化平臺的對接,包括基于KVM(Kernel-based Virtual Machine,基于內(nèi)核的虛擬機)的Openstack、VMware、Microsoft的Hyper-V等。

(2)平臺組件服務(wù)化。平臺本身使用到的組件和模塊(如數(shù)據(jù)庫連接、日志管理、流量統(tǒng)計和計費、消息隊列、服務(wù)注冊中心、統(tǒng)一身份認(rèn)證等)都實現(xiàn)服務(wù)化,使得接口規(guī)范統(tǒng)一,而且開放對接第三方系統(tǒng)。

(3)兼容企業(yè)原有系統(tǒng)。本文的云平臺系統(tǒng)同時實現(xiàn)一種鏡像服務(wù),便于原有系統(tǒng)遷移到云平臺,享用平臺的動態(tài)負(fù)載均衡等特性。

3 核心組件設(shè)計和實現(xiàn)

云平臺的核心功能設(shè)計和實現(xiàn)主要包括三部分:云控制器、同步控制器和彈性負(fù)載均衡器。系統(tǒng)中多個核心組件之間相互配合,共同完成底層資源調(diào)度、集群感知、應(yīng)用倉庫管理和應(yīng)用托管的功能。

3.1 云控制器

云控制器的主要功能是充當(dāng)平臺的大腦,負(fù)責(zé)維護(hù)系統(tǒng)拓?fù)湟酝瓿筛鱾€組件部署的控制工作。同時負(fù)責(zé)云平臺和IaaS層面能力的對接,創(chuàng)建半持久化的虛擬機,形成平臺整個生態(tài)的基礎(chǔ)控制系統(tǒng)。

云控制器同時負(fù)責(zé)創(chuàng)建應(yīng)用容器的實例,需要準(zhǔn)備含有配置信息的系統(tǒng)鏡像?;贠penstack的實現(xiàn)架構(gòu)中[5],鏡像啟動后的部署通過使用Puppet自動化部署工具來實現(xiàn)[6]。當(dāng)云控制器需要在IaaS中生成一個應(yīng)用服務(wù)器實例時,一個基于基礎(chǔ)系統(tǒng)的鏡像實例就會被創(chuàng)建,實例啟動后通過自動運行腳本,運行Puppet實現(xiàn)配置文件的下載完成部署。處理流程具體如下:

(1)云控制器需要創(chuàng)建一個應(yīng)用服務(wù)實例,首先發(fā)送一個拓?fù)湮募紼LB(Elastic Load Balance,彈性負(fù)載均衡)中。

(2)ELB查詢需要創(chuàng)建的服務(wù),通知云控制器創(chuàng)建相應(yīng)數(shù)量的實例。

(3)云控制器通過需要組件服務(wù)所在的集群域,向集群域發(fā)起請求。

(4)實例創(chuàng)建后,通過Puppet發(fā)送應(yīng)用或服務(wù)程序的安裝文件和配置到實例中。

(5)同步控制器發(fā)送Web應(yīng)用的配置信息到新創(chuàng)建的實例,運行自動配置腳本進(jìn)行配置和重啟。

(6)應(yīng)用服務(wù)器實例借助Axis2 Clustering集群機制[7],實例服務(wù)器容器完成集群化。

3.2 同步控制器

同步控制中的核心組件是組件分配協(xié)調(diào)器,實現(xiàn)功能如下:

(1)監(jiān)聽源碼倉庫變更。開發(fā)者基于源代碼倉庫檢出應(yīng)用程序源代碼,開發(fā)完成后推送到代碼中央倉庫,每次的推送動作在代碼倉庫中可以檢測,并通過回調(diào)機制[8]觸發(fā)鉤子程序(Hook)。

(2)通過持續(xù)集成工具提供的接口上傳編譯通過的應(yīng)用程序包。回調(diào)機制的鉤子程序可以觸發(fā)持續(xù)集成工具對代碼倉庫的代碼進(jìn)行編譯[1,9],生成可發(fā)布的應(yīng)用程序包,如Java Web應(yīng)用程序WAR(Web Archive,Web歸檔文件)包。

(3)分發(fā)組件。持續(xù)集成工具打包形成程序包后,通過后續(xù)腳本(post-receive)觸發(fā)應(yīng)用程序包分發(fā)到應(yīng)用容器實例中。

3.3 基于租戶ID的彈性負(fù)載均衡器

彈性負(fù)載均衡器[10]主要負(fù)責(zé)的工作是實現(xiàn)請求轉(zhuǎn)發(fā)和維護(hù)實例拓?fù)浣Y(jié)構(gòu),具體如下:

(1)服務(wù)器集群的初始化指定了不同的租戶應(yīng)用分布在不同的子集群中,應(yīng)用在中央代碼倉庫中帶有租戶ID信息,當(dāng)部署到不同的應(yīng)用子集群中時,將租戶ID信息傳遞給負(fù)載均衡系統(tǒng)。當(dāng)用戶訪問應(yīng)用時,負(fù)載均衡根據(jù)提取到的目標(biāo)租戶ID,將請求轉(zhuǎn)發(fā)到特定的服務(wù)器集群中。

(2)為了實現(xiàn)彈性負(fù)載均衡,ELB維護(hù)所有應(yīng)用系統(tǒng)實例的一張拓?fù)浣Y(jié)構(gòu)圖。云控制器實現(xiàn)了應(yīng)用服務(wù)器系統(tǒng)和IaaS的對接,所使用的應(yīng)用服務(wù)器數(shù)量由底層算法自動調(diào)節(jié),在請求數(shù)達(dá)到預(yù)警值之后,自動擴展實例并將過高的請求轉(zhuǎn)發(fā)到新創(chuàng)建的應(yīng)用服務(wù)器實例中。當(dāng)系統(tǒng)的平均請求數(shù)達(dá)到預(yù)警值下限時,ELB能夠通知云控制器在IaaS環(huán)境中銷毀部分實例,回收資源。

4 成果展示和數(shù)據(jù)對比

4.1 成果展示

云平臺系統(tǒng)支持多語言的部署環(huán)境系統(tǒng),借助云平臺的應(yīng)用生命周期管理的生態(tài)和托管能力,構(gòu)建一個適合于普通用戶和開發(fā)者共同使用的PaaS領(lǐng)域的軟件系統(tǒng)。通過簡單的幾次點擊,平臺可以構(gòu)建豐富的“開箱即用”的Web應(yīng)用程序,借助云平臺的能力,僅需要在Web應(yīng)用進(jìn)行配置,便可以實現(xiàn)彈性負(fù)載均衡。

圖6和圖7展示的是基于著名開源博客系統(tǒng)WordPress制作的應(yīng)用模板部署示例,服務(wù)器采用兩路E2650 CPU+64 G內(nèi)存的戴爾R720服務(wù)器,單個應(yīng)用服務(wù)器實例僅需要雙核VCPU+2 G內(nèi)存+共享1 G帶寬,應(yīng)用的平均部署時間只需要1分鐘。

在彈性負(fù)載均衡的實驗中,設(shè)置上限門限值為200、下限門限值為30。

系統(tǒng)啟動后,在連續(xù)3個請求周期中請求數(shù)保持高位時(請求數(shù)直接表現(xiàn)為對CPU的負(fù)載),系統(tǒng)自動擴展服務(wù)實例數(shù)至2,直到請求數(shù)連續(xù)3個周期保持下限時,實例數(shù)自動收縮為1。應(yīng)用負(fù)載均衡設(shè)置如圖8所示。

4.2 數(shù)據(jù)對比

負(fù)載均衡采集請求周期設(shè)置為1分鐘,3分鐘能檢測出系統(tǒng)負(fù)載變化以完成對系統(tǒng)資源的自動創(chuàng)建和回收,而應(yīng)用的部署到上線平均完成時間在2分鐘左右。在服務(wù)器資源方面,使用虛擬機代替物理機,單臺物理機可以支撐4個應(yīng)用系統(tǒng)(單個應(yīng)用平均在線用戶150人)的部署,同時性能達(dá)到85%以上。考慮1~4個應(yīng)用部署的服務(wù)器成本,在85%性能的前提下可以節(jié)省最高75%的成本。

相比人工勞動,響應(yīng)負(fù)載變化只能通過增加和減少服務(wù)器數(shù)量水平擴展,響應(yīng)周期往往更長。部門內(nèi)部應(yīng)用負(fù)載檢測、響應(yīng)、設(shè)備到位、運行時安裝到應(yīng)用上線平均時間與原來人工相比,效率平均提升15~20倍。

5 結(jié)束語

本文通過研究虛擬化技術(shù)、開源PaaS平臺設(shè)計思想、代碼管理和持續(xù)集成的流程管理,為中小企業(yè)提供便捷可行的Web應(yīng)用生命周期管理方案。經(jīng)過開發(fā)和完善,已成功在一家中型金融證券公司試點上線,使用云平臺構(gòu)建高可用的服務(wù)接口API(Application Programming Interface,應(yīng)用程序編程接口)對外提供計費服務(wù),對內(nèi)支撐后臺開發(fā);同時采用云平臺的托管能力,部署代碼管理系統(tǒng)、博客系統(tǒng)、云盤系統(tǒng)等多個系統(tǒng),自動化程度高,可節(jié)省大量運維的勞動力,有效支撐內(nèi)部研發(fā)和辦公。目前平臺正在改良和優(yōu)化,下一步將持續(xù)研究采用更輕量級的Docker容器代替目前IaaS環(huán)境、加強平臺服務(wù)組件的監(jiān)控形成企業(yè)平臺閉環(huán)。

參考文獻(xiàn):

[1] 周瑩,歐中紅,李俊. 基于Jenkins的持續(xù)集成自動部署研究[J]. 計算機與數(shù)字工程, 2016,44(2): 267-270.

[2] CloudFoundry. Cloud Foundry Components[EB/OL]. [2017-03-27]. http://docs.cloudfoundry.org/concepts/architecture/.

[3] 彭鴻杰,邢延,李杰,等. 基于MVC的Web應(yīng)用在Openshift上的實現(xiàn)[J]. 電腦編程技巧與維護(hù), 2013(16): 61-62.

[4] 高禮,高昕. Docker技術(shù)在軟件開發(fā)過程中的應(yīng)用研究[J]. 軟件, 2016(3): 110-113.

[5] Openstack. OpenStack Virtual Machine Image Guide[EB/OL]. [2017-03-27]. https://docs.openstack.org/image-guide/.

[6] Puppet. Puppet 4.10 reference manual[EB/OL]. [2017-03-27]. https://docs.puppet.com/puppet/latest/.

[7] The Apache Software Foundation. Axis2 Clustering Support[EB/OL]. (2016-10-21). http://axis.apache.org/axis2/java/core/docs/clustering-guide.html.

[8] Jenkins+Git+Maven+Shell+Tomcat持續(xù)集成經(jīng)典教程[EB/OL]. (2015-06-11). https://segmentfault.com/a/1190000002895521.

[9] 高珺. 以持續(xù)集成方式進(jìn)行系統(tǒng)自動化部署[J]. 華東師范大學(xué)學(xué)報: 自然科學(xué)版, 2015(S1): 373-377.

[10] 溫云龍. 基于租戶感知的動態(tài)負(fù)載均衡方法及系統(tǒng): 中國, 103957246B[P/OL]. 2017-03-01[2017-03-27]. http://www.pss-system.gov.cn/sipopublicsearch/patentsearch/showSearchResult-drillSearchByViewSetting.shtml.

猜你喜歡
虛擬化
基于OpenStack虛擬化網(wǎng)絡(luò)管理平臺的設(shè)計與實現(xiàn)
對基于Docker的虛擬化技術(shù)的幾點探討
虛擬化技術(shù)在CTC/TDCS系統(tǒng)中的應(yīng)用研究
虛擬化技術(shù)在計算機技術(shù)創(chuàng)造中的應(yīng)用
淺析虛擬化技術(shù)的安全保障
H3C CAS 云計算管理平臺上虛擬化安全防護(hù)的實現(xiàn)
基于SDN的網(wǎng)絡(luò)虛擬化平臺及其隔離性研究
高速公路服務(wù)器虛擬化技術(shù)應(yīng)用與探討
基于Citrix的桌面虛擬化技術(shù)研究與應(yīng)用
存儲虛擬化還有優(yōu)勢嗎?
独山县| 社旗县| 财经| 张家港市| 鄂伦春自治旗| 瑞金市| 焦作市| 收藏| 马鞍山市| 康马县| 张北县| 西畴县| 长岭县| 保康县| 南江县| 汽车| 明星| 航空| 英吉沙县| 汉沽区| 阿拉善左旗| 玉环县| 宿松县| 平乡县| 雷波县| 乐陵市| 鄂托克前旗| 松桃| 兰考县| 嫩江县| 平塘县| 广平县| 汶上县| 中卫市| 盘锦市| 蒙自县| 将乐县| 卢氏县| 万宁市| 荣成市| 交口县|