许多云计算提供商都在谈论业务的可迁移性,这意味着需要使用诸如容器之类的技术,不过要是真那么简单就好了。
可迁移性意味着企业可以将应用程序从一个主机环境迁移到另一个,其包括云平台之间的迁移。例如从Amazon Web Services到Microsoft Azure.而将应用程序从一个平台迁移到另一个平台所需的工作取决于具体情况。
容器是一种将应用程序和操作系统封装到可以在支持Docker或Kubernetes等容器标准平台上运行的软件包的一种技术,从而使其迁移变得更加简单。但容器并不是灵丹妙药。
实际情况是,迁移应用程序(无论它们是否在容器中)都需要大量的计划来处理不同环境的兼容性问题。容器的使用并不能保证企业的容器化应用程序都可以从一个平台迁移到另一个平台。例如,企业不能采用一个专门用于Linux的容器化应用程序在Windows上运行,或者反过来这么做。
事实上,容器实际上是将应用程序与操作系统捆绑在一起的一种很好的方式。企业确实使用容器增强了可迁移性,但并没有得到很多人认为的可以在任何平台迁移的结果。
当然,企业需要可迁移性,并且可以拥有它。所有这一切都需要在创建应用程序时进行更多的规划。
事实是,如果企业具有足够的时间和资金,所有的应用程序都是可迁移的。这种做法是创建一个应用程序,将最少的工作量从一个平台转移到另一个平台。使用容器或其他技术可以帮助企业提供跨平台的应用程序兼容性,但它们只是等式的一部分。所以,可迁移性不是二元的。
也许关于可迁移性最关键的一点是,企业需要付出巨大的代价:由于使用了所有环境中最低的标准,因此降低了性能。企业的应用程序使用本地部署平台或云平台的特性越多,企业的应用程序便于迁移的可能性就越小。其原因很简单:与特定的操作系统、语言、云平台或其他技术相关联的许多理想的功能结合在一起,而且这些功能不能按照原样进行迁移,有时候根本就无法迁移。
而缓解这种情况的唯一办法是进行规划和设计。即使如此,技术也将一直在改变。可迁移性永远不会是二元的,在迁移过程中很难不受到影响。