公共云迁移核对表:迁移应用程序之前要满足的五个标准
我认为,我们终于不必停留在谈论公共云在企业的效用这个阶段了。公共云服务提供商已经证明,就算公共云不比本地基础设施来得可靠,至少一样可靠。安全也不是一个大问题。比如说,谷歌计算引擎网络对实例安全采取了零信任的方法。为云基础设施构建新的应用程序有其道理。然而,下一个合乎逻辑的问题是,哪些应用程序适合迁移到云端,哪些不适合。
如今有一大批的应用程序托管在云端。一般情况下,很难说哪一种类型的应用程序适合云,而另一种类型的应用程序不适合云。首先,想分析你的应用程序是否适合迁移到云基础设施,一个办法就是权衡云基础设施和本地解决方案之间的差异。
1. 虚拟化基础设施
要问的一个根本的问题是,首先工作负载如何进入到云端。以谷歌计算引擎为例,谷歌允许导入RAW磁盘镜像和VirtualBox镜像。还有第三方可以帮助用户迁移到云端。另一种方案是,选择一个预制的操作系统镜像,利用二进制文件重新安装应用程序,并复制数据集。
从实用的角度来看,我们在谈论基本的x86虚拟化。迁移实际上是虚拟机到虚拟机(V2V)的迁移。所以,从纯技术的角度来看,如果你的应用程序目前在虚拟基础设施上运行,它就很适合迁移到云端。然而,应用程序的物理迁移是个次要的考虑因素。
2. 冗余性
为云重构的应用程序要考虑到底层基础设施的可用性。云原生应用程序设计假设,基础设施的各个部件会出现故障。迁移到云之前考虑应用程序在可用性方面的要求很重要。如果应用程序需要五个9(99.999%)的正常运行时间,而且你已构建了一套冗余的基础设施来支持这个正常运行时间要求,在迁移到云端之前应认真考虑。谷歌计算引擎的服务级别协议(SLA)是99.95%。这需要在迁移之前为可靠性较差的基础设施重构应用程序。
3. 许可
软件许可是个潜在的重大障碍。一些软件提供商在多年后才开始正视并应对无所不在的虚拟化环境。一些软件厂商对于虚拟化环境仍有惩罚性的许可模式。
云基础设施正在经历相似的转变。一些特殊的操作系统或软件可能需要为云购买额外的许可证。一些解决方案甚至可能不提供云选项。数据库层是个很好的切入点。讨论你在使用的数据库引擎,问问它是否拥有目标云提供商的许可。另一个办法就是,充分利用云提供商提供的数据库服务。
4. 支持
类似许可,软件厂商的支持是另一个重要的非技术考虑因素。许多高性能或关键业务型应用程序在支持的基础设施方面有着严格要求。比如说,除了支持的存储配置外,一些内存分析平台对内存和处理器组合还有着严格要求。虽然某种解决方案从技术上来说可以用在公共云,但是一旦出现了问题,软件提供商提供的支持却很有限,或者根本就没有。
有必要看一下云提供商和传统厂商提供的集成解决方案。AWS SAP解决方案就是一个例子。AWS最近宣布了面向HANA的4TB向上扩展实例,提供全面支持。
5. 数据局部性
最后要考虑的一个因素就是监管问题。工程师在将数据迁移到云端之前要考虑数据方面的法规。大多数云提供商完成了这一标准程序:让物理基础设施和流程通过合规规则的认证,比如面向支付卡行业(PCI)的那些规则。
不过,数据局部性有时是个挑战。一些政府要求,某些类型的数据得留在境内。如果数据位置是个考虑因素,不要止步于验证主要工作负载的位置。故障切换同样是个考虑因素。如果一家提供商在你的国家只有一个服务区域,由于监管要求,你就面临单一故障点。