我看到网上对我国IT产业全面否定的言论很多,对IT产业国产化的态度也极其悲观,这些言论很多来自某个产业的从业人员,因此也很有市场。实际上,目前我们的IT产业国产化面临的问题是多种多样的,很多产业并不是我们没有能力去做,而是在国际化分工协作的模式下,以往没必要投入巨资,浪费时间去做。当反全球化浪潮高涨之时,一个国家和民族为了生存,那么在很多方面就不会考虑最优成本解的问题了。我想大部分短板还是能在三五年内得到补全的。可能我们会面临花了更多的钱,用了比原来差的产品的问题,不过熬过这段艰苦的日子,在某些领域形成物美价廉的中国方案也不是不可能的。
回到数据库,实际上这些年来我一直不认为数据库国产化是个大问题,没有成不成的问题,而只是做不做的问题。前些年中国数据库产业国产化发展的不好,最大的问题不是国产数据库的发展太慢,国产数据库水平不足等技术问题,而是我们对知识产权的不尊重。我们的国产关系型数据库产业从1999年左右就开始起步了,而国外的关系型数据库产业大发展也只是从90年代中期才开始的,我们的起步并没有晚多少。同时期韩国发展出了Tibero、Altibase等商用数据库产品,日本的一些大企业则在PG开源项目上做了巨大的投入,而实际上我国也出现了第一批国产数据库厂商,达梦,人大金仓等纷纷登场。
由于我国在知识产权领域的保护不足,从而导致数据库领域横行。8、90年代的银行交易系统大多数是基于informix数据库的,并不是说Informix数据库多么适合银行交易系统。而是因为第一批搞银行电算化的人从美国回来时候带来了的Informix。而随着中国IT产业的大发展,那些网上下载就能使用,不需要物理许可证的数据库产品成了我们应用的主流。上至政府机构,小至小微企业,数据库一水都是Oracle Enterprise。2000年初的时候,一个国外的DBA到访深圳,和我谈了一件事,说他去给一家企业做数据库规划方面的咨询。用户居然问他是不是要考虑引入一些其他的数据库产品,而不能只用Oracle数据库。他感到有些吃惊,他在美国的客户,都是只有最核心的数据库才会首选Oracle,而一些非核心的,都会考虑使用稍微便宜一些的SQL SERVER,或者干脆用MySQL,中国的一个企业里居然用了好几十套Oracle企业版数据库,连办公自动化这种没多少并发量的系统,都是Oracle Enterprise,他觉得用一个Oracle Standard就完全足够了。
我没好意思说出其中的原因,因为这个原因也不光彩。正是我国在知识产权领域保护的不足,导致了很多用户都产生了用国产数据库比用Oracle还贵的想法。不管系统大小,通通用一套Oracle就搞定的事情,也就十分顺理成章了。
现在的形势下,我国的自主IT产业发展已经是被逼上梁山了,在此局面下,各种国产化解决方案的落地迫在眉睫。数据库领域,我目前觉得是渠已成,只待水来了。不管是自主代码研发的数据库产品,还是基于开源协议的数据库产品,亦或是我国自己的数据库开源项目,发展的都已经有一定的规模了。
谈到数据库国产化,实际上并不仅仅是关系型数据库,去年我们帮一个客户梳理他们的数据库国产化方案的时候,整理了他们目前用到的数据库产品类型。最后的结论是,除了MongoDB、Redis等少数数据库产品外,目前他们使用的大部分数据库的国产化替代都能找到合适的方案,数据库国产化替代工作完全是可行的。可喜的是,在非关系型数据库领域,我们的国产数据库发展的实际是更好的,自主化率也比RDBMS要高出很多。
不过现在对于数据库国产化的观点差异很大,我今天所说也仅仅能够代表一家之言。很多人认为国产数据库产品必须是每一行代码都是原创的,现在基于开源代码搞的数据库产品都不能用于国产化替代,这个观点我是最不认同的。哪怕是Oracle数据库中,都使用了大量的开源代码。前几年的CPU安全漏洞风波,为什么那么多不同架构的CPU厂商都中招了呢?还不是因为INTEL,IBM和一些ARM CPU厂家都是用的同一个开源代码出了问题。每一行代码都必须自主,仅仅限于一些国家的安全级别极高的领域,如果用到商用数据库领域,那就是在浪费资源了。只要在知识产权上没有瑕疵,充分利用开源代码,是加速我国数据库产业发展的最佳道路。可能有朋友要说了,你举的CPU的例子不正好说明开源代码不安全吗?开源代码存在安全问题,这个毋庸置疑,但是自研的代码就更安全吗?恐怕也不是吧。
勇敢的拥抱开源,充分利用开源,并积极参与数据库开源项目,贡献中国智慧,这应该是比较适合我国数据库产业发展的道路。十分可喜的是,中国基因的开源数据库产品已经有数个了,TiDB、Oceanbase、openGauss等中国开源数据库产品甚至已经具有了一定的国际影响力。
随着数据库国产化替代的深入,我们面临最大的问题应该是如何用好国产数据库。这个问题并不像国产数据库产品替代那么乐观。人才的缺乏,国产数据库产业生态的缺失,周边运维、优化工具的缺失等一系列问题,将会影响数据库国产化后的IT系统健康运行。
最近我在研究SQL SERVER的运维知识图谱,国庆期间花了一周多时间阅读了一些微软的文档,我发现国外商用数据库产品的成功确实不是偶然的,如此完善的文档,对于数据库产品的推广与应用是十分有益的。如果微软的文档算90分,那么对比大多数国产数据库,这方面几乎可以认为是接近0分。
数据库已经不算是最难国产化的IT基础设施了,甚至可以说数据库的国产化只等待企业的IT决策者的发令枪了。既然国产化替代不可避免,那么还是早点动手比较好,犹豫什么,干就行了。