App Engine環(huán)境還對(duì)應(yīng)用程序施加了額外的限制,如下所示:

l 只允許使用通過(guò)Python或Java技術(shù)提供的標(biāo)準(zhǔn)庫(kù)的一個(gè)子集。

l 對(duì)CPU請(qǐng)求、內(nèi)存、文件大小等必須定額。

l 對(duì)應(yīng)用程序所做的任何請(qǐng)求都必須在30秒內(nèi)返回。

l 不具備對(duì)文件系統(tǒng)的任何訪問(wèn)且只能讀取作為應(yīng)用程序一部分上傳的靜態(tài)文件。

l 不能在App Engine環(huán)境大量生成線程和進(jìn)程。

l 在App Engine內(nèi)使用的存儲(chǔ)后端是BigTable,一種模式較少的關(guān)鍵值數(shù)據(jù)存儲(chǔ)。

l App Engine只能執(zhí)行從一個(gè)HTTP請(qǐng)求觸發(fā)的那些代碼。

這些限制可能會(huì)也可能不會(huì)約束到你的應(yīng)用程序。App Engine是構(gòu)建可伸縮Web應(yīng)用程序的一種很好的方式,并且AppScale還提供了一種框架來(lái)模擬Google App Engine環(huán)境。AppScale讓你可以在本地以及在基于云的基礎(chǔ)設(shè)施上(Eucalyptus)透明地執(zhí)行和調(diào)試App Engine應(yīng)用程序。

AppScale是Google App Engine API的一種開(kāi)源實(shí)現(xiàn),它是一種云計(jì)算平臺(tái),可簡(jiǎn)化Google App Engine應(yīng)用程序在IaaS云(比如Eucalyptus)上執(zhí)行。AppScale帶來(lái)了AppEngine的強(qiáng)大功能,并能讓你用自己的集群運(yùn)行App Engine應(yīng)用程序。它也可以再IaaS平臺(tái)上透明運(yùn)行。AppScale確定的目標(biāo)是提供一個(gè)PaaS云基礎(chǔ)設(shè)施以使用戶不僅可以再其GAE應(yīng)用程序部署到Google專有資源上之前先部署、測(cè)試、調(diào)試、考量和監(jiān)視這些應(yīng)用程序,還可以便利PaaS實(shí)現(xiàn)的調(diào)查和擴(kuò)展:服務(wù)、運(yùn)行時(shí)、與底層云構(gòu)造的互操作等。

AppScale服務(wù)實(shí)現(xiàn):

AppScale的架構(gòu)

AppScale環(huán)境包含四個(gè)主要組件:AppServer,AppLoadBalancer,DatabaseMaster,Database slaves。AppScale通過(guò)構(gòu)建和擴(kuò)展來(lái)自Google App Engine的SDK并實(shí)現(xiàn)由此SDK公開(kāi)的開(kāi)放API補(bǔ)充了Google App Engine所提供的功能。AppScale內(nèi)的多個(gè)組件可自動(dòng)化系統(tǒng)的部署、管理、伸縮以及系統(tǒng)容錯(cuò)以便執(zhí)行App Engine應(yīng)用程序。無(wú)需對(duì)應(yīng)用程序進(jìn)行更改,即可在AppScale內(nèi)部部署和運(yùn)行Google App Engine應(yīng)用程序。AppScale并不意味著要代替或參與Google的App Engine競(jìng)爭(zhēng)。它只是用來(lái)進(jìn)行云基礎(chǔ)設(shè)施試驗(yàn)的一個(gè)框架,并不會(huì)向上伸展為Google自以為豪的基礎(chǔ)設(shè)施。

Eucalyptus是云基礎(chǔ)設(shè)施管理平臺(tái),屬于IaaS這一類;而AppScale是開(kāi)源PaaS平臺(tái)。

分享到

zhouxiaoli

相關(guān)推薦