2013-08-16 48 views
1

我們想在我們的rails應用程序的彈性beanstalk上同時運行developmentproduction實例。的production哪些InstanceType用於rails彈性beanstalk開發與生產?

特點是:

  • 低流量
  • 晴CRUD
  • 慾望響應頁面(商業努力,不愛好)

數據庫要求(無對EB實例):

  • 將使用多模式RDS實例
  • development目前使用SQLite的EB例如
  • 也許會使用相同的RDS實例都developmentproduction

我們development是目前t1.micro,並明確表示即使開發也不會削減它(登錄有時需要60秒)。

我將實驗,但如果任何人有建議的任何快速位用於選擇一個適當的實例類型爲每個env和其標準將理解/約束是最有意義的軌道即計算單元。

+0

僅供參考 - 從t1.micro開發實例從8-19〜分鐘至-3 M 30秒移動到的m1.small減少了部署。 – kross

回答

1

我的2美分 - 精益對CPU的內存上的一側。 CPU總是有幫助;至少您的應用程序將在部署時更快地編譯資產並加載到內存中。我建議從生產中的2個c1.medium開始(2個不同的基本冗餘AZ)和1個m1.small開發。

不要過度考慮機器大小,而應該獲得低懸的成果,即:將靜態資產放在CDN上並實施片段緩存(存儲在每個環境的專用redis或memcached節點中)。

如果你從來沒有這樣做過,New Relic的Pro將有可能給你一個很大的開端識別您的應用程序的瓶頸。

然後加載測試!

而且,請不要共享生產與發展之間的RDS實例。通過給每個自己的數據庫來隔離這兩個環境。

+0

爲什麼單獨使用RDS而不是在一個整合的RDS實例上使用不同的模式? – kross

+0

立即出現的原因:a)您將一個bug部署到開發中,導致嚴格的查詢循環來確定RDS,b)您可以安全地加載測試開發集羣。 –

+0

負載測試和錯誤是有道理的,可能是一個值得冒險的風險,因爲我們距離回滾只有幾分鐘的路程。由於我們完全是BDD/CI/CD,因此定期進行負載測試可能意味着要爲負載測試啓動RDS(全尺寸),而不是始終產生獨立RDS的持續成本。思考? – kross