Google App Engine
2008年4月7號,Google在Campfire One上介紹了一種簡化創(chuàng)建、運行和構(gòu)建伸縮性Web應用的工具——Google App Engine。簡而言之,Google App Engine允許你本地使用Google基礎(chǔ)設(shè)施構(gòu)建Web應用,待其完工之后再將其部署到Google基礎(chǔ)設(shè)施之上。
這次發(fā)布的是沒有包含全部特性的預覽版,提供了一個配額系統(tǒng),它限制了在預覽期間應用免費可用的存儲、CPU和帶寬。一旦預覽期結(jié)束,配額仍將免費,但是開發(fā)者需要按需購買額外資源。額外資源的價格尚未公布(甚至可能尚未確定)。
預覽版的配額包括:3個應用/開發(fā)者、500MB存儲/應用、2000封郵件/天(連續(xù)24小時)、10 GB入站帶寬、10 GB出站帶寬、200M CPU兆周、650k HTTP請求、2.5M Datastore API調(diào)用和160k URL Fetch API調(diào)用。
技術(shù):開發(fā)環(huán)境和API
盡管Google說‘未來將支持更多的語言’,但是目前技術(shù)棧是基于Python的,它是Google認同的語言之一。出于安 全和伸縮性的目的,Google提供了一個運行在安全沙箱中的Python運行時環(huán)境,它提供對底層操作系統(tǒng)有限制的訪問。該環(huán)境包括標準庫,并可通過模 塊進行擴展,編寫模塊的語言目前不支持C語言。
該環(huán)境包括Python標準庫。當然,調(diào)用那些違反沙箱限制的庫方法(如打開socket或?qū)懳募⒉粫晒Α榱朔奖闫鹨姡瑤讉€核心特性不被支持的標準庫中的模塊被禁用了。那些引入它們的代碼會出錯。
應用代碼只能用Python書寫。不支持使用C來編寫擴展。
其他安全限制包括:出站通信(outbound communication)只能通過所提供的郵件和URL fetch API進行,通過HTTP和HTTPS作為傳輸?shù)娜胝就ㄐ牛╥nbound communication)使用標準端口,禁止文件系統(tǒng)寫操作和禁止子進程或代碼在請求/響應循環(huán)外執(zhí)行(例如后臺操作和批操作)。
此外,Google提供了訪問一個Datastore、Google用戶帳號、URL fetch和郵件服務(wù)的API。App Engine還包括一個簡化的Web應用框架和Django 0.96.1,盡管App Engine Datastore不是關(guān)系型的,而且也不能使用全部的Django API。
Datastore API背后由Google的BigTable支持,但是它與一個簡單的對象持久化API(或一個對象關(guān)系映射框架,即使Google強調(diào)這個Datastore不是關(guān)系型的)有很多相同之處:
