《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于Cloud Foundry的PaaS云平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
基于Cloud Foundry的PaaS云平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
來(lái)源:微型機(jī)與應(yīng)用2014年第2期
姜文周,,馬明麗,李先毅
(大連理工大學(xué) 網(wǎng)絡(luò)與信息化中心,,遼寧 大連116024)
摘要: 隨著網(wǎng)絡(luò)和云計(jì)算的快速發(fā)展,,出現(xiàn)了越來(lái)越多的網(wǎng)絡(luò)資源,,對(duì)網(wǎng)絡(luò)資源的共享、管理以及按需分配是云計(jì)算的一個(gè)重要的研究方向,。PaaS平臺(tái)即服務(wù)是云計(jì)算的一個(gè)重要服務(wù)類(lèi)型,,無(wú)論是對(duì)學(xué)校研究還是企業(yè)應(yīng)用都有著很大的吸引力。利用PaaS平臺(tái),,可以降低項(xiàng)目開(kāi)發(fā)的成本和周期,,還可以提高項(xiàng)目對(duì)外提供服務(wù)的質(zhì)量。針對(duì)現(xiàn)有的公共PaaS平臺(tái)不適合大連理工大學(xué)做研究以及使用的狀況,,設(shè)計(jì)并實(shí)現(xiàn)了一套基于Cloud Foundry的PaaS平臺(tái),。實(shí)踐表明,本平臺(tái)不僅有效地利用了資源,,還使得部署其上的云應(yīng)用更有彈性,。
Abstract:
Key words :

摘  要: 隨著網(wǎng)絡(luò)和云計(jì)算的快速發(fā)展,出現(xiàn)了越來(lái)越多的網(wǎng)絡(luò)資源,,對(duì)網(wǎng)絡(luò)資源的共享,、管理以及按需分配是云計(jì)算的一個(gè)重要的研究方向。PaaS平臺(tái)即服務(wù)是云計(jì)算的一個(gè)重要服務(wù)類(lèi)型,,無(wú)論是對(duì)學(xué)校研究還是企業(yè)應(yīng)用都有著很大的吸引力,。利用PaaS平臺(tái),可以降低項(xiàng)目開(kāi)發(fā)的成本和周期,,還可以提高項(xiàng)目對(duì)外提供服務(wù)的質(zhì)量,。針對(duì)現(xiàn)有的公共PaaS平臺(tái)不適合大連理工大學(xué)做研究以及使用的狀況,設(shè)計(jì)并實(shí)現(xiàn)了一套基于Cloud Foundry的PaaS平臺(tái),。實(shí)踐表明,,本平臺(tái)不僅有效地利用了資源,還使得部署其上的云應(yīng)用更有彈性,。
關(guān)鍵詞: PaaS,;Cloud Foundry,;應(yīng)用程序部署;私有云平臺(tái)

     云計(jì)算[1]是一種新的服務(wù)模式,,由一系列可以動(dòng)態(tài)升級(jí)和可被虛擬化的資源組成,,這些資源可被所有云計(jì)算用戶(hù)共享并方便地通過(guò)網(wǎng)絡(luò)訪問(wèn)。云計(jì)算的服務(wù)模式分為3種:由底層硬件或虛擬機(jī)資源構(gòu)建的基礎(chǔ)設(shè)施服務(wù)(IaaS),;構(gòu)建在云基礎(chǔ)設(shè)施上,,提供云計(jì)算應(yīng)用服務(wù)開(kāi)發(fā)平臺(tái)和環(huán)境的平臺(tái)服務(wù)(PaaS);基于云平臺(tái)開(kāi)發(fā)的各類(lèi)應(yīng)用服務(wù)的軟件服務(wù)(SaaS),。在這3層架構(gòu)中,,PaaS[2]扮演了一個(gè)非常重要的角色,它的本質(zhì)是一個(gè)特殊的網(wǎng)絡(luò)資源中心,,是一個(gè)開(kāi)放的平臺(tái),,通過(guò)Web API的形式向外提供服務(wù),這樣應(yīng)用程序開(kāi)發(fā)人員就無(wú)需再考慮硬件資源以及其他所需的服務(wù)框架,。目前比較流行的PaaS云平臺(tái)有Google App Engine,、Microsoft Azure Service和Amazon Web Services,但是這些平臺(tái)都有一些局限性,,比如Google App Engine只允許部署用Java和Python開(kāi)發(fā)的應(yīng)用程序,,Microsoft Azure Service只允許部署使用.NET框架開(kāi)發(fā)的應(yīng)用程序,這對(duì)一些以前遺留的系統(tǒng)來(lái)說(shuō)是不可用的,。而且使用公共云存在一些安全隱患,,所以,提供一個(gè)旨在為校內(nèi)師生服務(wù)的私有云[3]平臺(tái)是非常有必要的,。高等教育云計(jì)算是云計(jì)算應(yīng)用的重要領(lǐng)域,,將高等教育建設(shè)所必需的基礎(chǔ)設(shè)施以及軟件服務(wù)由Cloud Foundry[4]集成一個(gè)PaaS級(jí)的平臺(tái),向?qū)W生,、實(shí)驗(yàn)室提供以租用為形式的服務(wù),。這樣不僅充分利用了學(xué)校的資源,還節(jié)省了開(kāi)發(fā)一個(gè)項(xiàng)目的資金和時(shí)間,。
