Google App Engine簡介
Google公司發(fā)展迅速,不斷推出自己的新產(chǎn)品,比如Google搜索、Google Maps、 Google Earth、Google AdSense、Googje Reader等。在推出自己產(chǎn)品的同時(shí),Google 傾力打造了一個(gè)平臺,來集成自己的服務(wù)并供開發(fā)者使用,這就是Google App Engine平臺。
簡單地說,Google App Engine是一個(gè)由Python應(yīng)用服務(wù)器群、Bigtable數(shù)據(jù)庫及GFS數(shù)據(jù)儲存服務(wù)組成的平臺它能為開發(fā)者提供一體化的、可自動(dòng)升級的在線應(yīng)用服務(wù)。
從云計(jì)算平臺的分類來看,Amazon提供的是IaaS平臺,而Google提供的Google App Engine是一個(gè)PaaS平臺,用戶可以在上面開發(fā)應(yīng)用軟件,并在Google的基礎(chǔ)設(shè)施上運(yùn)行此軟件。其定位是易于實(shí)施和擴(kuò)展,無需服務(wù)器維護(hù)。
Google App Engine可以讓開發(fā)人員在Google的基礎(chǔ)架構(gòu)上運(yùn)行網(wǎng)絡(luò)應(yīng)用程序。在 Google App Engine之上易構(gòu)建和維護(hù)應(yīng)用程序,并且應(yīng)用程序可根據(jù)訪問量和數(shù)據(jù)存儲需要的增長輕松進(jìn)行擴(kuò)展。使用Google App Engine,開發(fā)人員將不再需要維護(hù)服務(wù)器,只需上傳應(yīng)用程序,它便可立即即為用戶提供服務(wù)。
在Google App Engine中,用戶可以使用appspot.com域上的免費(fèi)域名為應(yīng)用程序提供服務(wù),也可以使用Google企業(yè)應(yīng)用套件從自己的域?yàn)樗峁┓?wù)。開發(fā)人員可以與全世界的人共享自己的應(yīng)用程序,也可以限制為只有自己組織內(nèi)的成員可以訪問。
除此之外,還可以免費(fèi)使用Google App Engine。注冊一個(gè)免費(fèi)賬戶即可開發(fā)和發(fā)布應(yīng)用程序,而且不需要承擔(dān)任何費(fèi)用和責(zé)任。免費(fèi)賬戶可以使用多達(dá)500MB的持久存儲空間,以及可支持每月約500萬頁面瀏覽量的超大CPU和帶寬。
Google App Engine作為一個(gè)開發(fā)平臺,有其自身的特點(diǎn)。
Google App Engine的整體架構(gòu)如圖2-40所示。Google App Engine的架構(gòu)可以分成四部分:前端和靜態(tài)文件負(fù)責(zé)將請求轉(zhuǎn)發(fā)給應(yīng)用服務(wù)器并進(jìn)行負(fù)載均衡和靜態(tài)文件的傳輸;應(yīng)用服務(wù)器則能同時(shí)運(yùn)行多個(gè)應(yīng)用的運(yùn)行時(shí)(Runtime);服務(wù)器群提供了一些服務(wù),主要有Memcache、Images、URLfetch、Email和Data Store 等;Google App Engine 還有一個(gè)應(yīng)用管理節(jié)點(diǎn),主要負(fù)責(zé)應(yīng)用的啟停和計(jì)費(fèi)。
關(guān)于Google App Engine的一些基本概念,比如應(yīng)用程序環(huán)境、沙盒、Python運(yùn)行時(shí)環(huán)境、數(shù)據(jù)庫、Google賬戶、App Engine服務(wù)、開發(fā)流程、配額和限制等,總體而言,每個(gè)開發(fā)程序都將涉及這些概念。每個(gè)開發(fā)程序有自身的應(yīng)用程序環(huán)境(這個(gè)環(huán)境由Google App Engine提供),該環(huán)境對應(yīng)用程序提供了一些基本的支持,使應(yīng)用程序可以在 Google App Engine上正常運(yùn)行。除此之外,Google App Engine為每個(gè)應(yīng)用程序提供了一個(gè)安全運(yùn)行環(huán)境(即沙盒),該沙盒可以保證每個(gè)應(yīng)用程序能夠安全地隔離運(yùn)行。現(xiàn)階段,Google App Engine 支持 Java和 Python語言,通過 Google App Engine的Java運(yùn)行時(shí)環(huán)境,可以使用標(biāo)準(zhǔn)Java技術(shù)構(gòu)建應(yīng)用程序。開發(fā)程序時(shí)還可能要使用到Python運(yùn)行時(shí)環(huán)境,該環(huán)境包括Python運(yùn)行庫等模塊,并且Google App Engine還提供了一個(gè)由 Python語言編寫的網(wǎng)絡(luò)應(yīng)用程序框架webapp。Google App Engine上開發(fā)的應(yīng)用程序使用的是Data Store數(shù)據(jù)庫,該數(shù)據(jù)庫不同于日常使用的Oracle、SQL Server等數(shù)據(jù)庫它是一個(gè)分布式存儲數(shù)據(jù)庫,可以隨著應(yīng)用程序訪問量的增加而增加。使用Google App Engine開發(fā)應(yīng)用程序必須擁有一個(gè)Google賬戶,有了該賬戶之后才可以在Google App Engine上運(yùn)行開發(fā)的程序。為了簡化開發(fā)流程,Google App Engine提供了一些服務(wù),這些服務(wù)統(tǒng)稱為App Engine服務(wù),使用Google App Engine開發(fā)應(yīng)用程序必須遵守一定的開發(fā)流程。Google App Engine為每個(gè)Google賬戶用戶提供了一些免費(fèi)的空間與流量支持,但是免費(fèi)的空間和流量有一定的配額和限制。
通過對這些概念的了解,可深入理解Google App Engine。
