企业在与多个云供应商合作之前,需要评估他们的计算,存储,安全性,以及更多的服务。
企业必须从多个云提供商中进行选择。亚马逊网络服务公司无疑是最大的行业巨头,而微软Azure提供了竞争日益激烈的整套服务。谷歌云平台对于那些可以使用谷歌的基础设施处理大数据需求的企业具有吸引力。IBM公司和Rackspace公司则紧随行业三巨头之后。
企业可能不想被捆绑得太紧密,一个单一的云供应商。在一个云提供的专门服务并不总是可以在另一个。在其他情况下,一个组织内各部门可能已经开发出不同的平台上的服务,需要集中云计算管理团队,以支持由多个供应商托管的环境。
企业可能不希望与一个单一的云提供商联系得过于紧密。而其云计算提供专业化的服务并不总是可以在另一个云中可用。在其他情况下,组织内的各部门可能已经开发出不同的平台上的服务,需要集中云计算管理团队,以支持由多个供应商托管的环境。
采用多个云供应商方式的策略和技术,有同时限制工作重复以及其他额外的工作的好处。通过这一点,工作人员将检查核心服务:计算和工作负载管理、存储服务、数据管理和安全性。
下一步,工作人员会考虑基础设施代码的概念是多云管理的关键因素。容器服务被描述为一个共同的抽象层,这将有助于进一步减轻在多个云计算中管理应用程序的负担。
计算和工作负载管理服务
计算和工作负载管理服务包括业务流程,集群管理和配置工具。对于初学者来说,虚拟机(VM)是构建任何计算服务的基石。基础设施即服的务云供应商提供各种虚拟机,用户重要的是要了解它们之间的差异。一个给定的虚拟机的规范将包括用于网络优化的操作系统,处理能力,存储器和功能。微软公司、谷歌和亚马逊网络服务(AWS)还提供了专业集群设计,例如大数据和分析工作负载的支持,其产品包括Hadoop和ApacheSpark。
有策略和技术,与多个云供应商的方式,利用的好处,同时限制重复的努力和其他额外的工作的好处。
容器服务也变得越来越重要。容器非常适合于部署微服务,并且,在许多情况下,可能比每个应用程序运行VM的的效率更高。容器提供在Linux基础轻量级虚拟化服务,并且可以使用标准工具,如Docker。对于集群管理,ApacheMesos和Docker是值得考虑的工具。Mesos适合于作业调度,对于Marathon和Chronos都可以支持。而Mesos支持DockerSwarmAPI,这样如果需要的话,用户就可以在Mesos运行Swarm。
对于保护伞下的计算和管理服务的编排。编排功能允许系统管理员定义基础设施代码,并自动部署代码。
编排对于需要缩放或跨多个云计算运行的组织尤为重要。为多云使用,配置和编排工具,如Chef和Puppet,这些是供应商特定重要的工具,也可以选择如AWSCloudFormation。
在决定选择第一方和第三方工具时,请记住权衡取舍。第三方工具提供更多的跨云的灵活性,并允许跨云迁移的工作负载。另一方面,供货商自己的工具将是专用于给定厂商的云内工作。
存储服务
如果你需要在一个云的平台上使用一个云的接口,协调它们之间的云或运行脚本,在多个云移动负载是具有挑战性的。但是存储构成了一个不同的问题。虽然所有的主要云供应商提供对象存储服务,重要的是要了解存储选项的更细微的差别。为了优化成本和性能,您可能要选择对象存储的时间,将被存储数据的耐久性要求,延迟保存,检索数据,以及接近计算资源的时间。
例如,AWS提供的简单存储服务(S3)为虚拟机的文件系统的存储对象和弹性块存储。S3对象存储具有较低的成本,但具有较高的延迟和不太适合的文件系统。另一方面,谷歌公司提供一个低成本的近线存储,这适合于文件系统。要注意,近线存储有更高的延迟。如果你正在寻找档案存储,那么选择一个单一的云供应商以保持存储管理的最低成本,这可能是有意义的。如果冗余是重要的,但是,你还是要考虑采用多个云的归档。
接近计算是另一个重要的考虑因素。在一般情况下,数据应尽可能接近计算资源。这将提高性能,并降低成本。此外,数据复制出云计算往往会产生出口费用,因此保持在同一个云计算产生的数据是有意义的。
数据管理
数据管理需要使用关系和非关系的数据,也被称为NoSQL,这是数据库产品管理结构化和半结构化数据。管理数据现在有两个选择:使用数据库即服务(DBaaS)或管理自己的数据库。当你决定采用时,你将要考虑如何存储数据,数据的物理位置,需要什么样的延迟时间,以及环境的耐久性。此外,在你移动数据的情况下,你的供应商或存储方法不会产生相关的费用。
可以利用DBaaS紧密耦合一个单一的供应商的数据库操作,虽然这未必是一件坏事。还有一种选择是AWS的DynamoDB,非常适合密钥值和文件数据存储。它提供了低延迟和可配置的一致性,几乎没有数据库管理的开销。然而,它使用一个专有的数据库,无法使用其他供应商的产品。如果你需要在多个云使用专有的服务,那么可以使用专有的数据库工具如DynamoDB进行扩展。
当使用多个云提供商的产品时,最好的选择是自己管理数据库。虽然这听起来像一个昂贵的苦差事,但有编排工具可以提供帮助。这些工具使管理自己的数据存储跨越多云,如果你的数据库的脚本配置更有效的话。使用多个云提供商的好处是,你可以基于云的灾难恢复策略,在云计算厂商之间存储备份云。
不管采用哪种数据管理方法,要始终保持数据治理的思想。存储数据会影响如何处理和保护数据的策略。安全港协议取消了,因此考虑使用其他规定,如HIPAA作为指导,并基于地理数据存储策略做好计划。
抽象和安全问题
供应商特定的工具可能限制你的一些云计算的灵活性。尽管如此,也有办法来解决这个问题,并从特定于供应商的平台中分离出资源。某些策略将隐藏具体的云供应商的实施细节。例如,你可以使用抽象的常用功能,比如对象存储的薄层。
这就需要使用一个跨云的API,如ApacheLibcloud。Libcloud是一个开源的PythonAPI,使用户能够与各种云服务供应商进行互动。该API由AWS弹性云计算和S3的实例,以及谷歌计算引擎和Rackspace。支持Python版本包括2.5,2.6,2.7,PyPy和Python3。
需要谨慎使用专门的服务,如AWSLAMBDA。考虑一下你将在LAMBDA在Docker容器中运行来实现功能。容器通常是跨云使用的。
如果你计划摆脱单一供应商,建议你运行自己的服务。对于数据库尤其如此。然而,要始终把成本考虑在内,采用一个DBaaS最终从长远来看可会节省更多的成本。
当使用多个云服务提供商时,安全性变得更具挑战性,因为你必须在云上执行相同控制的多个版本。例如,实现一个目录,而不是执行多个目录,并使它可通过联合多个云来实现。使用一个共同的基础设施,如LDAP或活动目录。而在云服务的执行策略中,第三方服务和工具是是必不可少的。
对于复杂的身份管理任务,考虑到诸如“平安身份”等第三方服务。平安的身份提供了大量的跨平台传播的工具,如多因素身份验证和用户身份管理工具。
进行安全日志管理,一个强大的第三方的选择是采用与多个云提供商兼容的开源协议Loggly。该工具读取并巩固许多基于文本的日志类型,包括Ruby,Java,Python,PHP和MySQL,等等。其中,警报逻辑提供了一套完整的安全工具CloudDefender,CloudDefender收集安全数据,进行安全数据分析和威胁分析。
管理基础设施
当涉及到有效利用多种云,管理基础设施代码是一个良好的开端。软件开发者已经创建了先进的技术和工具来管理频繁更改代码的多个版本。这些工具和实践可用于管理基础设施。按照要求部署到云中的任何资源以脚本的方式进行实践。如果一切顺利的话,系统管理员不应该手动添加和删除资源或更改配置;这应该通过使用第三方或专有工具部署脚本来完成。
这种心态超出代码部署。管理员可以利用第三方服务更好地使用多个云诸。云服务是一种于云提供商和用户之间的中介,是一种值得考虑的服务。另一种选择是多云之间的整合,以促进工作负载管理和成本管理工具。
与多个云提供商合作没有硬性规定,但也有难以迁移和安全漏洞的限制等一些困难需要解决。