Google App Engine
Google App engine(Google應用服務引擎)
簡介:
是一個PaaS(平台即服務),主要用來開發、託管網路應用程式的平台。
在更簡單的講法就是由Google所推出的一個針對web服務應用的雲端平台。
它的優勢在於Google已經設置好平台與環境,所以不需開發者要維護與設定任何的Server,只需上傳應用程序,它便可以為用戶提供服務。
Google應用服務引擎(以下簡稱GAE)用了雲端運算技術。它跨越多個伺服器和資料中心來虛擬化應用程式的目地。
與其他應用程式託管的區別:
與其他託管服務來比較(Amazon EC2),GAE提供了更多基礎服務來方便編寫可延伸的應用程式,但僅限於GAE所提供框架以內的應用程式。這是GAE的優點也是缺點,好處是可以快速大量部屬服務,不用像EC2一樣需要設定與修改環境,但壞處就是程式語言語API都給GAE所限制住,不像EC2自由度非常高,可以靈活運用各種系統與語言。
但GAE限定開發者使用Python或Java,如果不熟悉這些語言將會造成門檻,而且需要使用它所限定的API。由於GAE是使用非關聯式資料庫來儲存和檢索資料、提出HTTP請求、發送E-mail、處理影像、還有快取。所以目前大多數的Web應用程式,都需要修改才可以在App Engine上執行,因為大部份開發者都還是在用關聯式資料庫來做資料存取。
GAE的優勢與劣勢:
優勢: GAE因為是使用雲端運算技術,所以擁有很棒的擴充性,當網站規模達到一定水準時,不需要開發商自己去做負載均衡﹑資料庫的切割。這些GAE都為你做好了,你只需要錢就可以擴充效能與流量限制。
劣勢: Google為了他有一定的安全性,所以限制了許多功能,像是無法使用多執行緒﹑不能使用Socket,只開放80 port﹑不支援串流…等等的限制。
GAE 應用實例:
有去過大陸的人一定知道大陸的網路都是被封鎖的,所以需要”翻牆”來看外界的資訊。
而網路上就有熱心人士,想到利用GAE的免費服務(一個AppID一天可以有1GB的流量)來把電腦端所有的通訊流量封裝成GAE專屬的資訊用80 port傳送出去,這樣就可以躲過中國政府的網路審查機制,以達到瀏覽網站的目地。
這個開發者主要是用Python來寫GAE專屬的App,然後將原始碼公開出來,讓大家可以透過自己創見GAE的App來執行這套翻牆的功能。
這個就是一個很棒的案例來使用GAE,因為他完全利用了GAE的優點(免複雜的部屬環境、使用80port傳輸資訊、1GB免費額度)來做到平常需要自行架設大量主機的服務(像是翻牆)。
圖片來源:http://fyu45.pixnet.net/album/photo/36127536-0_1
Google App Engine 支援的程式語言有Python、JAVA、Go(透過擴充功能,可以支援其他JVM語言,諸如Goovy、JRuby、Scale和Clojure)。