你的数据库真的需要迁移到云吗?

时间:2022-11-02 19:08:21

“应用程序现代化”这一术语是否只是指应用程序重构和重新平台化到云端以及转储当前使用的任何遗留数据库?

你的数据库真的需要迁移到云吗?

实际上,它通常被认为是拥有传统数据库的公司(可以说是大多数公司)满足用户对实时或近实时体验的需求,并应对海量数据的唯一途径。

这也适用于内部数据和应用程序,用户希望在检查库存水平或获得关键公司绩效指标的高管级概述时,能够获得作为消费者的实时体验。

数据和分析研究公司SanjMo的创始人兼负责人Sanjeev Mohan表示,“数据库的性能越快,客户忠诚度和参与度就越高。这不仅仅是查询的性能,还取决于写入或将数据加载到数据库中,或插入和更新的速度。

但随着传统数据库受到越来越多的数据的冲击,“你的表变得非常大,那么性能可能会开始下降。”

艰难的时代,艰难的选择

很少有组织能够承受跟上实时需求的压力。但并不是所有人都可以通过无缝过渡到新的云原生数据库来满足这些需求。

这可能仅仅是因为一个组织的数据不会去任何地方。例如,监管义务可能意味着数据必须在可预见的未来留在内部。

可能是某个组织确实考虑过迁移到云端,但在迁移的具体执行方面犹豫不决。或者,它仔细查看了这些数字,并意识到它们并不完全简单地相加,尤其是在运维需要大幅扩大的情况下。

这始终是一个挑战,但成本正在上升。

Redis Enterprise Cloud产品营销负责人Ryan Powers表示,对于许多IT领导者来说,真正的问题是,“如何在尽可能少的重构和重新架构的情况下实现现代化?”

他指出,尽管“越来越重要的应用程序需要实时运行,但事实上,大部分应用程序不需要实时运行。”

传统数据库仍然要留着?

这就是与传统数据库一起部署的缓存层可以发挥作用的地方。正如Powers所说,“你需要一个灵活的数据层,它可以与你使用的任何数据库一起用作缓冲区。”

例如,Redis Enterprise可以用于缓存预取,应用程序读取内存中的数据,而不是直接从磁盘读取,从而加快查询速度,尤其是在读取繁重的工作负载时。它还提供了写后缓存,以便应用程序处理的数据实时写入缓存层,记录数据库的核心系统在事后异步更新。

这两种方法都有望大幅减少延迟,改善用户体验。它的另一种应用方式是生成二级索引以加快对二级键的查询,这在使用MySQL或Oracle等传统数据库时可能既耗时又复杂。

Powers补充道,当涉及到全球规模、多云和混合用例时,重要的是要考虑如何确保数据跨区域保持一致,同时确保应用程序尽可能快地运行。Redis Enterprise提供Active Active Geo Distribution,以允许本地速度读写,同时确保跨区域复制一致的数据,延迟小于1毫秒。

因此,即使长期目标是全面的应用程序现代化,Powers表示,“在某些地方,你仍然可以使用Oracle或MySQL,并打补丁,在过渡期间修复它。”

在这些情况下,他认为,“现代化是围绕速度,围绕规模,围绕总拥有成本。”

因此,如何使数据库现代化的问题变得比是否有足够的时间和金钱开始一个完整的重构和重新平台化项目更为微妙。

尽管如此,除了缓存层的原始成本之外,这种方法还有一个财务方面,Mohan指出:“可以保持对遗留系统的投资,将其用作记录系统,但这样可以更快地检索。”

提高极限

在缓存层旁边维护旧数据库有助于控制未来的许可证和基础设施成本。Mohan说,一旦你达到了当前安装的极限,你就面临着从旧版供应商那里购买更多许可证并增强硬件以匹配的痛苦。“但有了缓存,可以将一些工作负载卸载到内存数据库中。”

那么,什么时候知道已经为这种现代化方法做好了准备?Redis的高级产品营销经理John Noonan表示:“首先,你应该考虑是否有一些用例你正在努力支持现有的关系数据库,但速度不够快。如果你有用户在等待,不管他们是内部用户还是客户”,你会知道情况就是这样。

他举了一个金融部门客户在实施实时支付处理时遇到困难的例子,因为在处理交易时需要更新Oracle表的数量。Redis Enterprise被插入到支付过程中,以加快交易速度,交易完成后,数据随后被管道传输到记录系统中。

但这也是一个规模问题。另一个客户的例子是一家在印度运营体育平台的公司,当板球比赛的团队阵容在比赛前30分钟发布时,该平台的使用量会出现巨大的峰值。这导致了巨大的速度下降,因为其基于SQL的系统无法响应。

因此,它在Redis Enterprise的内存中实现了排队发布功能,以打破瓶颈,一旦匹配结束,数据就会被转换回关系数据库。

这些正是新西兰电子商务公司Blackpepper通过AWS使用RDS、Elasticsearch、Redis和Dynamo所看到的问题,其首席执行官Alain Russell将其描述为“令人难以置信的大量编写设置”。

Russell表示:“我们在重负载下遇到了扩展问题,并且在扩展RDS实例以处理负载方面付出了非常高的成本。”该公司还遇到了保持数据同步的问题。

测试表明,使用Redis Enterprise作为主要数据存储可以将公司的一些常见工作的速度提高20到30倍。它还解决了数据同步问题。Russell说:“将此迁移到Redis Enterprise简化了架构,简化了调试的方式,并提供了一个可供查看的数据存储。”

Mohan说,最终,许多组织可能希望使用云端,甚至完全抛弃传统数据基础设施。但重新设计和现代化总是说起来容易做起来难。缓存为公司提供了扩展其传统平台的机会,至少在中期是这样。

“所以,现代化战略是:第一步,提升并转移到云上。第二步,实施一个缓存解决方案,让它对云更加友好。第三步可能是,将传统环境替换为云原生产品。”

这种方法的妙处也许在于,你可以简单地采取第二步,并且仍然受益。