最后更新于2017年11月6日星期一21:42:21 GMT

您是否发现您的组织正在开发基于云的新应用程序, 但无法摆脱一些既定的遗留系统? 你并不孤单. 这种遗留/云混合环境比您想象的要普遍得多. 当你回顾这些应用程序背后的历史时,它确实是有道理的. 任何存在了几年以上的组织都可能在至少一个遗留应用程序上进行了一些投资. 成立时间较长的组织可能拥有在与今天的需求相差几代的模型下开发的软件. 基于云的应用程序, (至少那些设计良好的), 能提供敏捷性和灵活性吗, 但是遗留应用程序呢?

首先,什么是传统应用? 简而言之,它是任何应用程序的设计使用的技术先于当前的技术. 这是说遗留应用程序过时的一种很好的方式. 但这并不是一个公平的评价. 尽管传统应用程序的访问和交付模式可能已经过时, 遗留应用程序通常包含无价的部落知识, 希望能提供关键的功能. 彻底替换遗留应用的代价往往是放弃整个开发过程中的许多“经验教训”, deployment, 以及应用程序本身的维护阶段. In fact, 因为许多遗留应用程序不再有正在进行的文档, training, 或者可能是修补工作, 我们可能无法知道这些应用程序拥有多少丰富的知识. 这些应用程序通常会在过去几年里不断发展,甚至可能会发生变化,以满足不断变化的组织需求.

另一方面,遗留应用通常是单一且相对静态的. 它们在UI和数据存储方面是紧密耦合的. 它们通常很难分解并转换为松散耦合的组件或层. 而这正是使传统应用现代化并转向基于云的解决方案所需要的. 但现代化并不是唯一的解决方案. 根据软件工程协会的说法, 处理遗留应用程序有三种主要方法:维护, 现代化, 和替换. 让我们来看看每种方法.

维护遗留应用程序只是一个临时解决方案. 遗留应用程序需要基础设施和人员来保持其运行. 使用基础设施即服务(IaaS)或平台即服务(PaaS)云部署模型实际上可以外包遗留应用程序, 但核心问题没有改变. 也就是说,底层基础设施可能是版本锁定的,或者可能依赖于物理控制(例如.e. 为其安全模型假设数据中心服务器的物理分离.  即使遗留应用看起来很容易“迁移”, 它是在一个不再存在的安全环境下设计的. 遗留应用程序的一个共同特征是,它们需要额外的控制来提供安全性. 将遗留应用程序迁移到虚拟化云环境通常需要添加额外的控制层.

对遗留应用进行现代化改造通常是最困难的选择, 而是拥有最高成功机会的人(只要你完成了整个过程). 尽管现代化需要大量的努力, 这个过程有几个引人注目的优点. 首先,该流程可以最大限度地减少停机时间. 现代化过程是标识业务服务的多阶段过程, 将它们暴露给外部消费请求, (i.e. 新类型的客户端),然后最终将服务迁移到新环境. 与此同时,关键业务服务支持持续使用. 如果做得好,用户甚至不应该知道他们的核心业务服务被移动了. 另外, 识别和处理业务服务的迭代过程有助于保留最重要的部落知识. 听起来很简单, 但是现代化的努力需要大量的分析, planning, development, and testing. 另外, 让旧应用与新应用“和谐相处”, 松散耦合的应用程序和服务可能很困难. 因为许多遗留应用程序不包含丰富的api, 向外部应用程序公开必要的服务或数据通常需要在旧平台上进行新开发以创建服务层.

And lastly, 组织可以简单地用符合其服务交付模型的现代应用程序替换遗留应用程序. 这个选项看起来更简单, 但它依赖于两个关键假设:1)遗留数据是可访问的,并且可以以最小的工作量进行迁移, 2)现有的遗留功能可以用最少的努力来替换. 数据转换和功能覆盖不是微不足道的问题. 在你决定替换旧的应用程序之前, 确保您可以转换现有数据,并为每个功能需求提供足够的替换.

So, 如果你的组织决定要么维持一个遗留的应用程序,要么参与现代化的过程, 您将发现自己在每个环境(遗留环境和云环境)中都有一个脚。. 很好地管理这种混合足迹对于保持用户满意非常重要. 这意味着要监视每个环境如何很好地服务客户机请求.  在着手进行现代化项目时,不要忽视对用户的支持. 如果管理得当, 有一天,你可以告别那些为你服务得很好的传统应用程序,转而使用更敏捷、更灵活的应用程序.