如何采用多云和分布式计算解决企业的数据难题
很多企业正在将云计算投入其IT战略。越来越多的IT预算正在转向云计算服务和运营支出,而不是资本支出。与此同时,IT团队被要求加强并改进企业的数字计划。
根据调研机构Forrester公司在2019年的预测,大约25%的首席信息官将转变为全面 领导角色,将技术投资规划、数据管理、运营责任整合到一个统一的整体中。与此相关的挑战是,数据和数字化转型所解决的所有问题都与企业内部的其他问题交织在一起,从管理客户体验到满足销售和增长目标。对于一些首席信息官来说,解决这些问题的机会自然是下一个步骤。对于其他人来说,这将超出他们和他们所在公司的舒适区。
缩小这些差距将依赖于数据管理。然而,即使企业更多地致力于云计算,他们也无法解决围绕数据和云计算周围存在的真正问题。
从更多的云到多云
企业正在增加对云计算服务的支出,以提高灵活性并实现更大的增长。调研机构IDC公司已将其对全球云计算基础设施支出的预测提高至2018年的652亿美元,随后几年将同比增长37.2%。基础设施支出的增加包括计算、存储、数据、应用程序服务。
对于使用云计算来支持其新服务的公司来说,计算和存储等领域可以快速扩展。但是,数据库元素要复杂得多。来自应用程序的数据必须存储和用于分析,数据库仍然是随着时间的推移管理这些数据的最合适方式。这些数据库也正在转向云端,根据市场研究,全球云计算数据库市场预计未来每年达到216.6亿美元,并且应该增长到2072年的46.78%。
这个研究评估涵盖了一系列不同的云计算数据库部署选项,从完全托管服务到购买的云计算数据库平台。然而,这一系列选择并不一定能提供许多企业所寻求的自主性水平。跨多个服务或混合部署运行数据库比较困难。
许多企业和软件开发团队正在采用基于容器的技术,为他们的应用程序提供一定程度的自主性,这些应用程序是为在云中运行而构建的。容器可以在任何兼容的公共云服务或内部云服务上运行,因此这些应用程序不依赖于任何特定的提供程序。但是,大多数数据库服务都不支持相同程度的独立性。为了理解这个原因,有必要研究一下数据库设计理论。
企业将应用程序转移到云端时,可以分散这些应用程序,并在分布式环境中运行它们。无论是在混合云中还是在多云中,这都会将应用程序分散到不同的站点,然后这些站点必须相互通信,并处理所创建的任何新数据。随着时间的推移管理数据涉及选择处理一致性、可用性和分区容错,或简称CAP。
随着时间的推移,任何分布式数据存储都必须保存和管理数据。企业根据其应用程序要求,可以优先考虑的是要优化性能、数据一致性还是可用性,企业通过采用CAP方法可以选择专注于优化的两个元素,第三个元素的优先级更低。因此,这将导致对应用程序性能、一致性和可用性的潜在权衡。但是,应该注意的是,仍然会提供类似一致性的区域,但不会达到某些应用程序可能需要的性能级别。
对于设计在云中运行的应用程序的架构师来说,分布式计算方法得到了进一步的发展。任何服务都必须采用相同的CAP方法,无论它是在内部私有云上运行还是在公共云服务上运行。数据库本身必须与多个云计算服务兼容并可用,并以相同的方式在所有云计算服务上运行。但是,大多数公共云数据库服务都绑定到云计算提供商的云平台,或者只能在混合环境中运行。
在云中运行数据库需要预先考虑并解决这些问题。例如,当应用程序吞吐量和性能更重要时,可调优一致性。相反,对于需要实时数据一致性和特定事务订单的应用程序,其性能可能不太符合要求。同样,企业是否愿意以多云支持换取数据自治?在容器中部署应用程序可以为企业提供更大的灵活性和独立性,但这也必须与数据管理策略相一致。如果不同时考虑这种方法,就很难充分利用多云的潜力。
多云和数据自治——开放源代码的角色
对于希望保持对数据控制的企业而言,采用多云是一个关键因素。根据Gartner公司的研究,估计有70%的企业希望采用这种方法。那么,企业如何能够围绕数据获得与使用容器的应用程序相同的独立性?
在过去的十年中,开发的开源数据库已经开发出来,以满足大规模运行应用程序的一些新要求。这些新数据库在云应用程序部署中非常流行。Sumo Logic公司关于现代应用程序部署的报告显示,NoSQL数据库已经比传统的云计算部署关系数据库更受欢迎。开发这些数据库是为了存储和处理大量数据;每个数据库都有自己的方法和质量,可以帮助开发人员满足他们的需求。
作为查看多云和NoSQL选项的一部分,重要的是要强调所选的任何服务都必须能够以完全分布式的方式运行,而不需要单一的主节点。相反,部署中涉及的所有节点都应该能够执行指令,然后集群节点组织自己来创建新事务的完整记录。对完全分布式计算的支持对于使多云部署成功工作至关重要;如果没有这种独立性,应用程序将无法跨多个云计算服务运行,并提供所需的可用性级别。通过保持这种独立性,即使服务从一个云服务迁移到另一个云服务,应用程序也可以继续运行。
除此之外,还必须考虑支持和性能优化。虽然开源产品可能适合非关键应用程序或测试,但生产部署可能需要额外的专业知识、操作简单性和支持,以扩大规模并满足当今客户对性能的严格要求。对于具有一定规模的企业而言,设计和运营改进方面的专业知识对于构建支持这些应用程序的框架至关重要。除此之外,还需要查看实施的安全最佳实践,尤其是对于处理大量客户数据的新应用程序。虽然这些项目的开源版本提供了一些此功能,但查看具有企业级支持和服务的版本可填补生产应用程序的空白。这些步骤共同确保这些新的任务关键型应用程序可以在多云部署中运行,以最佳方式执行并提供出色的客户体验。
将云计算和数据结合在一起
随着越来越多的企业将部分或全部工作负荷转移,云计算将继续增长。云计算提供的是实验能力、成功、规模。但是,这种易于部署不应该随着时间的推移将该应用程序锁定为一种方法。相反,对数据的所有权以及如何随着时间的推移对其进行处理、管理和存储应该是架构师的一个重要考虑因素。为了避免这个问题,必须从一开始就将分布式数据支持设计到新的应用程序中。