我目前在HostingRails.com有一个VPS,并且对这个服务感到非常失望,所以我一直在考虑切换到linode。 我有三个在Passenger上运行的rails应用程序(我的实时应用程序,实时应用程序的QA版本和一个redmine ),一个phpbb安装,以及一个当前在我的VPS上运行的mysql数据库,总共占用大约400MB的RAM此时此刻。
我试图弄清楚是否最好能得到一个720MB的节点,只需要把所有的东西都粘在那里,或者得到两个360MB的节点,在一个站点和QA站点上有live site,在另一个站点上redmine(在这种情况下,你会build议两个单独的数据库,每个节点一个)? 有人向我提出,分拆我的申请是个好主意,但我不知道这是否属实; 我认为,如果我有一个节点,如果实时应用程序需要更多的内存,它可以从我的QA安装和redmine可能不会完全使用的360MB。
此外,我目前有我的SVN(一个活跃的项目,一对夫妇不活跃的,两个用户)在Dreamhost托pipe,因为我提前付了一个计划,离开我的SVN,而不是将其移动到我的VPS。 将SVN移动到linode会影响你的答案?
有了两个节点,在获得相同数量的内存的同时,也可以获得两倍的CPU时间和IO令牌。
SVN可以运行在与Passenger相同的apache实例中,而不会对性能造成太大的影响。
另外,您可能需要考虑一个不同的设置:一个数据库节点和一个Web服务器节点。 也不会被利用不足(毕竟apache是相当重的),如果他们在同一个数据中心,你可以指向两个公共IP在Web服务器节点(Linode允许这个),让它通过Linode的数据库节点的局域网(避免传输配额)。
从为几个基于Rails的企业提供托pipe托pipe的经验来看,它一直被certificate是成功的,可以将数据库和应用程序分开(正如fahadsadah指出的那样)。
但是,我不会在同一台机器上运行Apache 和 nginx,特别是在有限资源的vps环境下。 如前所述,Apache本身相当沉重,但它可以处理所有的乘客,svn,php的需求。 所以我不会添加nginx的组合。 毕竟,这是另一个需要维护的软件(configuration,更新/修补等)。
此外,我个人倾向于不在我的应用程序运行的相同设置中托pipe我的源代码。 我对代码的健壮性和安全性非常有信心,但是如果有人设法通过应用程序和服务器find方法,那么他也可以完全访问我们的源代码。 而你的数据和你的代码修改可能是你想要一个黑客得到他的手最后一件事…
我知道这是一个无耻的插件,但我的公司提供捆绑的品牌Planio的 Redmine&SVN托pipe。 还应该有像Planio这样的其他服务,所以你可以做出select。 我的主要build议是:尝试将托pipe系统委托给可信任的外部团体,并将您的托pipe工作集中在核心事务(即您的应用)上。