《来聊会崖》是崖山数据库全新推出的专家对话栏目,继上一期邀请薛晓刚老师聊了崖山自研选择和产品规划后,本期我们邀请到数据库领域资深专家白鳝老师,与崖山数据库资深技术专家韩锋,围绕国产数据库的核心能力、架构选型、技术透明度等热点话题展开深度对谈。白鳝老师拥有多年甲方经验,曾主导大量数据库选型与迁移项目,观点犀利,洞察务实,为行业提供了宝贵的企业用户视角。
本期精彩提前看
-
通用型数据库功能越多,越能满足更多客户需求,竞争力越强
-
数据库本身该兼容的东西,最好是数据库厂商来做
-
兼容性不是口号、不是简单数字,而是系统性工程
-
基于总体成本理性选型,不盲目追求“分布式”
-
分布式≠万能,使用是有门槛的
来聊会崖-第二期:嘉宾白鳝
https://www.bilibili.com/video/BV1LSWgzwEPT/
以下内容根据对话实录整理而成,还有更多想听、想看的内容可以留言告诉我们~

基础能力是底线 功能全面是竞争力
韩锋:您认为企业更希望数据库厂商提供“大而全”还是“精简核心”的数据库?
白鳝:作为一个数据库来说,特别是通用型数据库,不能限制标准SQL的执行,这是基础,这是最底线。比如SQL1999、SQL2003,这些SQL的语法都能跑出来,这是必须具备的基础能力。
另外,用户需求甚至是最基本的需求,本身也在变化。刚开始就要一个皮实的数据库,满足现有功能就行了,但是它上线以后很可能马上就会面临一个问题,正好要用到某个新功能了,但却没有。那数据库厂商是提供给用户的功能很强大的数据库,还是一个能满足用户最基本需求的数据库呢?
答案是显而易见的,用户最基本需求也是会变化的,比如Oracle中一个很少人用的dbms_http包,保不准哪个用户就需要,因为做通用数据库,面向的不只是十个用户或者是周边的用户,而是说未来的遇到很多用户,不同用户的基本需求不同。
所以说对我们国产数据库厂商提出更高的要求,哪怕很多功能用户用的很少,但是只要遇到用户有用过的,那就要给他提供,否则用户就会选别的数据库了。所以不是要不要做的问题,而是说能不能做的问题,能做可能在市场上竞争力就会强一分。

兼容性不是口号 而是系统性工程
韩锋:目前几乎所有的国产数据库都将兼容性能力作为核心能力之一,当然这与国产数据库发展周期较短,希望复用主流产品的数据库生态有关。白鳝老师怎样看待这种兼容性能力?或者说国产数据库提供什么样的兼容性能力,您认为就是一个比较好的产品?
白鳝:其实兼容性大家的看法也不一致。好多人觉得国产数据库为什么非要去兼容?把应用改造一下就行。但持这种观点的人不一定干过一线。对于一线用户来说,如果我有1000套系统要迁移,是选择把1000套系统全改造成跟现在目标库一样,还是希望1000套系统迁过来以后简单的优化优化就可以用?同样,作为一个企业的管理者或者一个领导,肯定会考虑成本的问题。所以我也比较赞同——数据库本身该兼容的东西,最好是数据库厂商来做。
兼容性包括以下几个关键层面:
-
语法兼容:支持标准SQL语法,避免用户修改代码
-
代码兼容:存储过程、函数等能够直接运行或通过工具转换
-
性能兼容:迁移后性能不能出现大幅下降,否则迁移失去意义
-
隐性兼容:数据结构、数据类型、精度、时区处理、字符集等细节一致性
我几年前在金融机构遇到过这样的情况,从Oracle迁移到国产数据库,代码未做修改,但迁移后性能下降30倍,这几乎让迁移失去意义。当然如果后期能将性能优化到可用状态,也比直接改代码更高效,毕竟改代码的话可能两个月都干不完。此外,数据类型、字符集、时区等细节问题,往往才是迁移中的“暗坑”。很多很细节的兼容性问题,只有你真正做过一遍,踩过坑以后,你才能明白到底有没有问题。

