使用DBaaS会将数据库业务同一个单一的厂商紧密绑定,虽然这不一定是坏事。一种选择是AWS的DynamoDB,它非常适合用于健值和文件的数据存储。它提供低延迟和配置的一致性,几乎没有任何数据库的管理开销。然而,它采用其他厂商无法使用的专有数据库。使用如DynamoDB之类的专有数据库工具可能会增加操作人员的压力,如果你需要多个云的专有服务的话。
当使用多个云提供商时,最好的选择最有可能是管理自己的数据库。虽然这听起来像一个昂贵的苦差事,但流程编排工具可以提供帮助。如果你的数据库配置脚本化,那这些工具可以让你更有效的跨云管理自己的数据存储。使用多个云提供商的一个好处是,你可以跨云存储备份,从而拥有一个多厂商,基于云的灾难恢复策略。
无论选择哪种数据管理方法,始终要记住数据管理的初衷。数据存储在哪里可以影响它需要如何被处理并保护。安全港协议已经失效,所以考虑使用其他规定,如HIPAA,作为指导,并规划基于地理的数据存储策略。
抽象和安全问题
厂商特定的工具可能使你无法获得一些云计算的灵活性。尽管如此,也有一些方法可以解决这个问题,并从特定厂商的平台中分离出你的资源。某些特定的策略可以将特定云厂商的实现细节隐藏掉。例如,你可以为如对象存储等常用的功能建立一个薄抽象层。
这就需要使用跨云的API,如Apache Libcloud。Libcloud是一个开源的Python API,使用户能够与各种云服务供应商交互。该API由AWS弹性云计算和S3实例,以及谷歌计算引擎和Rackspace支持。支持的Python版本包括2.5,2.6,2.7,PyPy和Python 3。
尽量不要使用专门的服务,如AWS Lambda。考虑将你会在Lambda中运行的功能改为在Docker容器上实现。容器在各种云平台之上都能使用。
如果你打算从单一供应商解绑,那么建议运行你自己的服务。这对于数据库尤其如此。然而,始终把成本考虑在内;从长远来讲一个DBaaS可能最终会节省你的成本。
当使用多个云供应商时,安全变得越来越具挑战性,因为你必须实现同一控制的跨云的多个版本。例如,实现一个目录并通过联合让多个云可用而不是实现多个目录。尽可能多地使用一个通用的基础架构,如LDAP或活动目录。至于实施跨云策略,第三方服务和工具是必不可少的。
对于复杂的身份管理任务,可以考虑第三方服务,如Ping Identity。Ping Identity提供了许多跨平台的诸如多因素认证和用户身份管理的工具。
对于安全日志管理,一个强大的第三方工具是Loggly,它使用开源的协议,因此与多个云提供商兼容。该工具读取并巩固了许多基于文本的日志类型,包括Ruby,Java,Python,PHP和MySQL,等等。Alert Logic提供了Cloud Defender产品以及一整套的安全工具。Cloud Defender收集安全数据,并可以进行安全数据分析和威胁分析。
管理基础架构即代码
当涉及到如何有效利用多云,管理基础架构即代码是一个不错的起点。软件开发者已经创建了各种先进的技术和工具来管理多版本的频繁变更的代码。这些工具和做法,可用于管理基础架构,当使用声明规格时。按照要求部署到云中的任何资源以脚本的方式进行实践。如果一切正常的话,系统管理员不应手动添加和删除资源或更改配置,而应该通过使用第三方或专有的工具部署脚本来完成。
这种观念还可以沿用到代码部署之外。管理员可以利用第三方服务来更好地使用多云。云服务代理公司,作为云提供商和用户之间的媒介,就是这样一种值得考虑的服务。另一个选择是对云之间的整合,以促进工作负载管理和成本管理工具云聚合工具。
与多个云提供商合作没有硬性和速效的法则,但是有一些实践可以将重复的工作,迁移的难度以及安全漏洞限制在一定范围内。