【问题标题】:Back out plan for a Web App退出 Web 应用程序的计划
【发布时间】:2011-02-01 12:03:03
【问题描述】:

我们需要一个 Web 应用程序的退出计划,该应用程序的第一个维护版本即将投入生产。 我们面临的问题是,即使我们退出新的 EAR 并部署旧的 EAR,使用新版本键入的数据也不支持旧的业务规则(当前),因为业务规则发生了巨大的变化。 您能建议我们如何解决这个问题吗?

【问题讨论】:

    标签: database deployment web-applications jakarta-ee


    【解决方案1】:

    这通常需要一种系统性的方法来限制您如何改进应用程序。例如,最好先推出模式更改,然后让它们温和地放在旧应用程序中。然后,如果可能的话,与旧系统并行推出新系统,并使用测试帐户进行访问。最后,您最好以交错的方式向客户推出。

    在不了解您应用的具体细节的情况下,我不能说这种方法对您来说有多可行,但我会说它通常需要在设计新版本的早期阶段进行大量思考。

    【讨论】:

    • 新版本中没有架构更改。唯一的变化是一些业务规则的边界条件。例如,早期版本中允许的产品期限价值是 6 年,现在是 9 年。如果用户在新版本投入生产后选择 8 年作为期限值,并且如果我们撤销更改,则键入的数据将触发旧版本的应用程序。我们有一个正在测试系统的预生产环境。但客户希望有一个退出计划,以便更安全。
    【解决方案2】:

    如果没有系统的先验知识,这是一个非常难以回答的问题。 旧数据是否有升级路径可以在新版本中正常工作? 如果是这样,您可能无需担心。 您可能会遇到以下情况:

    1. 新版本太糟糕了,无法使用,必须回滚-不会输入任何值得一提的新数据,只是用旧数据恢复旧版本
    2. 新版本还可以,有些问题,你需要临时回滚 - 新数据将不可用,如果绝对必要,你可以手动调整一些,同时你的团队正在疯狂地修复新版本并重新部署
    3. 新版本很好,服务器崩溃 - 您只需从安装后所做的备份中恢复,所有新数据都转换为使用新规则

    【讨论】:

    • 好的。为了清楚起见,让我讲一个场景。根据旧应用程序,允许购买产品的客户的最大年龄是 35 岁,而根据新的业务规则,它是 40 岁。假设客户进行的交易年龄为 39 岁,旧规则不支持。因此,如果客户对其帐户/交易进行任何维护,系统将致命。同样在这种情况下,我们无法修改客户的年龄以支持旧版本的应用程序。
    • 系统可以简单地标记坏数据而不是致命的,以便有人(人类或非人类)可以在处理恢复之前对其进行处理
    • @nobody:你能举个例子,在新数据上使用旧版本的应用程序的场景吗?
    猜你喜欢
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    相关资源
    最近更新 更多