GAE SAE BAE 對比分析
目前,雲服務很多,例如GAE、BAE、SAE、TAE、CAE、ACE、EC2、AZURE各種雲。本文主要從以下幾個方面對GAE、SAE和BAE的優劣進行分析。
資料庫
GAE 目前使用 Datasotre 存取資料,最近也提供了雲 SQL(MySQL),但申請比較困難。此外,GAE免費提供給使用者500M的儲存空間和每個月500萬次的訪問流量,除了部署大型社交行網站(如人人,新浪微博等)不夠之外,對於普通的web網站已足夠。
SAE 不支援 InnoDB(可申請支援,但申請有點難度),BAE 預設支援。
BAE 不支援資料庫連線池(c3p0、BoneCP 已測不支援),資料庫連線不能長時間保持。
對於國內雲而言,SAE 顯式給出了主從庫的訪問方式,應用可以比較靈活地設計存取策略,例如讀寫分離。並且 SAE 是每個應用都擁有自己的資料庫,而 BAE 是所有應用共用一個庫。
應用配置
BAE 的 duapp-web.xml 基本是抄襲 GAE 的 appengine-web.xml,元素基本一致。
比較奇怪的是 BAE 靜態資源配置預設所有後綴為靜態檔案型別(例如.html)的請求路徑都預設假設為靜態資源,需要在 duapp-web.xml 中指定排除。
綜上,GAE的應用配置最完善,國內的SAE和BAE的應用配置由於開發時間短和技術不成熟而顯得稚嫩。
計費與配額
GAE 目前的計費模型主要是按 API 呼叫計數,流量分為 In/Out 配額。每天會定時重新整理免費配額。儲存空間超過500M或每個月的訪問500萬次訪問數量則需要購買配額。總體來說,相對於國內雲來說谷歌的免費配額更大。
SAE 按應用天計費“豆豆”,服務也按流量計費、CPU 時間、呼叫次數計費。註冊或活動送配額,否則需要購買。
BAE 目前還沒有詳細的計費,只限定了應用數。公測結束後應該會細化計費模型。
綜上,GAE 的計費一目瞭然,主要就是 API 呼叫次數,但提供的免費訪問配額較大;SAE 的計費比較複雜,不同服務有不同的計費策略;BAE 還沒有明確的計費模型,但只是因為BAE開發的時間短,很多技術和服務細節還不完善,相信便很快便進入收費模式。
域名繫結
域名繫結就是把域名解析到伺服器IP,然後在伺服器上設定該域名有許可權訪問的過程。
GAE 開通企業套件後隨便綁,企業套件有免費版。
SAE 目前可以隨便綁,但沒備案的話繫結域名的請求走海外中轉,流量計費翻倍(原二級域名請求計費不變)。
BAE 目前可以隨便綁,但沒備案的後果自負。
平臺服務
GAE 提供了完整的 SDK 包,包含了開發需要的本地執行環境和配置客戶端。
SAE 提供了 SDK 包,包含了開發需要的本地服務實現。
BAE 則分別提供了服務 Jar,呼叫方式按不同服務而異。
綜上,GAE 提供了完整的平臺化服務,覆蓋了從開發到上線運維的一系列工具;SAE 則提供了部分工具,平臺化不完整,增加了開發、運維難度;BAE 則是分別提供不同服務給開發,沒有統一的 SDK 與呼叫方式。
綜合評價
GAE 提供了比較完整的服務平臺,覆蓋了應用的生命週期,最近也提供了雲 MySQL服務以吸引更多開發者。GAE相對於國內雲SAE和BAE來說開源性更好,技術更成熟,平臺更穩定,易用性更強,但GFW的存在使‘被牆’的問題始終是GAE的一大劣勢。
相比GAE,國內SAE 與 BAE 主要還是面向應用部署託管,普通應用修改後易遷移部署到 BAE 或SAE。新應用開發可以選擇和平臺綁死(依賴平臺服務)或按照普通應用開發。使用配置工具來上傳、更新應用配置其實是非常好的方式,但目前 SAE、BAE都沒有提供客戶端配置工具,這增加了使用者的維護工作量,也使得開發者的開發難度相對較大。
SAE相對BAE來說開發時間更長,技術要比BAE完善,對於國內開發者來說SAE的最大優點是速度快,但缺點也還存在,比如訪問不穩定,說明文件少,對API的支援和說明極其簡陋等,而且,由於SAE剛開發的時候是從支援php+sql入手,故目前對python的支援不是很好。而對於BAE來說,最大的優點是具有百度的巨大平臺和搜尋引擎,但其開發時間短,目前支援的服務有限,相比於SAE來說要差一些。
結論:
本人親測與使用過這三個雲應用平臺,對自己使用過程中的體會與碰到的問題跟大家分享一下。
最終我還是選擇了GAE,因為我主要是使用Javascript,考慮繫結域名與管理問題。
1.GAE不要備案就可以繫結域名,Goolge提供強大的apps for business工具,方便維護多個應用。
2.SAE不備案要路由到國外,備案後才能正常使用,親測試後發現路由到國外經常訪問不了,就算能訪問那速度也讓人抓狂。
3.BAE雖然可以不路由到國外,但是不備案域名不負責任,給人一種很不爽的感覺。
4.國內備案要繫結主機,SAE與BAE不提供備案主機服務,所以不能自主備案,備案過程過於複雜。
5.基於加上B3Log的強大與對timeline主題的喜愛,我最終選擇GAE。
說說使用過過程中體會與碰到的問題
1.GAE支援Java,Python,Go語言,但是每個應用不與語言繫結,同一個應用可以使用不同語言開發。不支援MySQL資料庫。有成熟的本地測試平臺,尤其是Python本地測試工具,告別強大。程式碼不支援Svn,Git版本控制。
2.SAE支援PHP,Java,Python,作為一個PHP程式設計師是愛之,恨之。但是應用建立時要與語言繫結,不支援切換。支援MySQL資料庫。沒有本地測試平臺,要在伺服器上測試,不過你可以新建一個測試版本,用來測試。支援Svn版本控制。
3.BAE支援PHP,Java,Python。應用與語言繫結不能修改。支援MySQL資料庫。沒有本地測試平臺。支援Svn,Git版本控制。能與百度強大的LBS服務繫結,相信能吸引好多開發者。
參考推薦: