数据库 频道

Airwallex 空中云汇赵飞祥:云原生数据库不一定带来成本降低

本文为《云原生数据库选型指南》系列选题文章之一,对话一线厂商和用户,探索云原生数据库技术发展的重点和难点,选型关注点,整理行业落地应用实践,供业内参考。

随着云计算技术的迅速发展和企业数字化转型的需求日益增强,云原生数据库已经成为越来越多企业的首选。而随着云原生数据库的应用逐渐深入,云原生数据库的价值和问题也都一一呈现。


Airwallex空中云汇数据库专家 赵飞祥

本期我们邀请到了Airwallex空中云汇数据库专家赵飞祥,他是ITPUB的博客专家,也是多年DTCC中国数据库大会的常驻嘉宾,一直专注于数据库领域,拥有传统行业和互联网公司等丰富的从业经历。他分享了Airwallex空中云汇在云原生数据库使用方面的实践经验,为企业用户以及云原生数据库厂商提出了宝贵的建议。

实践:数据库从“公有云”到“公有云+自建”

关于云原生数据库,市场上还没有统一的定义。赵飞祥认为,云原生数据库这一概念有多种理解方式,可以指某一种具体的数据库,也可以指数据库采用一些不同于以往传统关系数据库的架构和技术,可以很好与云结合。

Airwallex空中云汇是一家做跨境支付的互联网金融公司,目前使用的数据库主要有以下两种:云厂商提供的RDS数据库服务和自建数据库系统。

赵飞祥介绍,前期,公司主要采用云厂商提供的公有云数据库服务,包括支持国内业务的PostgreSQL RDS和支持国际业务的Cloud SQL for PostgreSQL,这些数据库一开始就是设计和运行在公有云上。因为公司创立之初,业务和基础环境都要快速迭代和发展,采用云数据库服务可以很好地满足业务快速增长需求,对于数据库的运维和稳定性也有一些优势。且在开始的阶段,公司的特殊业务场景和数据库定制化需求并不明显,采用公有云数据库能够满足业务的功能和性能需求。

但随着公司业务发展,定制化需求越来越明显,也越来越紧迫。而这些定制化需求并不一定是公有云厂商重点关注的需求,不一定能得到满足。即使经过沟通,大家可以对需求达成共识,云厂商会进行开发和支持这些需求,但具体的功能发布周期和支持时间也存在很多变数。

所以Airwallex空中云汇考虑和测试了一些其他的数据库,通过自建来满足定制化的业务需求。目前使用较多的自建数据库是可以完全兼容PostgreSQL的分布式数据库YugabyteDB。

从Airwallex空中云汇的实践经验来看,云原生数据库给公司带来了不少价值:

  • 可以快速部署,快速扩展,可以满足公司目前和后续不断增长的业务需求。

  • 在一定程度上简化DBA、开发人员对数据库的管理,并降低使用成本,并且在最 佳实践的指导下,可以满足大部分的稳定性和性能需求。

  • 保持了全公司数据库使用环境的一致,并且可以随着云厂商的计划持续迭代和升级。

不过,云也可能带来成本的上升。在一定规模阶段,云对于运维成本有一定的降低。但随着数据库实例数量和数据量的不断增多,费用成本会不断提高。

可以看到,随着业务不断发展,用户定制化需求与厂商标准化产品之间的矛盾会越来越突出,可能需要企业自建数据库来满足其业务发展需求。赵飞祥指出,未来,对于公有云无法满足的需求,Airwallex空中云汇会继续探索和实践一些自建数据库方案,来满足公司的业务发展需求。此外,随着公司业务不断发展,可能在国内会创建私有云环境支持相应的业务。所以公有云和私有云结合的混合云架构,也是其未来会考虑的方向。

选型:要考虑业务需求、运维成本和使用预期