1 Cloud Foundry云平臺(tái)
    Cloud Foundry是VMware于2011年4月12日推出的業(yè)界第一個(gè)開(kāi)源PaaS云平臺(tái),,它支持多種框架、語(yǔ)言,、運(yùn)行環(huán)境,、云平臺(tái)及應(yīng)用服務(wù),這些框架包括Spring for Java,、.NET,、Ruby on Rails、Node.js,、Grails和Scala on Lift,,現(xiàn)在又新加了Python,、PHP等,大大提高了平臺(tái)的靈活性,。Cloud Foundry是基于IaaS之上的,、支持Cloud Foundry的IaaS平臺(tái)可以是Open Stack,也可以是vSphere,。與其他的PaaS平臺(tái)(Google的Google App Engine、Amazon的Amazon Web Service等)相比,,它有更好的靈活性,。使用Cloud Foundry可以架構(gòu)自己的公有云平臺(tái)或私有云平臺(tái),是高校架構(gòu)云平臺(tái)的首選,。Cloud Foundry是由相對(duì)獨(dú)立的多個(gè)模塊構(gòu)成的分布式系統(tǒng),,每個(gè)模塊單獨(dú)存在和運(yùn)行,各模塊之間通過(guò)消息機(jī)制進(jìn)行通信,。下面介紹Cloud Foundry中的主要的模塊,。
    (1)通信模塊
    如圖1所示,Cloud Foundry是由許多模塊組成的,,這些模塊間的通信主要是由NATS實(shí)現(xiàn)的,。NATS是一款基于EventMachine,使用“發(fā)布-訂閱”機(jī)制的輕量級(jí)消息中間件,。EventMachine通過(guò)實(shí)現(xiàn)Reactor設(shè)計(jì)模式解決了Ruby語(yǔ)言與生俱來(lái)的并發(fā)能力不足的問(wèn)題,,也為NATS帶來(lái)了良好的并發(fā)請(qǐng)求處理能力。NATS不對(duì)消息做持久化,,所以對(duì)消息的匹配和訂閱過(guò)程相對(duì)高效,。例如Router這個(gè)組件,其作用是對(duì)外部發(fā)送進(jìn)來(lái)的請(qǐng)求進(jìn)行路由,,以使整個(gè)平臺(tái)負(fù)載均衡,,發(fā)送給Router的消息使用的正是NATS。由此可以看出NATS的重要性,,它是整個(gè)平臺(tái)良好運(yùn)作的基礎(chǔ),。

    (2)應(yīng)用程序執(zhí)行模塊
    應(yīng)用程序的執(zhí)行是在Dea這個(gè)組件上進(jìn)行的,啟動(dòng)一個(gè)APP時(shí),,Dea會(huì)下載一個(gè)Droplet副本,,然后使用這個(gè)副本來(lái)運(yùn)行。Droplet是指把一個(gè)應(yīng)用程序的源代碼及Cloud Foundry配置好的運(yùn)行環(huán)境,,再加一些控制腳本如start/stop等,,全部打包在一起的tar文件。如果一個(gè)應(yīng)用程序要擴(kuò)展,,就會(huì)將這個(gè)Droplet多復(fù)制幾份,,然后下載到更多的Dea服務(wù)器上運(yùn)行,。
    (3)控制模塊
    控制模塊是由Cloud Controller構(gòu)成,負(fù)責(zé)與客戶(hù)端交互的服務(wù)器端,,它收到客戶(hù)端發(fā)來(lái)的指令后發(fā)消息給各個(gè)模塊,,管理整個(gè)云的運(yùn)行,相當(dāng)于Cloud Foundry的大腦,。
