【问题标题】:Deployment structure for Ruby on Rails application and amazon cloud serviceRuby on Rails 应用程序和亚马逊云服务的部署结构
【发布时间】:2015-12-04 14:59:37
【问题描述】:

如何组织开发提升周期?

是的,我明白这是一个非常困难的问题;尽管如此,我还是试图在数千篇文章/文档等中找出组织我的开发过程的最佳方式。但是,我害怕可能导致损害的痛苦错误。

有一个项目;我们称之为titan。该项目在Ruby on railspostgresql 作为数据库上实施。目前的结构是

[developer]->[dev-server]
             {
             (load-balancer)->app_server_1<---write/read--->Postgresql(master)         
                                                                |
                                                                |replication
                                                                |
                            ->app_server_2<---read.only---->Postgresql(slave)
             }

这是应用程序的预期结构;此应用程序仅供开发人员使用,因此无法从 Internet 访问。 在这一点上出现了第一个问题。我打算在亚马逊云服务中部署我的应用程序。

当然,我可以在云端创建虚拟机,复制项目文件,配置所有员工,但这需要很多时间,而且有时会导致不同的问题和错误。 我想为开发人员(我)创建环境,这将帮助我通过单击按钮来部署我的应用程序。

我认为有些软件可以通过部署轻松处理我的任务,但现在我坚持使用它。所以我认为有适合我的结构

               [amazon]---------{
                  ^      (load-balancer)->app_server_1<---write/read--->Postgresql(master)   |     
                  |                                                        |
                  |                                                        |replication          |
                  |                                                        |
                  |                     ->app_server_2<---read.only---->Postgresql(slave)    |
                  |
                  |    }
                  |(a)
[developer]->[dev-server]
             {
             (load-balancer)->app_server_1<---write/read--->Postgresql(master)         
                                                                |
                                                                |replication
                                                                |
                            ->app_server_2<---read.only---->Postgresql(slave)
             }

(a) 处有很多问题。在这个阶段我想测试我的应用程序(单元测试),根据亚马逊的服务器配置重新配置,将其状态更改为production,而不是dev。等等。 我希望它应该是一个可以帮助我做到这一点的软件,或者你会给我一些有用的提示。

【问题讨论】:

    标签: ruby-on-rails postgresql amazon-web-services deployment


    【解决方案1】:

    在 Rails 中,development 环境旨在在您的机器(或某种虚拟机)上本地运行,如果需要,您可能会在 Intranet 上共享它,但永远不要在服务器上使用 developmentsettings 运行 Rails公众可以访问,因为它们可能不安全。您可以将生产服务器镜像到您的开发环境中,但开发和测试不应该连接到您的生产数据库,因为这是一种糟糕且不安全的做法。

    如果您想拥有一个环境,您可以在其中测试功能并将其展示给利益相关者,然后再将其部署到生产环境中,您可以创建所谓的 staging 环境.通常,暂存环境在实时数据库的镜像上工作,并具有额外的访问控制。

    Rails 允许您创建任意数量的环境 - 名称基本上只是告诉 rails 加载 /config/environments/{name}.rb 和特定于该环境的 gem。

    作为工作流程的一部分,您应该已经在使用 GIT(或至少某种版本控制)。 AWS 有很多工具可以让您使用deploy from your Github repository 或其他代码托管存储库。

    【讨论】:

      猜你喜欢
      • 2015-07-28
      • 2013-12-23
      • 2014-06-26
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2012-06-21
      • 1970-01-01
      • 2017-10-12
      相关资源
      最近更新 更多