在众多云原生数据库中选择合适的数据库并不容易,企业在进行云原生数据库选型时可能会考虑以下问题:
是否支持所需的数据库类型?
是否有数据保护和法规标准?
如果有任何疑问,提供商是否有支持团队?
是否是高可用性(HA)软件?是否能够承受任何节点故障?
是否有强大的备份?是否支持内置复制?
……
这可以列出一个很长的名单,但是首先一点是考虑业务需求,数据库作为基础设施的一部分,其最终目的是要满足和支持业务需求。只要能够实现业务的需求,就是可以被考虑的备选数据库方案。而不是反过来,因为觉得某种数据库好,就必须让业务使用,即使没有需求也要造出需求,这就本末倒置了。
如果应用是一款全球多人视频游戏,那么读写延迟都很重要,数据库可能需要分布式,但不一定是关系型,也不一定具有很强的一致性,键值数据库也很可能是理想之选。如果应用程序要记录和监控来自阀门的传感器输出,则数据库应能快速写入大量时间序列数据。对数据强一致性、数据分析有需求的应用,可能会选择TP、AP或者HTAP类数据库。
无论选择什么样的云原生数据库,性能、功能、安全性、易用性等都是普遍需要考虑的因素。除此之外,在技术层面还需要考虑的因素有:
成本。一方面,是成本管理问题,传统部署模式在原有硬件基础上的资源消耗成本相对可控,容易评估,在云上如何评估成本让成本变得可控是企业会关注的问题。此外要注意的是运维成本,在满足业务需求后,通常不可能只有一个选择,会有几个不同的备选方案。在这一步进行选择时,运维成本就显得非常重要。不仅要考虑DBA对该数据库产品的理解、运维和把控能力,也要考虑开发者对该数据库的使用经验和熟悉程度。越是大家都比较熟悉、都可以掌控的数据库,在后续使用时,稳定性就会越高。
运维监控能力很重要,当业务出现问题,很多客户会关注能否区分是云的问题还是数据库的问题,这需要数据库的指标监控更加细致。云原生数据库在网络、CPU、内存、存储都进行了虚拟化,增加了技术栈的复杂性,对于问题的定位增加了难度,一旦出现网络波动,能否快速定位问题非常重要。
多云、混合云支持。企业在做云数据库选型时,现在更加通盘考虑整体的IT方案,云数据库只是整个IT方案中间的一环,当考虑整体IT方案时,多云变得越来越重要,可以避免供应商锁定,以及充分发挥不同云的优势,数据库云中立、与主流云做了适配、在不同云中自由灵活切换的能力值得关注。底层基础设施越来越复杂多元,需要考虑支持多云、混合云。可以关注该云原生数据库是否依赖一些标准接口,如果某个特性与功能只在某朵云上提供,企业在使用时要小心、慎重,避免云锁定。
充分容器化后,关于容器的易失性问题是否可以解决。
能否支持未来的扩展要求。业务在不断发展,数据库需要跟上业务发展需求,扩展性可能需要考虑。
除了技术产品层面,还需要关注供应商的可持续发展以及持续提供服务的能力,以及生态工具和产品文档的丰富性。
专家指出,在选型时也要考虑使用预期,对于任何产品来说,都会有对应的产品成熟度。成熟度越高,就说明软件设计的越好,经历的场景越多,之前修复的问题越多,使用起来出问题的可能性就相对低一些。但不可否认,只要是软件,就可能会有bug,就会有不断迭代、打补丁的过程。我们不能指望选择一个产品一下解决所有问题。或者一个产品出现了一些问题后,就一棒子打死,直接弃用。对于数据库软件的使用要有一个合理的预期。可能因为某些优势选择了一款数据库,出现问题后要不断深入了解和加深对该数据库的理解,一点一点不断积累最 佳实践。
当前,云上的环境还在不断演进,数据库也会随着云端环境的变化而变化,随着AI/大模型发展,数据流水线可能会发生变化,对数据工具、数据处理能力也会提出新的要求,对非结构化数据的处理能力、多模支持可能会成为更加普遍的需求。企业的业务在不断发展,相关技术也在不断发展,什么是合适的云原生数据库?怎么选择一个合适的云原生数据库?并没有固定的答案。
希望以上对你的数据库选型有所帮助。