多云模式神话破灭,为什么说可携带性的工作负载是天方夜谭?

云计算
多云模式在正在得到业界的认可,即公司会从多个云供应商那里获得不同的IT服务,而同时又会保留一部分自身本地部署的IT工作。不过当公司意识到将工作从一个云转移到另一个的过程并不像供应商所承诺的那般顺利时,各种多云模式的问题也会接踵而来。

多云模式在正在得到业界的认可,即公司会从多个云供应商那里获得不同的IT服务,而同时又会保留一部分自身本地部署的IT工作。不过当公司意识到将工作从一个云转移到另一个的过程并不像供应商所承诺的那般顺利时,各种多云模式的问题也会接踵而来。

不过在进行更深一步讨论前,我们有必要对多云模式先做下说明。

[[210207]]

多云的定义

在过去的一两年内,多云的概念现在了IT行业中,其大致是指一种公司不仅使用一个到数个SaaS服务(如人力资源或邮件服务等)并同时使用PaaS服务进行软件开发,而且还有可能使用IaaS服务进行虚拟机上工作运行的模式。

Gartner技术和服务供应商研究部门研究总监Mattew Cheung表示,“我们看见更多的客户在同时应用多个公有云服务,因为某些云供应商在特定的工作负载方面具有更加专业化的能力”。

这些专业化的服务包括很多关键的企业应用,比如Microsoft Azure中的SQL服务器,Google Cloud中的人工智能(AI)和数据分析服务。而像AWS这样的巨头也具有众多的特定的功能和服务,而且每年还在不断地推新。

“混搭”的云方案

在上云的早期阶段中,很多公司会通过“升级和转移”的方式进行IaaS服务的使用,以实现将工作负载从本地模式中移出。这种模式往往是公司配置虚拟机以取代传统服务器,实际上是在云的架构中对本地部署的环境进行了复制。

无论是无意还是有意为之,很多公司都会在多个IaaS平台上进行工作的部署。这可能是因为数据主权、反绑定或冗余问题。

那些兜售混合云产品和服务的供应商会承诺这些都不是问题,当用户发现更好的云服务或引入其他公司所需要的新功能或服务时,工作可以很轻易地从一朵云转移到另一朵云中。

但是,如果公司觉得要上的那朵云并不适合自己工作负载时,迁移的工作还会这么容易吗?混合云方案的供应商总是试图让人们相信迁移的工作就像复制粘贴一样简单,但实际上这一过程中困难重重。

击破多云模式的神话

首先,不同供应商的服务器实例(数据库)的特性可能会截然不用,而且尽管具有像打包和虚拟机映像这样开放格式的服务,但它们在实践中却很少使用。另外,传统的三层模式的应用通常需要进行单独服务器集群上的数据库的访问,这也让迁移工作变得更加复杂。这就说明,如果我们想要将工作从云端迁移到另一个云端,那么虚拟机并不是一个很理想的选择。

当然,公司还有一个选择, 容器。自从Docker技术及其同名平台出现以来,容器为开发人员提供了一种简单的应用程序代码的封装方式,并允许人们进行发布以供本地或云端的运行。

相较于虚拟机,容器具有很强的便携性优势。容器的大小通常只有数十兆字节,而虚拟机会包含整个操作系统以及应用程序,一般会有几千兆字节。

总的来说,容器实际上是一种Linux技术(除了最近推出的Windows容器之外), 其主要应用于运行那些在公有云上所谓本地部署的工作负载,而不是那些如今在公司所有系统中运行的传统企业应用程序。

相比于虚拟机,目前容器技术更加不成熟,因此其整个生态正在迅速的构建中,而围绕着安全性、高可用性以及关键资源容器厂商也提供着很多不同的方案。

不过,根据Cheung所述,即使在这种情况下,简单地从一个云中提取工作负载并将其转移到另一个云中的可能性依然很低,因为人们并不看好工作负载会很完美地运行在虚拟机或容器上。相反,人们倾向于依靠其他的功能和服务。由于不同云平台之间的差异相当明显,所以很难简单地将工作负载转移到不同的云上,除非该工作负载非常简单和独立。“今天,在不同公有云之间转移工作负载真的非常困难”,Cheug说道。

