2011-05-04 77 views

回答

7

在沒有應用程序引擎運行的應用程序引擎應用程序的一些選項:

  • TyphoonAE,它運行Python應用程序使用堆棧流行開源組件
  • appscale的,它運行Python或Java應用程序關閉的亞馬遜的EC2雲

我還沒有嘗試過。請參閱this question瞭解兩者的一些額外討論。

如果您只需在公有IP上啓用dev_appserver.py,數據存儲的性能如何?如果你有很多數據,很差。當使用開發服務器時,整個數據存儲都保存在內存中,所以當你插入數據時,Python的內存使用率將會攀升。一旦添加了足夠的數據以使您的系統開始交換,您的應用程序將變得無法緩慢。開發服務器中有一個選項用於使用SQLite數據存儲區存根,而不是內存存根。這使得大量數據的性能可以容忍,但它不如生產數據存儲那樣高效,所以即使數據量很小,數據存儲訪問也相對較慢。當然,這比使用少量數據的內存數據存儲要慢得多。

將開發服務器作爲獨立的生產服務器運行通常是一個壞主意。 dev服務器提供的API存根是爲開發人員而非用戶使用而設計的。例如。發送郵件只是寫入日誌條目而不是實際發送郵件;以管理員身份登錄需要點擊「以管理員身份登錄」複選框。

如果您想要將現有的應用程序從App Engine移出,請使用上述選項之一。如果您從頭開始開發應用程序,請使用Django或其他設計爲在通用硬件上運行的框架。開發服務器僅用於開發。

+1

另一個原因未脫的開發服務器運行的是,它是單線程的。 – 2011-05-04 14:08:46

+0

@Adam從技術上講,生產服務器也是單線程的 – systempuntoout 2011-05-04 19:50:41

+2

這是一種分裂的頭髮。我認爲他的意思是開發者服務器一次只能處理一個請求。 – 2011-05-04 20:07:34

5

,有很多缺失的功能(並行隊列,cron作業,郵件,XMPP,..),一些隱藏的安全問題,性能差和穩定性差,這在技術上是可行的。

正如你可能猜到的,這是一個壞主意

以HTTP服務器爲例;使用開發服務器,您將生產一個無證的BaseHTTPServer,完全不可能進行配置,並且可能有一些隱藏的安全漏洞可以被利用。

正如@Drew所說的,有更好的選擇可以讓您在不是GAE的生產環境中運行Google App Engine代碼。

相關問題