2011-10-06 65 views
4

我剛剛完成了一個Rails應用程序,我現在想要上傳到網絡。這是對現有申請的重新編寫,我預計每天約有4 000名訪客,有時每天峯值達到10 000人。部署導軌:可以選擇什麼?

  • 我知道Windows相當好(雖然沒有使用Windows服務器)。
  • 我幾乎不知道關於Ubuntu或Linux的任何內容
  • 我希望事情既好又簡單,並且不想花太多時間「黑客竊取服務器」。我想花時間開發,而不是維護。
  • 我的預算最多爲這個項目每個月最多50美元。
  • 該項目的數據庫是相當靜態的(幾乎沒有任何用戶生成的數據)
  • 我目前在我的本地安裝使用WAMP & Mysql的使用Rails 3.0.3和正常工作的大部分時間,但往往因爲死機好。

我正在考慮這樣做的三種方式:

  1. 使用Heroku的

    • 似乎很容易(雖然我還沒有得到它的工作還沒有)
    • 還看起來很貴,如果我需要更多的節點。我應該預期需要多少個節點?
  2. 使用VPS的Windows服務器

    • 我知道的Windows,這將是很容易安裝,並得到它成立
    • 我的朋友(誰更Rails的專家)說, Windows和Rails不太匹配。
    • 我在我的本地環境的崩潰讓我擔心這個選項
  3. 使用VPS Ubuntu的服務器

    • 似乎是(在支付了前期的條款)
    • 最便宜的選擇
    • 似乎是最穩定的選擇
    • 我不知道Ubuntu和我不太渴望學習一個全新的操作系統來獲得這個設置。

你能幫我指導嗎? Windows服務器對Rails來說真的很糟糕嗎?

+2

使用VPS在Ubuntu或1個節點應該是(在高峯時間最多,2)足以滿足您的需求。另請參閱engineyard.com。 – Zabba

回答

5

很坦白的說,我認爲Windows會是你最糟糕的選擇。 Windows和Rails的問題在於大多數gem從來沒有設計用於Windows,或者Windows的版本遠遠落後。

使用Ubuntu VPS是一個非常可行的選擇,將是您最便宜和最穩定的選擇。我們使用Amazon S3服務在雲中運行大多數Web服務器。就像你說的那樣,它確實需要你知道並理解一個* nix操作系統來維護。

也許對你來說,Heroku可能是最好的選擇。 Heroku非常容易設置您的項目並進行部署。還有一些文檔可以幫助你一路走來。在終端的一些基本命令中,您的應用程序正在運行。我經常使用Heroku作爲'升級'服務器,在測試應用程序更新之前測試用戶,然後再推到S3上進行生產。你也不需要學習一個新的操作系統來使用它。

如果您遇到部署到Heroku的問題,請發佈問題,我們將很樂意幫助您。

+0

謝謝,我離開了Windows的想法,繼續使用Heroku作爲臨時解決方案,直到可以使我的Ubuntu安裝正常工作。 Heroku將會更加昂貴,但是爲了實現這個目標,這是一個很好的轉移。 – Christoffer

4

我會建議針對Windows服務器。根據我的經驗,主要的ruby實現並未針對windows進行優化 - 而且運行速度很慢。爲了您的最終用戶,Linux上的Rails堆棧可能會帶來顯着的性能提升(或同樣降低您的服務器預算)。

使用bundler和rails 3時,服務器上的維護工作量應該很小。登錄,部署,註銷。 (看看像capistrano這樣的工具,使其更直接)。

3

到目前爲止,我發現的最簡單的產品是Ubuntu服務器。

在Windows上Rails的速度往往比較慢,而且在* nix上設置乘客之類的東西要簡單得多。如果需要幫助,還有更多教程可用。

我最快的設置是Ubuntu服務器和nginx。

PS。 Rails 3.0超過了3.0.3,因此考慮測試最新版本8)

3

Heroku很容易部署到。如果你的數據庫負載很輕,你可以使用他們共享的20GB PostgreSQL數據庫($ 15 /月)。 2個dynos將花費你($ 35 /月),所以你的$ 50。 2應該可以很好地處理該流量,並且您可以在高流量時間內進行擴展。絕對會推薦添加memcached插件並使用它。安裝New Relic附加組件,您可以分析流量/負載並進行相應的縮放。

0

我大量建議不要使用Windows進行Rails應用程序部署。有些寶石在Windows上編譯速度較慢,有些根本不起作用。

我和Heroku一起工作過,但Heroku實例寫入文件有一些複雜性,因爲Heroku不允許本地文件寫入。在使用Heroku時,人們通常會將文件上傳等寫入操作卸載到Amazon S3實例或Fog。總的來說,Heroku真的很容易部署,但是當配置出現時......它可能比VPS更復雜一些。

對我來說最好的解決方案就是通過VPS使用Ubuntu。在這方面已經做了很多文檔,並且您有更多的配置選項。實際上,與在本地Ubuntu開發機器上設置Ruby on Rails沒有多大區別。如果您需要關於如何在Ubuntu上部署的提示,我最近剛寫了一篇關於如何這樣做的指南。在Heroku的

http://www.francisbautista.com/deploying-ruby-on-rails-apps-on-a-vps-nginx-passenger-capistrano/