关于如何选择一款合适的云原生数据库,赵飞祥认为要重点关注以下几个因素:

  • 业务需求。数据库作为基础设施的一部分,其最终目的是为了满足和支持业务需求。只要能够实现业务的需求,就是可以被考虑的备选数据库方案。而不是反过来,因为觉得某种数据库好,就必须让业务使用,即是没有需求也要造出需求,这就本末倒置了。

  • 运维成本。在满足业务需求后,通常不可能只有一个选择,会有几个不同的备选方案。在这一步进行选择时,运维成本就显得非常重要。不仅要考虑DBA对该数据库产品的理解、运维和把控能力,也要考虑开发者对该数据库的使用经验和熟悉程度。越是大家都比较熟悉、都可以掌控的数据库,在后续使用时,稳定性就会越高。

  • 使用预期。对于任何产品来说,都会有对应的产品成熟度。成熟度越高,就说明软件设计的越好,经历的场景越多,之前修复的问题越多,使用起来出问题的可能性就相对低一些。但不可否认,只要是软件,就可能会有bug,就会有不断迭代、打补丁的过程。我们不能指望选择一个产品一下解决所有问题。或者一个产品出现了一些问题后,就一棒子打死,直接弃用。对于数据库软件的使用要有一个合理的预期。可能因为某些优势选择了一款数据库,出现问题后要不断深入了解和加深对该数据库的理解,一点一点不断积累最 佳实践。

相应的,针对以上三个要素,赵飞祥也提出了一款好的云原生数据库的三个评价因素:

  • 业务需求。这款云原生数据库的设计和应用场景,确实有对应的业务需求可以支撑,切实解决了客户的痛点。只要确实能够支撑业务需求,能解决痛点,那就是有价值的产品。好的云原生数据库必须要清晰地确定自己的设计目标、实践目标、能带来的价值和意义。能够解决的痛点越多,数据库被认可的可能性就越高。

  • 运维成本。在满足业务需求后,易用性和稳定性,给使用数据库的运维人员和开发人员带来的使用成本的高低,也是衡量一款云原生数据库好坏的重要指标。好的云原生数据库要设计合理、易上手,不会给运维和开发人来带来过多的学习和适应负担,使用成本越低越好。

  • 使用预期。虽然站在客户的角度,要有合理的使用预期。但作为云原生数据来说,产品成熟度越高越好。产品越成熟,被验证和证明的次数越多,已知的问题就会越少。同时对于新发现的bug和性能问题,官方能够接收和优化得越及时,越准确,越能持续维护、提高产品成熟度和稳定性,数据库产品就会越好。

建议:用户要知己知彼,厂商要再接再厉

对于想要使用云原生数据库的企业客户,赵飞祥给出了以下建议:

  • 对于是否需要云原生数据库要有清晰的判断。能够了解和借鉴前面说的判断标准,做好自己的业务需求分析和产品选型,判断公司目前是否适合使用云原生数据库。

  • 对于使用云原生数据库的优势和劣势有充分地了解。使用云原生数据库,能够带来什么样的好处,是考虑的理由。但决策之后产生的影响,也要有充分的估计。比如很多以“使用公有云后,可以降低成本”为目标而使用云原生数据库的企业,通常最后都会后悔。一方面,初期云原生数据库节省的成本,并不一定是费用成本。另一方面,云原生数据库随着使用规模的扩大,往往费用成本要比自建机房高得多。

  • 对于使用云原生数据库的预期要在合理的范围内,对于故障和性能优化的处理也要有充分的预估。使用了云原生数据库后,一些基础的、重复性的工作,可以不需要DBA来完成,但会有很多新的挑战和更有价值的事情需要DBA去完成。以为上了云之后,就可以不需要DBA的观点是不可取的。没有任何前提条件,直接提“DBA无用论”的观点更是谬论。除了事前的架构设计、最 佳实践、问题避免,在需要快速处理故障,优化性能时,DBA的价值会得到更明显地体现。

对于云原生数据库厂商,赵飞祥从用户视角也给出了他的建议:

  • 重视客户需求,解决痛点问题。建议在产品需求上,对于客户的真实需求和痛点能够重视并予以解决。比如对于 7*24小时的核心业务系统,数据库零宕机(Zero downtime)的切换、升级、故障转移,是一个很基础、很重要的需求,应该重点支持和解决。

  • 简化不必要的变更,降低客户运维成本。软件版本会不断升级,云产品也会不断迭代,但站在用户的角度看,一些不必要的升级,就可以不用进行了。如果实在要升级,尽可能要考虑好向下兼容,避免对用户有过大的影响。

  • 不断提高稳定性,完善、优化数据库故障诊断和性能优化工具。有比较丰富的工具,原本是公有云RDS的一大特色和优势,只是目前很多云平台在这方面仍然不太完善。在遇到故障和性能问题时,通过已有的RDS功能不一定能快速定位和解决所有问题,这方面仍然有较大的提升空间。

一款好的数据库不是设计出来的,而是用出来的。关于云原生数据库选型,大家有好的想法和建议,欢迎留言讨论。

0
相关文章