架构选型要理性 集中式仍是主流
韩锋:我个人有个观点,也想跟白鳝老师一起探讨探讨。我们也看到国内过去五年到十年,很多用户倾向于分布式架构,我之前也去实践过很多分布式架构,我觉得分布式架构的确天然有一些优势,但也有一些短板,所以我们碰到很多用户,包括我,也会有这样的疑问,我要不要用分布式?达到什么样的指标就要用分布式?
目前我也接触了一些客户,发现一个很有意思的现象。有的客户会把分布式当做单机数据库去使用,我给它起了个名字叫做“伪分布式”的概念。也想听听白鳝老师的观点,怎么看待分布式架构、伪分布式架构和集中式架构?从企业用户角度来讲,怎么去做选择和取舍?
白鳝:其实分布式架构,有很多人说它是互联网的产物,互联网公司成功后把它复制到了传统行业。其实这是一个双向问题,一方面互联网确实成功了,另外一方面是当时传统行业的数据库遇到问题了。以前是用小机,后面随着业务数据的增长,数据库扩展不了,甚至CPU扩满了还不行,而当时只有RAC一种扩展模式,很多国产数据库都没突破RAC瓶颈,扩展不了。所以分布式出来后大家给予期望很高,希望这种新架构能解决它过去的痛点问题。
但实际上来说,分布式使用是有门槛的。我一直在跟很多央国企的朋友说,互联网公司IT就是它的生命线,就是它的核心业务,但我们的核心业务是业务,不是IT。我们国内的企业不太会算总账,比如说我新业务如果上线推迟一个月会亏损多少钱?它不会算这个账,所以我们有时候觉得这个选择有点盲目,可能大家选分布式是希望有一个一劳永逸解决的方案,但是选完分布式以后发现,应用改造并不是那么容易。我曾经见过一个央国企的一个系统,原来是大概四台四路的,服务器跑了两套Oracle RAC,然后改造到微服务,分布式数据库上面,最后把整个两套Oracle RAC拆成了230个rds实例,每个rds实例可能还要一主一备,每一个rds跑在一台两路的服务器上,算下来这个硬件成本是相当高,而且故障率比以前高了好几倍。
传统行业的团队研发运维驾驭不了分布式,这是最大的问题。互联网企业驾驭分布式,不是没有代价的,它在上面投了大量的成本。这一点我们很多传统行业企业是没有看到的,只看到人家的成功,没有看到人家花了多少钱,没看到这个过程,所以说分布式它在提升扩展性的同时,它还带来复杂度提升、成本增加等多种挑战。好不好,要算总账。当然如果能完全驾驭分布式数据库的应用开发和运维,能一劳永逸地解决问题,那这个成本也值得。
韩锋:是不是现在我们行业用户,大家也慢慢的趋于理性,有一种回归到集中式架构的现象出现?
白鳝:对,刚才还有一个问题,您用的词挺好——“伪分布式”。我现在也见到很多用户在用分布式数据库,虽然采用分布式集群进行资源管理,但它是每个数据库做单元化,单个租户仍采用一主一备的集中式模式。后来他们发现,这种情况下虽然从400多套数据库集群简化为一个大集群,资源管理上方便了,但投资成本上去了,这个其实就是伪分布式。
当然如果说租户管理做的很好,资源能够动态调度,这种模式也有一定价值。但实际上,对于传统企业来说动态调度是个稳定体,大部分情况下不需要动态调度,也不敢调整,更需要稳定。所以很多这样的用户,在后来都会有一些往回找的这种感觉。我前两天还有一个用户,让我推荐有没有跟Oracle兼容性比较好的国产集中式数据库,他特意强调集中式数据库。然后我还问他们不是核心系统都已经迁了分布式了吗?他说成本太高,银行核心迁上去,大家还花得起钱,如果再把几十套次核心迁上去,成本太高了。然后他说领导反问上分布式的必要性,他们团队仔细想想后觉得也没必要,集中式能搞定的事儿为什么非要分布式? 所以大家选择上也可以回归理性。
不管怎么样,一个再有钱的用户或者再任性的用户,它都是会从总体成本来考虑问题的,最后会回归理性。能用集中式解决的事情,就没必要去上分布式,这是一个很朴素的思维。
韩锋:从客户角度来讲,得要客观分析自己的业务实际情况,因为毕竟我们不是一个科技公司,我们的核心是做业务的。我个人的一个朴素想法是,无论是集中式还是分布式数据库,对我来说,能支撑我的这个企业发展,然后同时具备一定的成本优势,也不能无限的成本去做这个事情,那对我来说就是一个好的选择。

