This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center




9年前关闭。




当我的公司收购另一家公司时,我继承了一个系统。该系统是LAMP和.NET的混合体。
  • 1运行asp.net的Windows服务器,该服务器控制仅用于api和web服务的第三方验证-(让我们称之为WIN)
  • 8个LAMP服务器(Web,报表,Cron,存储库等...)-(让我们称之为"new")

  • 我们当前的环境:

    14个LAMP服务器(Web,邮件,存储库等)-(让我们称之为CURRENT)

    好消息是,新代码非常有用。几百万行代码(大多数是api,第三方),我可以将其转换为CURRENT系统。 NEW和CURRENT都使用CentO,这将使转换变得容易,但Windows服务器除外,我现在不知道该怎么做。

    现在是坏消息。 NEW系统数据库架构根本不好。它没有规范化,查询速度很慢(数据库查询和代码也是如此)。我的第一个想法是将它们重新设计为与CURRENT代码匹配的更规范化的结构,但我不起作用。来自NEW系统的表格是巨大的。 NEW系统具有7个数据库,超过10000个表,最小的表具有超过10万行,有些表具有超过5亿行。其中一个数据库拥有大多数表,每个表都超过2500万行。

    迁移安全吗?还是应该让两者同时运行?如果我应该迁移,我想知道将Windows和NEW系统迁移到我的CURRENT系统中最安全的解决方案是什么?

    最佳答案

    首先,将WIN + NEW系统迁移到CURRENT系统将花费一些时间。因此,当您开始迁移/转换所有内容时,必须确保知道要去往何处。迁移可能不是一件容易的事,并且您可能会遇到在启动该过程后从未想到的问题。

    您迁移新系统的想法是有利有弊的,您需要确保它顺利进行,以便最终获得优质可靠的产品。

    优点:

  • 仅需维护一个系统:您不想维护3个系统;您可以维护3个系统。
  • 一个代码/数据库环境:PHP vs ASP.NET和MSSQL vs MySQL;
  • 集中式代码/数据库;
  • 一种编码(代码和数据库)标准;
  • 保存/出售设备(您将代码迁移到14台服务器上,也许您不需要其他9台(WIN + NEW),因此可以为下一个项目出售或保留它们)

    缺点:
  • 风险较高(崩溃,不兼容,您需要了解的未知功能等);
  • 比迁移或重新设计所有内容便宜
  • 发生故障的风险低于迁移(因为您已经知道两个系统都可以工作)
  • 计划,控制,实现,质量保证:如果其中一项失败,则非常糟糕;
  • 昂贵:迁移的时间和金钱可能很昂贵;

  • 这是一个很大的数据库,更改/优化此数据库将需要大量的人工时间投资。这不是您可以在几个小时内轻松完成的事情。为了成功地将数据成功迁移到CURRENT系统,可能需要花费数周甚至数月的时间。如果可以,您可以从两个数据库架构(例如客户端或产品)中迁移共同点或相似点开始。这样,您可以导入CURRENT系统可以正常运行的数据,并且您的代码也可以识别。您的CURRENT系统的用户可以立即开始管理这些项目/记录,而不会出现问题。从CURRENT系统无法识别的新记录或新记录开始,您可以简单地重新设计这些表并将它们迁移到CURRENT系统(然后更新当前代码)。

    从代码迁移开始,如果来自NEW系统的代码足够好并符合您的标准,则可以保留它。只要确保您更新查询和服务器连接,这将节省开发时间。另一方面,如果像意大利面条式的代码,则必须了解该代码的功能。这也可能需要大量的劳动时间投资。我可以在这里建议对此进行标准化,并按照在CURRENT上进行组织的方式来组织代码。您可以使用通用文件和文件夹结构将代码集中在一个通用文件夹中。您可以将所有公共(public)库,第三方等放置在此处。因此,当您调用CURRENT和NEW代码时,它将加载相同的PHP类。这将使您轻松地从新系统过渡到当前系统。这样,您就可以在同一位置知道所有需要的文件,并且非常容易维护。特别是如果您的代码需要必需的文件,而这些文件需要文件。如果您的服务器周围都是代码,那么您可以根据需要创建一个NFS。

    现在,我建议从Parallel Adoption开始。这样,您可以确保所有系统都正常运行并且运行状况良好。然后,将数据/代码缓慢迁移到CURRENT系统,直到一切完成。这并非易事,您必须确定必须先迁移NEW + WIN系统的哪一部分。我的建议是迁移WIN系统。因为这与CURRENT和NEW系统无关,所以只要您显示相同的输出,就可以了。在PHP中搜索开源或类似的验证,或者,如果找不到,请进行构建。这样,该WIN系统就可以轻松地迁移到您当前的组织结构和编码标准。执行测试和质量保证将很容易,并且您可以很快完成。

    迁移此WIN后,您需要确定首先要传输到CURRENT系统的内容。例如,如果NEW and CURRENT系统具有“客户端”,则使用脚本(手动或脚本)从NEW系统收集所有信息并将其移至CURRENT系统。然后,您可以迁移客户元素,例如产品,账单或与这些客户相关的任何其他记录。重复这些步骤,直到所有数据都被迁移为止。这样,您不必重新设计任何表或更改NEW系统中的任何代码,所有内容都保存在CURRENT系统中,并且一切正常。

    在这种情况下,我不建议使用big bang adoption

    10-07 19:21
    查看更多