2 基于Cloud Foundry的云平臺(tái)的設(shè)計(jì)
2.1 Cloud Foundry服務(wù)平臺(tái)(CFP)的架構(gòu)
    Cloud Foundry服務(wù)平臺(tái)的架構(gòu)如圖2所示,。


2.2 功能分析
    CFP是旨在為以教育和研究為目的的師生提供服務(wù)的開(kāi)發(fā)平臺(tái),在這個(gè)平臺(tái)上集成了眾多的框架與第三方服務(wù),,這些框架包括Java Spring,、.NET和Ruby on Rails,服務(wù)有Mysql,、MongoDB,、Redis。本平臺(tái)有成本低,、可擴(kuò)展性好,、服務(wù)質(zhì)量?jī)?yōu)的特點(diǎn)。CFP架構(gòu)從下到上主要分為以下幾層:
    (1)硬件設(shè)施層
    該層是為整個(gè)Cloud Foundry平臺(tái)提供硬件設(shè)施的保障,,包括存儲(chǔ)設(shè)備,、網(wǎng)絡(luò)設(shè)備、計(jì)算設(shè)備等,,通過(guò)虛擬化整合異構(gòu)平臺(tái),。
    (2)IaaS級(jí)平臺(tái)
    Cloud Foundry是PaaS級(jí)的平臺(tái),自然可以部署在IaaS級(jí)的平臺(tái)上,,在該層上實(shí)現(xiàn)了資源的調(diào)度,、分配,IaaS平臺(tái)可以有效地統(tǒng)一管理虛擬資源,。CPI接口是封裝了IaaS級(jí)的API,,通過(guò)CPI,PaaS可以調(diào)度由IaaS管理的虛擬資源,。
    (3)Cloud Foundry應(yīng)用開(kāi)發(fā)平臺(tái)
    PaaS平臺(tái)又可分為應(yīng)用開(kāi)發(fā)平臺(tái),、應(yīng)用運(yùn)行平臺(tái)、數(shù)據(jù)庫(kù)即服務(wù),、服務(wù)集成平臺(tái),、應(yīng)用中間件平臺(tái)、流程服務(wù)平臺(tái)等,,這里所搭建的Cloud Foundry平臺(tái)是應(yīng)用開(kāi)發(fā)平臺(tái)[5],,是為校內(nèi)師生開(kāi)發(fā)、部署系統(tǒng)所服務(wù)的。這一層平臺(tái)是整個(gè)架構(gòu)的核心,,師生在申請(qǐng)服務(wù)時(shí)即可在這一層得到所需的資源,。CFP根據(jù)用戶(hù)上傳的應(yīng)用程序動(dòng)態(tài)地分配資源,自動(dòng)匹配應(yīng)用程序的框架,。如果應(yīng)用程序有連接數(shù)據(jù)庫(kù)的要求,,本平臺(tái)會(huì)根據(jù)現(xiàn)有的數(shù)據(jù)庫(kù)服務(wù)讓用戶(hù)選擇其中的一個(gè)。在本平臺(tái)上的每一種服務(wù)都是可移植的,,因而部署在CFP平臺(tái)上的系統(tǒng)非常容易遷移,。
    (4)用戶(hù)訪問(wèn)層
    本平臺(tái)的用戶(hù)分為維護(hù)CFP平臺(tái)的維護(hù)人員、開(kāi)發(fā)應(yīng)用程序的人員和應(yīng)用程序的最終用戶(hù)3種,。本文所指的用戶(hù)主要是指應(yīng)用程序開(kāi)發(fā)人員,。用戶(hù)在向管理員申請(qǐng)到資源后,可用VMC這個(gè)客戶(hù)端工具把應(yīng)用程序部署到平臺(tái)上,,如果用戶(hù)想要擴(kuò)展應(yīng)用程序的規(guī)模,或者要對(duì)應(yīng)用程序進(jìn)行其他方面的改進(jìn),,使用這個(gè)客戶(hù)端工具都是非常方便的,。終端用戶(hù)通過(guò)Browser訪問(wèn)應(yīng)用程序,URL地址在部署項(xiàng)目時(shí)生成,。
