【问题标题】:Lifecycle management of a Rails application serverRails 应用服务器的生命周期管理
【发布时间】:2011-05-15 17:51:24
【问题描述】:

我们正在开发一个具有 iPhone 客户端和 Rails 服务器的应用程序。我们已经发布了第一个版本,现在开始开发 1.1 版本。 我们想知道是否有任何工具(外部的或由 hostsrails 提供)来满足这两个基本要求: - Rails 应用程序的开发/生产版本 - 应用程序的同步实时版本(版本化 API),例如继续支持旧版本的客户端应用程序 iPhone。

我们现在考虑的第一种方法是为我们想要的每个 API 版本复制应用程序,每个版本都由特定的 URL 引用,例如:myapp.com/v1 , myapp.com/v2 ... 整个堆栈本身将被复制,以便拥有一个实时/生产版本和一个开发版本。测试完成后,开发版本将切换为生产版本。

您如何看待这种方法?是否有任何工具可以管理应用程序的生命周期? Rails 是否有内置功能来促进这一点?

谢谢

【问题讨论】:

    标签: iphone ruby-on-rails lifecycle alm


    【解决方案1】:

    最简单的方法就是保持您的 API 向后兼容,从而避免维护两个版本的 API一个真正的终止日期,这样你就不会无限期地支持它。

    如果您一定要走这条路,请先阅读 Fowler 关于该主题的博文 (http://martinfowler.com/bliki/TolerantReader.html),然后查看 API 路由的命名空间。在 Rails 中,您可以使用命名空间路由和控制器来完成此操作,因此您的原始 api 可能位于 /application/endpoint,新版本位于 /application/v2/endpoint(我假设您无法轻松更改旧客户端的端点)

    我不知道有任何工具明确声称可以解决您说要解决的问题,但我认为这与开发人员努力工作而不需要它们有关,而不是认为它们是在 Rails 中无法解决。

    【讨论】:

      【解决方案2】:

      您是否考虑过使用子域?:http://railscasts.com/episodes/221-subdomains-in-rails-3

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-11
        • 2011-05-09
        • 1970-01-01
        • 2012-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多