Asi*_*ikh 14 scalability ruby-on-rails linode
我已经在我的[第一个]创业公司工作了一个月了,虽然它可能距离alpha版本还有一个月的时间,但我想知道如何以正确的方式部署它.该站点将为新用户提供初始高负载(网络+ CPU),因此我考虑为此初始进程设置单独的服务器/队列,以便它不会减慢现有用户的站点速度.
根据我目前的研究,我目前倾向于nginx + haproxy + unicorn/thin + memcached + mysql,并在Linode上部署.但是,我之前没有任何经验; 因此,我希望利用社区的经验.
如果我的任何问题都是愚蠢或矛盾的,我会道歉; 请把它归结为我的经验不足.
Chr*_*ald 18
建筑
你走在正确的轨道上.我个人更喜欢Passenger over thin/unicorn(长时间运行nginx到瘦后端)只是为了方便,但你提出的设置是相当标准的.如果您使用的是Ruby 1.8.7,我建议您考虑使用REE + Passenger来节省框架内存.
托管和负载平衡
Linode太棒了,我将它们用于我所能做的一切,但你需要了解RAM的限制.每个Rails进程使用大量的RAM,您将希望避免让机器进行交换.计划在每台机器上运行足够的Rails实例,以便内存分配大约是Linode内存的90%.你可能想要另一个专门用于数据库的Linode,尽管你可以在同一台机器上开始使用它们.随着你的成长,准备分裂MySQL.您可以在专用IP上的同一数据中心内设置Linode之间的通信,这不会计入带宽配额.
你的扩展策略应该尽可能水平,所以我建议你只需要获得第二个Linode,并在你需要更多功能时将它添加到你的haproxy池中 - Linode收取20美元的512美元RAM,或者你可以得到一个整体另外,Linode(带CPU,RAM,HDD和带宽配额)的价格为20美元.看起来很简单!).在Rails的情况下,实例是一个实例是一个实例,所以无论它是否在同一个VM上都无关紧要,只要连接到数据库机器或其他什么的时间或多或少相同.您可以运行10个Linode,每个运行10个Rails进程,而不会出现太多问题.Linode还提供IP故障转移,因此如果您的主要Linode(使用haproxy)发生故障,它可以自动故障转移到辅助Linode,然后您可以运行haproxy,
分配
老实说,这取决于你!许多人都使用Ubuntu或Redhat(CentOS/Fedora)发行版 - 我自己喜欢CentOS - 但它实际上只是你觉得最舒服的东西.如果您没有最喜欢的发行版,我建议您尝试使用Ubuntu/CentOS,因为它们对初学者来说往往非常友好,并且拥有非常强大的社区支持.
你可能想要选择一个32位的发行版,除非你有一个令人信服的理由选择一个64位的发行版; 64位可执行文件需要比32位可执行文件更多的RAM,并且由于RAM可能是您最宝贵的资源,因此将其保存在尽可能的位置是有意义的.
| 归档时间: |
|
| 查看次数: |
1879 次 |
| 最近记录: |