App Engine環(huán)境還對應用程序施加了額外的限制,如下所示:
l 只允許使用通過Python或Java技術提供的標準庫的一個子集。
l 對CPU請求、內存、文件大小等必須定額。
l 對應用程序所做的任何請求都必須在30秒內返回。
l 不具備對文件系統(tǒng)的任何訪問且只能讀取作為應用程序一部分上傳的靜態(tài)文件。
l 不能在App Engine環(huán)境大量生成線程和進程。
l 在App Engine內使用的存儲后端是BigTable,一種模式較少的關鍵值數(shù)據(jù)存儲。
l App Engine只能執(zhí)行從一個HTTP請求觸發(fā)的那些代碼。
這些限制可能會也可能不會約束到你的應用程序。App Engine是構建可伸縮Web應用程序的一種很好的方式,并且AppScale還提供了一種框架來模擬Google App Engine環(huán)境。AppScale讓你可以在本地以及在基于云的基礎設施上(Eucalyptus)透明地執(zhí)行和調試App Engine應用程序。
AppScale是Google App Engine API的一種開源實現(xiàn),它是一種云計算平臺,可簡化Google App Engine應用程序在IaaS云(比如Eucalyptus)上執(zhí)行。AppScale帶來了AppEngine的強大功能,并能讓你用自己的集群運行App Engine應用程序。它也可以再IaaS平臺上透明運行。AppScale確定的目標是提供一個PaaS云基礎設施以使用戶不僅可以再其GAE應用程序部署到Google專有資源上之前先部署、測試、調試、考量和監(jiān)視這些應用程序,還可以便利PaaS實現(xiàn)的調查和擴展:服務、運行時、與底層云構造的互操作等。
AppScale服務實現(xiàn):
AppScale的架構
AppScale環(huán)境包含四個主要組件:AppServer,AppLoadBalancer,DatabaseMaster,Database slaves。AppScale通過構建和擴展來自Google App Engine的SDK并實現(xiàn)由此SDK公開的開放API補充了Google App Engine所提供的功能。AppScale內的多個組件可自動化系統(tǒng)的部署、管理、伸縮以及系統(tǒng)容錯以便執(zhí)行App Engine應用程序。無需對應用程序進行更改,即可在AppScale內部部署和運行Google App Engine應用程序。AppScale并不意味著要代替或參與Google的App Engine競爭。它只是用來進行云基礎設施試驗的一個框架,并不會向上伸展為Google自以為豪的基礎設施。
Eucalyptus是云基礎設施管理平臺,屬于IaaS這一類;而AppScale是開源PaaS平臺。