2013-06-20 32 views
4

我刚刚开始为一家正在经历成长痛苦的小公司工作。我不确定我要在这里描述什么样的系统。基本上,我们有许多不同的第三个应用程序的杂烩,这些应用程序正在通过本地化的“集成系统”相互通话,这是一个混合了SQL作业,用.NET编写的后台服务,FTP传输和SSIS等。本地集成系统还是ESB?

是鸟瞰图: 我们面向公众的网站是由供应商在场外托管的订单输入系统(第三方购物车软件)。我们每天每4小时下载订单信息。这些数据然后通过我们自己生产的“集成系统”进行处理,该集成系统将这些信息提供给我们的库存和仓库管理系统(WMS)。它也向MS Great Plains,Pulse,PayFuse和第三方CMS等提供信息。

正如您可能已经猜到的,这种体系结构非常脆弱,并且轻微的事故(例如SQL作业失败的FTP失败)可能会导致数据的差异可能会产生多米诺骨牌效应。有时由于数据相关问题或复制问题可能导致整个仓库停滞不前,我们有时无法接受订单,处理或装运订单。

我的任务是重新构建我们的系统,并消除系统之间的紧密耦合以允许业务增长。我需要了解哪些方面?我一直在研究ESB和SOA,但被告知我的公司无法承担50万美元的承诺,比如说iWay或者Talend。

有什么选择?内部开发的答案是否比ESB实施更便宜?有没有人经历过类似的成长之苦?如果是的话,你是如何处理整合的?

+0

首先:我自己开发了以下软件(主要是)---您可以试试我的FOSS项目Shuttle(https://shuttle.codeplex.com/)。在主机环境中,您可以将您的队列从sql server表中移除。它正在一家大型国际保险公司和南非四大银行之一投产。也可以在其他地方使用,但我不会意识到这一点。给它一个去,请让我知道你应该看看你的想法。 –

回答

7

下面是我将如何解决这个问题。

  1. 忘掉一个单一的“完美”系统的前端设计。
  2. 忘掉一次全部更换。
  3. 找到一些会导致很多痛苦,相对容易更换,并且不会威胁到业务存在的东西。首先开展工作。

在某些方面,有一个“许多不同的第三方应用程序的杂烩”是一件好事。你可以留下更好的产品,同时专注于修复那些商业价值最高的产品。

找出你的稳定的业务概念并明确地模拟这些概念。命令和事件模式在这里是你的朋友。按照SOA原则将这些概念分组为“服务”。

从您的文本看来,围绕SLA的讨论已经隐含开始了。明确这些SLA讨论的内容,但重点关注一段时间内朝着目标而非隔夜转型的改进。

这个转型的手动轧制基础设施可能不值得花时间,但是在你知道你要去哪里之前花6或7个数字在产品上也是不明智的。自从你提到.Net以来,我已经使用了NServiceBus,并发现它是一种愉快的编程体验。您专注于您的域名和业务逻辑,让NSB处理管道/基础设施。对于低消息吞吐量,有一个免费选项。这使您可以在讨论预算和资金之前提供一些商业价值。除了网站上的文档外,还有一个蓬勃发展的NServiceBus community帮助您入门。

在.net空间还有其他选项,包括MassTransitEventStore。我没有亲自使用过这些功能,它们在功能上并不相同,所以您需要查看它们并查看满足您需求和您团队功能的内容。

+3

伟大的答案IMO。我同意Kijana的方法。在第一次修复之后,重点关注改进业务运行的流程:即接受订单,并确保系统可用并且不会丢失数据。按小步骤细化架构,随时增加价值和稳定性。以我的经验,Kajina提到的产品真的很有帮助。我会远离昂贵的经纪商类型的产品,因为他们往往只会引入另一个失败点和复杂性,并且甚至在解决任何问题之前都会花费您很多钱。这是一项艰巨的任务,您无法一次解决所有问题。 – Roy

+1

我正在使用Java部分Talend ESB的项目。我们的开发团队使用.NET和NServiceBus。我们在几周内开发了一个定制的ActiveMQ传输层,用于本地集成Talend解决方案。社区,特别是NServiceBus周围的人们帮助我们解决了这些问题。社区是NServiceBus的最大好处。我不会尝试推出自己的产品,因为管理交易等事情会延迟您的功能输出几个月...... –

+1

虽然我喜欢社区,但很难推销这样的产品。特别是因为我和Umbraco一起为自己而战。最新版本应该是非常棒的,并且支持MVC并且拥有一个很棒的社区。直到翁布拉科组织。决定放弃该版本,因为它有一个糟糕的建筑设计。我们几乎投入了大量资金。很高兴我们推迟了这个项目。 幸好NServiceBus已经支付支持:http://particular.net/support –

2

在过去的几年中,我们一直在研究一些类似的问题。利用ESB将帮助你消除它。一旦团队开始欣赏脱钩,这会给你带来加速过程。我对NServiceBus最熟悉,我们发现它具有非常低的进入门槛。开发人员可以快速提取,而且试用成本低。我同意你想从这个对企业最为关键的领域开始,并且首先在实战基础上做到这一点。