微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 如何以可扩展的方式部署[Ruby on Rails]站点?

我一直在为[第一]初创公司工作一个月,而且从Alpha版本开始至少还有一个月,我想知道如何以正确的方式部署它.该网站将为新用户提供初始的高负载(网络cpu),因此我正在考虑为此初始进程分配一个单独的服务器/队列,以使其不会减慢现有用户站点速度.

根据我迄今为止的研究,目前我正在倾向于使用Nginx haproxy独角兽/薄memcached mysql,并在Linode上部署.但是,我以前没有任何经验;因此,我希望利用社区的经验.

>上述架构似乎合理吗?任何建议/文章/书籍,你会推荐?
Linode是不错的选择? Heroku / EY似乎对我来说太贵了(至少直到我有足够的收入),但是我还缺少一些其他更好的选择? MEDIATEMPLE?
>关于负载平衡架构的任何好的建议?我还在读书.
>最好在两个独立的线程上有两个独立的Rails服务器实例,或者在两个容量(以RAM /存储/带宽为单位)的线性路由上运行1个实例?我应该开始有多少个线路?
>我应该选择哪个Linux发行版? (Linode提供8个不同的 – http://www.linode.com/faq.cfm)它们之间的Rails网站有什么相对的优点/缺点?

如果我的任何问题是愚蠢的或矛盾的,我道歉;请把它归因于我缺乏经验.

解决方法

建筑

你在正确的轨道上我个人更喜欢乘客超薄/独角兽(长时间运行Nginx到薄后端)只是为了方便,但你提出的设置是相当标准的.如果您使用的是Ruby 1.8.7,那么建议您考虑使用REE Passenger来节省框架内存.

托管&负载均衡

Linode太棒了,我使用它们只是我可以做的一切,但你需要注意RAM限制.每个Rails进程使用一个平凡的RAM,你会想避免让机器进行交换.计划每台机器运行足够的Rails实例,以便您的内存分配大约是Linode内存的90%.您可能会想要另一个专门用于数据库的Linode,尽管您可以在同一台机器上启动它们;只要准备好随着MysqL的发展而分拆.您可以在私有IP上的同一个数据中心的线路间设置通信,而这些数据中心并不计入带宽配额.

您的缩放策略应该尽可能的水平,所以我建议只需要一个第二个Linode并将其添加到您的haproxy池,当您需要更多的马力 – Linode收取$20为512mb更多的RAM,或者你可以得到一个整体’ Nother Linode(具有cpu,RAM,HDD和带宽配额)为20美元.似乎没有脑子!).在Rails的情况下,一个实例是一个实例是一个实例,所以如果它在同一个虚拟机上是不重要的,只要连接到你的数据库机器的时间或者多少是一样的.您可以运行10个线性编程,每个运行10个Rails处理一个没有任何问题. Linode还提供了IP故障转移功能,因此如果您的主要的Linode(与haproxy)关闭,它可能会自动失败到一个辅助的Linode,然后您将有haproxy运行,并准备采取与第一个相同的容量.

分配

老实说,这取决于你!许多人去Ubuntu或Redhat(CentOS / Fedora)发行 – 我喜欢CentOS自己 – 但它真的只是你最感觉最舒服的.如果没有最喜欢的发行版,我建议您尝试使用Ubuntu / CentOS,因为它们对初学者来说相当友好,并且具有非常强大的社区支持.

你可能会选择一个32位的发行版,除非你有一个令人信服的理由选择一个64位的发行版; 64位可执行文件需要比32位对应的更多内存,由于RAM可能是您最宝贵的资源,所以将其保存在可用位置上是有意义的.

原文地址:https://www.jb51.cc/ruby/273369.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