我目前在 HostingRails.com 有一個 VPS,對該服務相當失望,所以我一直在考慮改用 linode。我有三個 Rails 應用程式(我的即時應用程式、即時應用程式的 QA 版本和一個紅礦)在 Apache 的 Passenger 上運行,一個 phpbb 安裝,以及一個目前在我的 VPS 上運行的 mysql 資料庫,目前總共佔用了大約 400MB 的 RAM。
我試圖弄清楚是否最好獲得720MB 節點並將所有內容都粘在那裡,或者獲得兩個360MB 節點並在其中一個上安裝實時站點,在另一個上安裝QA 站點和redmine(在這種情況下,您會建議兩個單獨的資料庫,每個節點一個)嗎?有人向我建議,拆分我的申請是個好主意,但我不知道這是否屬實;我認為,如果我有一個節點,如果實時應用程式需要更多內存,它可以從我的 QA 安裝和 redmine 可能無法完全使用的 360MB 中取出。
另外,我目前在Dreamhost 上託管了我的SVN(1 個活動項目、幾個不活動項目、兩個用戶),因為我提前支付了計劃費用,並將我的SVN 留在那裡,而不是將其移至我的VPS。將 SVN 遷移到 linode 會影響您的答案嗎?
答案1
使用兩個節點,雖然您可以獲得相同數量的內存,但您還可以獲得兩倍的 CPU 時間和 IO 令牌。
SVN 可以與 Passenger 在同一個 apache 實例中執行,不會對效能造成太大影響。
此外,您可能需要考慮不同的設定:一個資料庫節點和一個 Web 伺服器節點。兩者都不會充分利用(畢竟apache 相當重),而且,如果它們位於同一個資料中心,您可以將兩個公共IP 都指向Web 伺服器節點(Linode 允許這樣做),並讓它通過Linode 與資料庫節點進行通訊LAN(避免傳輸配額)。
答案2
根據為幾個基於 Rails 的企業提供託管託管的經驗,事實證明,分離資料庫和應用程式總是成功的(正如 fahadsadah 指出的那樣)。
但是,我不會運行 Apache和nginx在同一台機器上,尤其是在資源有限的vps環境中。正如之前所說,Apache 本身相當笨重,但它可以處理您所有的乘客、svn、php 需求。所以我不會將 nginx 添加到其中。畢竟,它又是一款需要維護(設定、更新/修補等)的軟體。
另外,我個人傾向於不是在我的應用程式運行的同一設定中託管我的原始程式碼。我對我們程式碼的穩健性和安全性非常有信心,但如果有人設法透過應用程式和伺服器找到一種方法,他也可以完全存取我們的原始程式碼。還有你的數據和你的程式碼修訂可能是你最不希望駭客得到的東西...
我知道這是一個無恥的插件,但我的公司在該品牌下提供捆綁的 Redmine 和 SVN 託管普拉尼奧。應該還有其他像 Planio 這樣的服務,這樣你就可以做出選擇。我的主要建議是:嘗試將支援系統的託管委託給值得信賴的外部各方,並將託管工作重點放在您的核心事物(即您的應用程式)上。