何时结合多个应用程序以简化其数据集成?
精简版:
我们有多个团队,每个团队开发多个应用他们需要分享一些数据。我们是否应该将这些应用程序组合成一个更大的应用程序以简化数据集成,还是应该将它们分开并利用一些数据交换/缓存机制?
更长的版本:
我们有许多团队,每个团队都在处理一组应用程序。其中许多应用程序需要共享数据。一种选择是使用异步消息传递来创建一个记录系统 - 所有写入都发生 - 并将该数据广播到需要它的任何其他系统。这些系统会将所需的数据位存储在只读缓存中(在其数据库中)。
这种布局的好处是一个系统可以在不影响其他系统的情况下爆炸。它还使各个团队更容易处理他们的个人应用程序。它使发布的安排更容易,更小的代码库可以导航等。
另一个选择是确定这些应用程序共享太多数据,并且消息传递/缓存的开销过高。在这种情况下,您可以决定将这三个应用程序合并为一个更大的应用程序然后,您将完全消除数据集成问题,因为您将集成移动到应用程序的单个模块的服务/事务层中。换句话说,MyGiantApp仍然可以拆分(罐子,应用程序上下文等)到各个模块中,这些模块通过另一个模块的事务服务API相互通信。在我们的例子中,我们几乎就像使用Spring一样
服务总线,使用方法调用而不是Web服务或异步消息传递。
虽然第二个选项简化了数据集成,但它使开发变得复杂。现在X团队必须处理相同的代码库。这可以通过使用分支,持续集成和单独的库/上下文等来稍微缓解,但在一天结束时它仍然是我们都在构建的一个令人遗憾的工件。此外,现在一个团队的错误可以更容易地传播到整个应用程序;一个应用程序吹出堆可以把所有下来。
您如何决定何时使用解决方案#1以及何时使用解决方案#2?
没有找到相关结果
已邀请:
3 个回复
诫商
亲奋漏
草票