我正在为安全的高可用性环境中的 Rails 制定部署策略和脚本。我们当前的脚本是自制的 shell 脚本。我们希望使用更标准的流程。但...
我有点难以相信拥有高可用性生产环境的任何人都会从代码树的实例运行部署。如果我要这样做,我会在那里拥有代码树,只是为了部署,因为我无法从开发环境访问我的生产环境。
我不会使用 vagrant,因为我认为它不适合生产。
我不打算使用虚拟盒子,因为我不想要开销。
对于如何使环境高度可用,我确实有一个单独的计划,所以这个问题与此无关。
我只需要一种体面的方式来将 Rails 部署到安全的生产环境中。对我来说,在我的生产 LAN 上的机器上为每个项目创建一个特殊的树实例似乎很愚蠢,这样我就可以部署到其他机器上,特别是因为部署将从中获取要使用的应用程序版本使用标签的存储库。
任何人都可以帮忙吗?有战争故事吗?我改变观点的明确理由?
编辑:评论中的每个问题:
生产有一个网络层,即ssl、防火墙、基于名称的转发。应用程序层是 rails 所在的位置,只有当您通过网络层(或 vpn-ed)进行 ssh-ed 以进行生产监控或管理时才能访问,但我不能直接从我的开发框中进行 scp 或 rsync 或 ssh . db 层可从应用层服务器访问。
谢谢!