3 CFP平臺(tái)的管理
    CFP的使用流程如圖3所示,。首先,用戶(hù)需要登錄Web管理系統(tǒng)實(shí)名注冊(cè),,提交給管理員審批,,通過(guò)之后才能申請(qǐng)資源。通過(guò)審批之后,,就可以用VMC/STS工具把應(yīng)用程序部署在CFP平臺(tái)上了,。本平臺(tái)會(huì)根據(jù)用戶(hù)上傳的應(yīng)用程序?yàn)槠渥詣?dòng)分配資源。終端用戶(hù)指的是最終使用應(yīng)用程序的用戶(hù),,可以通過(guò)Web訪問(wèn)應(yīng)用程序,,也可以通過(guò)移動(dòng)設(shè)備訪問(wèn)[6]。

 

 

    表1顯示了實(shí)際部署在CFP上的兩個(gè)應(yīng)用程序,。

    本文從現(xiàn)有的云計(jì)算技術(shù)出發(fā),,根據(jù)目前PaaS所面臨的狀況以及高校項(xiàng)目中實(shí)際的需求,利用開(kāi)源的項(xiàng)目Cloud Foundry設(shè)計(jì)并開(kāi)發(fā)了一套PaaS級(jí)服務(wù)云平臺(tái),,利用本平臺(tái),,校內(nèi)師生可以直接把項(xiàng)目部署在其上,基于本平臺(tái)的應(yīng)用程序易于構(gòu)建和維護(hù),,還可以根據(jù)用戶(hù)的訪問(wèn)量和數(shù)據(jù)存儲(chǔ)需要進(jìn)行擴(kuò)展,。最后,經(jīng)過(guò)驗(yàn)證,,本平臺(tái)確實(shí)可以承載多種語(yǔ)言開(kāi)發(fā)的應(yīng)用程序,,并能很好地利用資源,,從而達(dá)到彈性計(jì)算和靈活部署應(yīng)用程序的目的。
參考文獻(xiàn)
[1] 吳吉義,,平玲娣,,潘雪.云計(jì)算:從概念到平臺(tái)[J].電信科學(xué),2009(12):23-30.
[2] Lv Chengtong,,Li Qing,,Peng Junjie,et al.PaaS:a revolution for information technology platforms[A].2010 International Conference on Educational and Network Technology,,2010.
[3] 周詳.私有云構(gòu)建中資源和數(shù)據(jù)管理的研究[D].北京:北京工業(yè)大學(xué),,2012.
[4] Cloud Foundry[EB/OL].[2013-09-17].http://www.cloudfoundry.com/.
[5] LAWTON G.Developing software online with Platform-as-a  service technology[J].Computer,2008,,41(6):13-15.
[6] KIBEL S,,WATANABE S,KUNISHIMA K,,et al.PaaS on  IaaS[C].2013 IEEE 27th International Conference on  Advanced Information Networking and Applications,,2013.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。