可迁移性意味着企业可以将应用程序从一个主机环境迁移到另一个环境,其中包括从云端到云端,例如从AWS到微软Azure云平台。完成将应用程序从一个平台迁移到另一个平台所需的工作取决于具体情况。
容器是一种技术,旨在通过将应用程序和操作系统封装到可以在支持Docker或Kubernetes等容器标准的平台上运行的软件包中,从而使这种迁移变得更加简单。但容器技术并不是万能的。
实际情况是,无论是否在容器中,迁移应用程序都需要大量的计划来处理不同环境的兼容性问题。容器的使用并不能保证企业的容器化应用程序可以从一个平台迁移到平台。例如,不能将一个专门用于Linux的容器化应用程序在Windows系统上运行它,或者反过来。
事实上,容器实际上是将应用程序与操作系统捆绑在一起的一种很好的方式。企业确实获得了使用容器获得增强的可移植性功能,但是并没有获得许多人认为的可以迁移的“任何平台”可迁移性。
当然,企业需要可迁移性,并可以拥有它。所有这一切都需要在首先创建应用程序时开展更大规划的工作。
事实上,如果企业有足够的时间和资金,所有的应用程序都是可迁移的。而企业希望创建一个应用程序,将最少的工作量从平台转移到平台,无论是云计算还是其他平台。使用容器或其他技术可以帮助企业提供跨平台的应用程序兼容性,但它们只是等式的一部分。
所以,可迁移性不是二元的,而是意味着它存在与否。相反,它是“这取决于”的答案,IT人员对此并不满意。
也许关于可迁移性最关键的一点是它的成本很高:由于在所有环境中都支持使用更低的通用功能,因此功能降低。企业的应用程序使用本地平台或云计算的功能越多,其应用程序便于轻松迁移的可能性就越小。其原因很简单:有许多与特定操作系统、语言、云平台或其他技术相关的理想功能,而且这些功能无法按原样移动。有时候根本不能迁移。
缓解这种情况的唯一方法是通过规划和设计。即使如此,这项技术将一直在改变。可迁移性永远不会是二元的,总是面临一定的困难。