Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 高可用性rails部署_Ruby On Rails_High Availability - Fatal编程技术网

Ruby on rails 高可用性rails部署

Ruby on rails 高可用性rails部署,ruby-on-rails,high-availability,Ruby On Rails,High Availability,我正在为安全的高可用性环境中的rails制定部署策略和脚本。我们当前的脚本是自主开发的shell脚本。我们希望使用更标准的流程。但是 我很难相信任何拥有高可用性生产环境的人都会从代码树的实例运行部署。如果我要这样做,我会有代码树,只是为了部署,因为我不能从开发环境访问我的生产环境 我不打算用流浪汉,因为我认为这不适合生产 我不打算使用虚拟盒,因为我不想增加开销 对于如何使环境高度可用,我有一个单独的计划,所以这个问题与此无关 我只需要一种体面的方式将rails部署到安全的生产环境中。在我看来,在

我正在为安全的高可用性环境中的rails制定部署策略和脚本。我们当前的脚本是自主开发的shell脚本。我们希望使用更标准的流程。但是


我很难相信任何拥有高可用性生产环境的人都会从代码树的实例运行部署。如果我要这样做,我会有代码树,只是为了部署,因为我不能从开发环境访问我的生产环境

我不打算用流浪汉,因为我认为这不适合生产

我不打算使用虚拟盒,因为我不想增加开销

对于如何使环境高度可用,我有一个单独的计划,所以这个问题与此无关

我只需要一种体面的方式将rails部署到安全的生产环境中。在我看来,在我的生产lAN上,在我的colo的机器上为每个项目都有一个树的特殊实例,这样我就可以部署到其他机器上,特别是因为部署将使用标记从存储库获取要使用的应用程序版本

有人能帮忙吗?有战争故事吗?我改变观点的明确理由

编辑: 评论中的每个问题:


生产有一个网络层,即ssl、防火墙、基于名称的转发。应用层是rails所在的位置,只有在通过网络层(或vpn-ed-in)进行ssh接入以进行生产监控或管理时,才可以访问应用层,但我无法直接从我的开发框中进行scp、rsync或ssh。db层可从应用层服务器访问


谢谢

有一个相对较新的分布式部署框架,称为。我从来没有在Rails上使用过它。我唯一用于大型rails部署的是chef,但我和一位朋友正在为其他一些(jvm)项目使用Juju,它非常强大

以下是rails和juju的入门介绍

您可以在github上(当前)找到一个

juju的优点之一是,您可以拥有一台服务器来管理到其他服务器的部署。这样,您就不必打开本地计算机上的服务器进行部署


祝你好运

“我无法从开发环境访问我的生产环境”-那么,您从哪里可以访问它?您的存储库托管在哪里?我强烈推荐Capistrano的灵活性/自动化/回滚功能,但我不清楚您的具体设置。生产有一个网络层,即ssl、防火墙和基于名称的转发。应用层是rails所在的位置,只有在通过网络层(或vpn-ed-in)进行ssh接入以进行生产监控或管理时,才可以访问应用层,但我无法直接从我的开发框中进行scp、rsync或ssh。db层可以从应用层服务器访问。那么,如果您不能亲自使用ssh,哪些系统可以访问网络层呢?你能用ssh连接到这样的系统吗?网络层可以直接访问您的回购协议吗?我想重点是,我不想在我们的安全生产环境中打开一个漏洞,以便我们能够以一种对我来说毫无意义的方式进行部署。从开发环境运行部署有什么真正的原因吗?当前的部署脚本要求一个人在他们要部署的机器上拥有sudo,就是这样。是否没有其他人拥有安全的生产环境,他们无法从笔记本电脑轻松访问(或者其他人可以从笔记本电脑轻松访问)?