Ruby on rails 设置连续部署环境以实现高效扩展

Ruby on rails 设置连续部署环境以实现高效扩展,ruby-on-rails,ruby-on-rails-3,continuous-integration,continuous-deployment,Ruby On Rails,Ruby On Rails 3,Continuous Integration,Continuous Deployment,我几乎准备好启动我的rails应用程序了,我一直在用一个linode盒测试它。我的git repo目前也托管在同一个盒子上,其中还包括应用程序和数据库。我想将它们分为3个实体——一个数据库服务器、一个应用服务器(可以轻松添加更多),以及一个托管在bitbucket上的repo 理想情况下,我希望能够将我的代码提交到bitbucket,然后设置一个提交后钩子,将其推送到应用服务器,从repo中提取新的更改,并自动开始为它们提供服务。我花了很多时间阅读有关木偶、厨师、乘客等的书籍,我感到非常震惊。我

我几乎准备好启动我的rails应用程序了,我一直在用一个linode盒测试它。我的git repo目前也托管在同一个盒子上,其中还包括应用程序和数据库。我想将它们分为3个实体——一个数据库服务器、一个应用服务器(可以轻松添加更多),以及一个托管在bitbucket上的repo

理想情况下,我希望能够将我的代码提交到bitbucket,然后设置一个提交后钩子,将其推送到应用服务器,从repo中提取新的更改,并自动开始为它们提供服务。我花了很多时间阅读有关木偶、厨师、乘客等的书籍,我感到非常震惊。我的设置工作正常,但我知道到时候它的伸缩性不好,所以我需要进行切换。我想要的帮助是确定除了我已经设置的工具之外,我还应该使用哪些工具,以使过程尽可能顺利


谢谢

厨师路线将是最好的,但这方面的学习曲线很陡峭。你会考虑使用EC2吗?如果是这样的话,这个gem可以帮助您准备(类似于Chef、Puppet)并部署到EC2。您可以设置不同的角色,它还使用Capistrano


就我个人而言,我有用于开发和登台环境的流浪箱。Chef通过一个命令帮助我在他们身上配置/安装软件,包括我的生产服务器。在我的开发环境中,我可以使用Capistrano从bitbucket上的git repo将代码部署到我的暂存和生产环境。

我要做的第一件事是将git存储库移动到GitHub(或bitbucket,尽管我觉得它不如GitBucket)

除非你的应用程序会大受欢迎,否则用于制作的Linode将很好地为你服务。请记住,您可以升级到更大的实例,而不会破坏设置中的任何内容

我不建议在你有任何用户之前花时间将应用程序拆分成多个服务器,特别是如果你还不精通你提到的基本工具的话

您还可以将应用程序移动到。将一个实例作为临时服务器,另一个作为生产服务器。它将无限扩展,您无需担心自动资源调配和安全性。你的应用程序将启动并运行得非常快,这是最重要的

如果您在Linode上使用非自动化的手动过程设置生产服务器,情况也不会太糟。在这个过程中你会学到很多东西。这取决于你,尽管我建议默认从Heroku开始。如果随着时间的推移,你在Heroku上发现一些限制你的应用程序的东西,那么当你的应用程序成熟并且(希望)有利可图时,它可能会及时出现,所以这将是一个卷起袖子管理你自己硬件的好时机

我也不建议每次推送到存储库时都进行部署。你肯定需要至少确保你所有的测试都通过(你写的测试对吗?)。持续集成服务器可以在您推动回购时自动为您运行它们。我可以为此推荐

请注意,如果您在Heroku上,部署只需从终端推送一次git