从整体式旧版应用程序以增量迁移方式处理状态数据

时间:2019-01-16 18:32:19

标签: architecture enterprise

我有一个非常庞大的整体式遗留应用程序,负责将其分解为不同体系结构上的许多上下文相关的应用程序。我的管理层一直在推动新旧应用程序协同工作,直到所有旧功能都已迁移到当前体系结构为止。

不幸的是,就像许多单片应用程序一样,该应用程序为每个用户交互维护非常大的状态数据集,并且必须在用户逐步使用该功能时对其进行维护。

我的问题是,我可以通过哪些方式负责任地满足混合遗留/非遗留体系结构,以便将来所有新的单个应用程序都无望地依赖于此共享状态模型?

我最初的想法是将状态数据写入某种缓存,旧应用程序和新应用程序都可以访问它们,以便它们可以和谐地工作,直到新应用程序具有独立运行所必需的基础结构为止。我对此方法非常怀疑,因此希望获得一些反馈或解决问题的新方法。

1 个答案:

答案 0 :(得分:1)

每当我处理这种情况时,我都会对数据采取双重写入方法,因为它主要是数据迁移问题。拆分每项功能时,您将有效地拥有两个数据模型,直到完全弃用了旧模型。的基本步骤是:

  1. 一旦拆分出一个组件,就开始将数据写入旧数据库和新数据库。
  2. 使用旧版本中需要的任何内容回填新数据库。
  3. 验证两个数据是否相同。
  4. 更改所有依赖于此部分数据的内容,以从新组件/数据库中读取。
  5. 更改所有依赖于此部分数据的内容,以将其写入新的组件/数据库。
  6. 弃用旧数据库中的数据,即备份,然后将其删除。这将确认您已迁移了该块。

优点是不会丢失数据或失去功能,并且您有时间测试为组件选择的每个数据模型,以查看其是否与应用程序流一起使用。切成一个整体可能会很棘手,这决定了您的有限上下文所处的位置非常关键,并且没有完美的科学依据。始终牢记您需要在哪里扩展应用程序以及执行哪些操作。