Red Hat的OpenShift平台就是一个很典型的案例,其使得用户可以使用Docker及容器以构建和部署应用程序,而且其不仅允许用户进行本地的部署,而且还支持在Microsoft Azure、AWS和Google云平台上面的工作部署。 理论上,OpenShift应该可以允许用户在这些平台间进行任意应用程序代码的转移。 不过,这依然具有依赖性的问题。如果用户的应用依赖于某一的云平台特定的功能或服务,那么他们就很难将这些应用迁移到其他平台中。而且这同时也阻碍了用户去使用一个更为方便的功能或服务,因为供应商锁定的问题会让其无功而返。

无服务器计算的空头支票

除了PaaS服务外,公司还可以关注下所谓的无服务器计算,这是一种以应用程序按使用次数而计费的模式,即“功能即服务”或“FaaS”。AWS中的Lambda就是其中的一个例子。

几乎所有的无服务器平台都支持Python语言,因此使用该语言编写的应用程序可以较为容易地实现在不同无服务器平台上面的迁移。不过当不同的云支持不同的功能时,问题会再次出现,除非有一种通用的代码,而且公司能够避免链接到任何云特定的功能或服务,否则迁移的过程就不会是无缝的。

实现云端可移植性承诺的另一个障碍来自于实际数据。由于合规性或监管的原因,将某些类型的信息迁移出本地基本不可能实现。

另外,由于数据中心所在的位置,或者由于只有有限数量的供应商能够达到运行特定工作负载所需的认证级别,所以在进行其他云供应商平台选择时,公司也会遇到很大的问题。

更重要的是,所涉及到的数据量也可能会成为一个问题。当然今天的用户可以享受到相对较快的互联网连接速度,但是由于种种的限制(如网络攻击、地理位置、网络稳定性等),通过互联网传输数据的过程可能会耗费数天甚至更多的时间。

将数据从本地迁移到云端的工作可以通过基于磁盘的设备来完成,只需要将相应的设备运送到云供应商的数据中心中,比如AWS的Snowball就是这样的解决方案。 但是将数据从一个云平台转移到另一个云平台的过程不可能这么容易,因为不同的云服务商使用不同的API和数据存储标准,在数据提取与传输中这会造成很大的障碍。而同时云供应商间不同的定价模式也可能会增加用户提取与传输数据的成本。

公司依然需要小心谨慎

由于以上的种种问题,相应的跨平台的云管理工具仍然不成熟,Gartner在最近一份报告中将其描述为“新兴且高度分散的市场”。

云计算和基础架构的供应商都具有自己的管理工具,但主要集中在如何与自己体系内的软件进行集成,他们让第三方的供应商提供某种形式的可支持多云的服务。这种情况使得用户的IT部门不得不掌握一系列“最佳”的管理工具以监管他们的多云环境,或者使用一种具有有限功能的跨平台管理工具。

就目前而言,云平台之间的工作负载与数据的移动性依然是一个很重要的问题,尽管容器等技术正试图攻克这一难关。因此,公司在制定云策略时应该保持谨慎与小心,因为如果决定使用不同的云服务,那么在不同云服务商之间进行工作负载的转移可能会相当困难而且代价高昂。

责任编辑:未丽燕 来源: T客汇
相关推荐

2009-04-06 08:27:25

iphone苹果移动OS

2016-11-16 08:56:37

2011-02-15 10:18:33

2021-11-26 15:12:16

加密货币比特币货币

2020-10-29 11:22:43

人工智能机器人技术

2022-05-13 14:16:05

云计算

2012-03-04 21:04:53

平板

2015-05-04 14:52:09

2023-10-07 13:16:20

GPT-4NatureICLR

2013-07-26 10:45:20

2010-01-12 10:11:36

学习C++语言

2016-09-29 22:36:40

2012-04-09 17:36:38

华为智真

2015-04-30 12:41:29

微软Windows 10

2014-08-05 16:32:50

2021-08-24 11:11:20

数据中心设备技术

2023-09-12 12:11:31

方式计算机交互

2016-01-14 11:00:36

Google X谷歌

2017-11-27 10:45:48

无服务器计算容器

2014-11-24 10:42:50

点赞
收藏

51CTO技术栈公众号