技术迁移策略完整指南:(第 1 部分 - 简介)
已发表: 2020-12-23随着新技术每天都在发展,旧技术正在变得过时。 为了在当今的市场中生存,每家公司都必须保持最新状态。 任何为用户提供各种服务和平台的公司都必须准备好应对日常更新的技术。 在这种时候,移民就出现了。 公司总是可以迁移到一个新的更好的平台。 现在,有人可能会想,什么是迁移? 答案很简短,同时也有点复杂。 迁移对于非技术麻瓜来说是一个非常简单的术语,这意味着从一个地方迁移到另一个地方。 但是对于像我们这样的技术奇才来说,它的含义略有不同。 所以,让我们迈出第一步,从技术角度了解迁移。 迁移意味着从当前平台迁移到另一个平台。 在大多数情况下,迁移到更好的平台是因为它提供了更好的工作环境和用户体验。 有时,安全问题也可能导致迁移。 迁移有多种类型,以下是您可能想了解的一些最热门的迁移主题:
- 技术迁移
- 前端技术迁移
- 后端技术迁移
- CMS建站迁移
- 数据库迁移
- 域和托管服务器迁移
技术术语的迁移是一个比您想象的更广泛的话题。 在一个博客中涵盖所有迁移主题及其类型有点困难。 因此,本主题分为不同的部分,解释迁移及其类型的重要性。 您可以在即将发布的博客中阅读它们。
迁移是一项至关重要的任务,如果诸如何时迁移、如何迁移、定义迁移范围等问题困扰着您,那么您可能需要继续阅读此博客以理清思路。
为什么需要迁移?
- 当您工作了这么长时间的当前技术不再能够满足您的业务需求的期望时。
- 当技术过时并且供应商支持也不适用于过时的版本时。
- 当您的客户对您很重要并且您需要在您的领域中处于领先地位时。
- 当您不想再通过转向开源平台来获得当前堆栈的巨额许可成本时。

届时,迁移将是您的最佳选择。 迁移是一个复杂的过程,需要大量的计划。
迁移过程的第一步是您需要设置一些可以顺利执行迁移过程的定义和基本规则。 根据项目要求:
- 首先,您需要分析需要迁移的项目或应用程序的当前状态。
- 您将准备一份计算风险的路线图以及迁移过程中可能出现的可能解决方案。
- 您需要选择满足项目所有要求的适当技术。
- 接下来,您将需要一个适当的计划来执行迁移过程
- 最后,当迁移过程完成时,检查应用程序在新平台上是否按预期运行。

在继续迁移的规划阶段之前,您需要记住几点。
- 根据业务问题,在迁移计划阶段之前确定项目预算和时间表。
- 为想要从任何现有系统迁移到新系统的任何新客户确定一种工作模式,例如设置每小时费用或每周费用。 我们将在未来的博客系列中讨论几个灰色区域,只有在新的开发团队开始工作时才会遇到它们。 迁移不能用任何新团队的固定估计工作来处理。
- 如果客户是非技术人员,则始终建议您在迁移计划阶段之前签署一份说明迁移范围的合同,或者客户也可以聘请可以与开发团队联络的合同项目经理。
定义迁移范围
对于不了解当前系统的任何从事迁移项目的开发人员团队,客户应该花时间与新团队在一起,以确保团队了解系统的流程。 新团队必须花足够的时间来分析现有系统并制定迁移计划。 同时,客户可以随时提出他在当前系统中面临的业务问题。
要定义项目范围,客户必须分享详细的项目要求才能成功完成迁移。 开发人员和客户必须与迁移计划保持一致,并且必须就迁移的所有方面进行适当的讨论,以防止未来出现所有问题。
有时,开发团队可能不会创建后端技术中映射的业务逻辑的详细文档。 如果迁移是由同一个团队完成的,那么它不会产生任何重大问题,但是当迁移由一个新团队完成时,文档真的很重要。 所以强烈建议有详细的业务逻辑文档。

确保在您的范围文件中明确说明任何超出原始范围的工作都将被视为额外工作,并将收取包括原始预算在内的额外费用。 这将帮助您防止将来可能发生的范围蔓延。
如何迎合Scope Creeps?
在我们了解 Scope Creep 的处理之前,让我告诉您有关 Scope Creep 的术语以及它如何影响开发团队。 范围蔓延是项目中引入的不断变化的技术要求而没有延长时间线或增加项目预算的结果。

导致 Scope Creeps 的原因有很多,下面列出了一些非常常见的原因,以便您在项目迁移中避免这些蠕变。
- 对项目需求的误解是范围蔓延背后最常见的原因之一,这给开发人员在迁移的后期阶段带来了麻烦。
- 避免陷阱,例如来自最终用户的频繁反馈。 娱乐所有反馈点毫无意义。 但这并不是说您根本不接受反馈。 只选择最重复和最引人注目的。
- 同意所有变更请求可能有助于建立积极的关系,但最终会导致客户对项目的不满。 因此,在同意反馈或更改请求之前,只需确保其优先级和紧迫性,并告知最终客户对工作的影响。
- 还有无数其他因素会影响您无法控制的项目范围,例如现有技术中添加的新功能、市场的经济变化、个人紧急情况等,因此最好为这些可能性做好准备。
既然您已经理解了“范围蔓延”一词并知道最终可能导致的原因,那么有一点很清楚,即预防性计划是避免迁移项目范围出现任何蔓延的最佳方法。 无论您做了什么计划,都没有可能准确地假设您的项目需求中的每个未来功能更改请求。 在这种情况下,迁移范围的文档可以拯救你。
技术栈的选择
作为开发人员,您面前有很多选择,例如 MongoDB 到 MySQL、AngularJS 到 React、MEAN 堆栈到 LAMP 堆栈以及像 Amazon AWS 这样的云托管服务器到像 Apache 这样的自托管服务器。 这些选项可能会使任何人感到困惑。 因此,选择一个计划好的技术栈进行迁移是开发人员的责任。 您还需要为未来的每一个需求做好准备。
如果您想选择迁移平台并且不清楚新平台的要求,那么您可以选择聘请有经验并在复杂系统中工作过的解决方案架构师。 理想情况下,这将是第三方咨询,因此客户可以自己聘请解决方案架构师,也可以向开发公司付款。 这应该在规划迁移阶段之前就应该完成的任务进行协商和商定。

您需要确保新平台的功能已经过试验和测试。 当然,您不想成为第一个知道新平台的缺点和陷阱的人。 您需要确保所有数据都得到安全保存,并且其他功能在迁移到新平台后不需要太多修改。 迁移是一个复杂的过程,但如果做得正确,它可以为旧的、过时的技术提供新的开始。
确保检查当前系统是否有 DevOps。 DevOps 有助于缩短系统开发生命周期并提供持续交付。 如果当前系统已经在使用这些工具,那么您可以选择升级版本或继续使用相同的版本。 始终建议使用某种 CI/CD 工具,因为它使迁移过程对开发人员来说有点简单和系统化。 此外,开发团队应遵循严格的代码审查和代码推送方法,例如。 GitFlow 模型或 GitHubFlow。
在您有了项目的要求、迁移范围和技术堆栈后,您可以轻松地为您的平台选择更好的替代品。 有不同类型的迁移,在继续进行之前,让我明确一点,并非每个迁移都是相同的,并且每个迁移都需要适当的计划和执行。 迁移及其类型是更广泛的主题,因此本博客后续有 3 个不同的部分,您可以在其中获取有关每个迁移的详细信息。 在即将发布的博客中,我们将讨论技术迁移及其类型。 所以,敬请期待!