在同多个云提供商合作之前,请评估他们在计算、存储和安全等方面的服务。
企业必须在多个云供应商中做出抉择。亚马逊网络服务是行业巨头,而微软Azure则提供了一整套越来越有竞争力的服务。还有谷歌云平台对于那些具有大数据和处理需求的客户来说很有吸引力,他们正好可以利用谷歌的基础架构。IBM和Rackspace则提供三巨头之外的选择。
企业们最好不要与单一的云供应商绑得太紧。在一个云里提供的专业化服务在另一个云里并不一定也存在。在其他情况下,一个组织内的各部门可能会在不同的平台上开发服务,继而需要集中式的云管理团队来支持多个供应商的托管环境。
在与多个云供应商合作时有一些策略和技巧,能够得到其优点同时限制了重复劳动和其他额外的工作。要理清这些,我们将仔细检验他们的核心服务:计算和工作负载管理、存储服务、数据管理和安全性。
接下来,我们会了解基础架构即代码的这一概念为何是多云管理的一个关键前提。容器服务被描述为跨云的一个公共抽象层,它有助于进一步缓解跨多个云上管理应用的负担。
计算和工作负载管理服务
计算和工作负载管理服务,包括业务编排,集群管理和配置工具。
首先,虚拟机(VM)是任何计算服务的基础单位。基础架构即服务的云供应商提供了各种的虚拟机,而了解他们之间的差别是非常重要的。一个特定的虚拟机规格会包括其OS,处理能力,内存和网络优化的功能。微软,谷歌和亚马逊网络服务(AWS)还提供了专门设计来支持大数据和分析任务负载的集群,能够支持例如Hadoop和Apache Spark等框架。
容器服务也变得越来越重要。容器化非常适合微服务部署,并且在许多情况下,可以比为每个应用程序运行单独的VM效率更高。容器提供在Linux基础上的轻量级虚拟化并可以类似Docker这样的标准工具一起使用。对于集群管理,Apache Mesos和Docker Swarm是值得考虑的工具。 Mesos适合于作业调度,同时支持Marathon和Chronos。并且Mesos还支持Docker Swarm API,这样你就可以在Mesos里运行Swarm,如果需要的话。
同样归于计算和管理服务的大伞下的还有编排。编排的功能允许系统管理员以代码的形式定义基础架构并自动化代码部署。
编排对于需要规模化或跨多云运行的组织尤为重要。在多云的场景下,例如Chef和Puppet之类的配置和编排工具是很重要的。特定厂商专有的工具,如AWS CloudFormation,也是可供选择的选项。
在第一和第三方工具之间选择时,请记住其中的权衡利弊。第三方工具提供更多的跨云的灵活性,并允许跨云迁移工作负载。另一方面,厂商自己的工具会按照在给定厂商的云里工作的目的构建。
存储服务
跨多个云迁移工作负载是具有挑战性的,如果你需要在云之间进行协调或者在另一个竞争的云平台上运行一个被设计成使用某个云的API的脚本。然而,存储,又带来了另一种不同的问题。当所有的主流云厂商都提供对象存储服务时,要理解这些服务之间更细微的差别很重要。要优化成本和性能,你可能要根据数据保存的时间段,耐用性要求,存储和检索数据的延迟以及接近计算资源来选择对象存储。
例如,AWS提供简单存储服务(S3)来存储对象以及弹性块存储有关虚拟机文件系统存储弹性块存储简单存储服务(S3)。S3对象存储以较低的成本介入,但延迟较高并且不适合文件系统。另一方面,谷歌则以低成本提供适合文件系统存储的Nearline存储。要知道,Nearline存储有较高的延迟。如果你正在寻找归档存储,那么选择一个单一的云提供商来最低限度的保持存储管理是合理的。如果冗余很重要的话,你可能要考虑在多个云里进行归档。
邻近计算是另一个重要的考虑因素。在一般情况下,数据应尽可能靠近计算资源。这将提高性能从而削减成本。此外,数据复制出云往往会产生费用,所以将计算任务放进生成数据的同一个云中也很有道理。
数据管理
数据管理包括使用关系型和非关系——也被称为NoSQL,的数据库产品管理结构化和半结构化的数据。管理数据有两种选择:使用数据库即服务(DBaaS)或管理自己的数据库。在做出决定时,你要考虑你将如何存储数据,该数据的物理位置,涉及到的延迟级别,以及环境的耐用性。此外,还要考虑如果该厂商或存储方法不奏效的情况下需要移动数据时所涉及到的成本。