为了保持存储管理的成本最低,采用单一云服务提供商的归档策略可能是明智的。然而,如果数据冗余至关重要,那么考虑使用多个云服务提供商进行归档也是必要的。
接近计算是一个关键因素。通常情况下,数据应尽可能地靠近计算资源,这不仅提升了性能,还降低了成本。此外,数据从云服务提供商处复制出来通常会产生出口费用,因此在同一个云服务提供商内部保持数据是有益的。
在数据管理方面,需要同时使用关系型和非关系型(NoSQL)数据库来管理结构化和半结构化数据。目前,数据管理有两种选择:数据库即服务(DBaaS)或自行管理数据库。在选择时,需要考虑数据存储方式、物理位置、所需的延迟时间以及环境的耐久性。同时,要确保在数据迁移时,供应商或存储方法不会产生额外费用。
DBaaS允许与单一供应商的数据库紧密集成,这虽然有其优势,但也可能带来局限性。例如,AWS的DynamoDB非常适合键值和文档数据存储,它提供了低延迟和可配置的一致性,几乎无需数据库管理开销。但请注意,它使用的是专有数据库技术,无法与其他供应商的产品兼容。如果需要在多个云服务提供商之间使用专有服务,可以考虑使用DynamoDB等专有数据库工具进行扩展。
当使用多个云服务提供商的产品时,自行管理数据库可能是更好的选择。尽管这听起来可能是一项昂贵且复杂的任务,但编排工具可以帮助管理跨多个云的数据存储。这些工具使得在多个云之间有效配置数据库脚本成为可能。使用多个云服务提供商的好处之一是,你可以实施基于云的灾难恢复策略,并在不同的云服务提供商之间备份数据。
无论选择哪种数据管理方法,始终要保持数据治理的理念。存储数据的方式将影响数据处理和保护的策略。由于安全港协议已不再适用,因此应考虑使用其他规定,如HIPAA作为指导,并根据地理数据存储策略制定计划。
在抽象和安全方面,特定供应商的工具可能会限制云计算的灵活性。然而,有策略可以解决这个问题,并从特定供应商的平台中分离资源。例如,可以使用抽象层来隐藏具体的云服务实施细节,如对象存储的薄层。
使用跨云API,如Apache Libcloud,可以实现与不同云服务提供商的交互。Libcloud是一个开源的Python API,支持AWS EC2和S3、Google Compute Engine、Rackspace等服务。它支持多个Python版本,包括2.5、2.6、2.7、PyPy和Python 3。
在使用特定服务时,如AWS Lambda,要谨慎考虑在Docker容器中运行以实现功能。容器通常适用于跨云环境。
如果你计划避免依赖单一供应商,建议运行自己的服务,尤其是对于数据库。但始终要将成本考虑在内,因为长期来看,使用DBaaS可能会更加节省成本。
当使用多个云服务提供商时,安全性变得更加复杂,因为你需要在多个云上执行相同的安全控制。例如,实现一个目录服务而不是多个目录,并通过联合多个云来实现。使用共同的基础设施,如LDAP或活动目录,是必要的。在执行云服务策略时,第三方服务和工具是不可或缺的。
对于复杂的身份管理任务,可以考虑使用第三方服务,如“平安身份”。它提供了跨平台的多种工具,包括多因素身份验证和用户身份管理工具。
在安全日志管理方面,一个强大的第三方选择是采用与多个云提供商兼容的开源协议Loggly。该工具能够读取和整合多种基于文本的日志类型,如Ruby、Java、Python、PHP和MySQL等,并提供了一套完整的安全工具CloudDefender,用于收集安全数据、进行安全数据分析和威胁分析。
在管理基础设施方面,使用基础设施代码是一个良好的开端。软件开发者已经创建了先进的技术和工具来管理频繁变更的代码。这些工具和实践也可以用于管理基础设施。理想情况下,任何部署到云中的资源都应通过脚本自动化实现。如果一切顺利,系统管理员不应手动添加、删除资源或更改配置;这些操作应通过第三方或专有工具的部署脚本来完成。
这种心态也适用于代码部署之外。管理员可以利用第三方服务更好地使用多个云。云服务是云提供商和用户之间的中介,值得考虑。另一种选择是整合多个云,以促进工作负载管理和成本管理。
与多个云服务提供商合作没有固定规则,但确实存在一些挑战,如迁移困难和安全漏洞,这些都需要解决。
发表评论 取消回复