一个负责任的厂商 应该是开放的 透明的
韩锋:您觉得我们国产的数据库厂商应该提供什么样的服务能力,对用户来说才放心把我的系统,上到你的国产数据库上去?
白鳝:首先第一点就是技术的透明度。曾经有一个国产数据库厂商,我们用户报了一些故障,最后反馈回来都是已知bug。我还问他们研发为什么你们所有的bug都是已知bug,而我们从来没有见过未知bug?既然是已知bug,为什么你不把它公开在你们的官网上?让我们的用户能够提前看到,提前去避坑。他当时也很无奈,他说如果把bug都报出来,友商会攻击我们。
但这种生态是特别不好的,这给大家都增加成本了。Oracle的bug也不少,但他会告诉你这个bug怎么绕,怎么展示避开;如果这个bug已经解决了,这个补丁怎么去下;如果这个bug没解决,通过一个别的手段去绕开,也可以。确定能把它绕过去,我就很放心。
所以透明度很重要,因为用户买你的数据库是要上核心系统的,那业务连续性、可靠性是我的生命线,所以说数据库厂商得保障技术透明度。
韩锋:其实客户能够容忍你的产品有一定的不完善的地方,有bug。但是客户害怕的是什么?害怕的是未知,就像面对一个黑盒子,你爆出来的永远是你最好的一面,任何问题在我这都看不到。
白鳝:对,所以我觉得这个问题可能提的人比较少,我今天第一个把它提出来。运维最可怕的是未知。我使用你的数据库,但我不知道你的数据库是什么。
韩锋:我相信用户也都是抱着这样一个心理。用户如果看到的是一个开放透明的厂商,这也意味着这是一个负责任的厂商,我才有信心把我的系统放到这个上面去,我觉得这个也很重要。

白鳝眼中的崖山 技术扎实 态度严谨
韩锋:最后也想请白鳝老师谈谈,对崖山数据库的一些感受和印象。
白鳝:其实我也是崖山老朋友了,我跟崖山接触得也很早,而且崖山做RAC这个事情,我很早就知道。正好在新冠期间,我那时候经常被崖山的朋友“问候”。讨论cache fusion怎么实现的,PI状态怎么变成CR状态等一些很细的问题。我当时就发现,崖山在认真的学习Oracle能力,我觉得这是一个挺好的事情,所以说我觉得崖山的态度很好。
第二点崖山有点学院派风格。我知道为了研发RAC,崖山其实错过了最好的一次国测机会,后来晚了一期,所以推出的时间就晚了。但是我特别认可这个态度,一定是一个成熟的产品崖山才会往市场上推,一定要推出一个自己先觉得说得过去的产品。虽然这个风格在商业市场可能会有点吃亏,但是我觉得从长久来看吧,有可能这样的态度才是好的态度。
未来,崖山将继续与行业专家、用户深度对话,推出更多《来聊会崖》系列优质内容。如果您也希望参与对话、分享见解,欢迎在评论区留言或是在公众号后台私信我们~

729

被折叠的 条评论
为什么被折叠?



