当前位置: 首页 > 科技观察

让领导懂数据库是数据库国产化替代成功的一半

时间:2023-03-19 02:05:24 科技观察

让领导明白,数据库本地化更换是成功的一半,确定几条迁移路线,然后把每个系统放到这些路线上,剩下的。我们讨论确定的总体思路并不复杂。对于新建的中小型系统,原则上使用RDSonthecloud;对于现有的大型核心系统,选择国内裸机部署的数据库或云原生分布式数据库,系统改造后完成替换;对于新建大型系统,使用国产关系型数据库或部署在裸机上的云原生分布式数据库;对于现有的中小型系统,原先使用Oracle数据库,并有上云的打算,尽量使用云上的RDS。升级改造需求,选择与Oracle兼容性较好的国产数据库进行迁移。将数千个系统按照这个计划归类到这些项目中,工作量不小,但很快就完成了。本来以为如果方案得到领导的认可,就可以进行选型工作,然后就可以进行试点了。没想到领导看到这个方案后,觉得这个方案的考虑太复杂了。他想反正所有的系统都要上云,那为什么不把云上所有免费的RDS都用上,花钱买一些国产的数据库呢?他觉得云平台比传统架构要好很多。在云上用Oracle之前,总是今天这个系统有问题,明天另一个系统有问题。自从上云之后,他还没有听说过云上有什么系统有问题。经过领导的指点,前阵子花了一个多月才制定出来的计划,算是白费了。虽然不甘心,但也不好说服领导。会后,公司的一个技术朋友找我聊了这件事。他说,云上虽然有上百个系统,但都是小型非关键系统。不知道。但是,企业的核心系统还没有上云,都运行在Oracle数据库中。如果那些系统出了点小问题,就会反映给领导,所以领导自然会认为系统上云后就万事大吉了。另一方面,当一个稍微大一点的系统搬迁到云端,切换到RDS时,拆库拆表的工作就完成了,投入大量的研发将数据库拆分成多个小数据库。现在有了这样的划分,数据库变小后,即使缺少索引,也不用担心了。确实,在云上使用RDS之后,问题比以前少了很多。只是这种方式的研发投入比较大,很多没钱的二线企业都吃不起。像他们这样规模大,钱多的二线公司,现在整个应用架构都改成这样了。现在IT公司的研发更适合这样的应用模式。领导的想法并不是完全不可行,也不是完全不正确。如果所有的应用系统都能完全适配到云上,那么将Oracle上的所有应用系统全部迁移到云上的RDS也不是不可行。这种方式还可以节省购买国内数据库license的费用(其实这个费用是省不下来的,因为企业购买的商业版云平台,RDS节点授权费基本等同于国内数据库license授权,但领导认为这是云平台投资,不是数据库license投资),所以在领导看来,数据库国产化改造不需要那么多心思去区分各种技术路线。分别考虑几个核心系统,其他系统全部替换成RDS。因为在领导眼里,Oracle和RDS虽然不同,但都只是数据库。因此,数据库本地化不如简单化。但是,在技术人员眼里,数据库是很不一样的。应用从Oracle迁移到不同的数据库,应用改造,性能优化,高可用运行,日常运维都有很大的不同。作为企业IT部门的高层管理人员,领导不一定了解这些差异,甚至不了解这里存在哪些差异。再加上领导身边经常有不理解和忽悠的人,很难说会出现类似的情况。在与很多公司讨论数据库本地化解决方案时,我经常会提出一个整体成本的问题。事实上,目前大多数领导只关注购买数据库许可的成本,并没有考虑整体成本。我曾经和某企业的IT主管讨论过数据库本地化改造的成本问题,最后发现最难解决的问题是存量系统的问题。一个大型企业,经过近30年的信息化建设,至少有几千个大大小小的系统使用Oracle数据库,而这些系统中至少有一半以上使用了大量的PL/SQL存储过程。如果不选择与Oracle高度兼容的数据库系统作为迁移对象,那么整个迁移改造的成本将是一个天文数字,远大于让用户头疼的国产数据库授权的购买成本。所有领导人。除了迁移,选择不同的数据库和运维成本也需要考虑。即便国内数据库在某些接口上与Oracle类似,但内部核心与Oracle的差异还是巨大的。在运维方面,我们过去积累的大部分经验现在都用不上了。因此在运维、原厂服务、第三方支持等方面都会存在巨大差异。企业的IT主管在考虑数据库本地化改造时,往往会忽略这方面的投入。这会在大规模开始本地化迁移时导致运维出现很多问题,导致应用系统不断出现故障。问题,IT部门不堪重负。无论哪一个环节没有做好,都会给数据库本地化工作中涉及到的技术路线选择、产品选择、成本预算、人才培养、技术储备等方面带来很大的困难。但如果这些项目都不能由基层技术人员决定。如果领导不真正了解这些要点,要做好这项工作就不容易了。此外,每个企业的实际情况不同,技术能力、投资策略、改革目标等方面的差异,会导致领导和技术人员眼中的最终战略存在巨大差异。就像我一开始提到的例子,如果一个企业下定决心要把所有系统都上云,并且有大量的资金用于应用改造,那么领导者的解决方案不是不可以,只是会花费更多的时间,只是花更多的钱。而如果领导选择这种技术路线是为了省钱,那么这种方案是非常危险的。我们在讨论数据库国产化的技术路线的时候,是不是也应该想办法让领导搞清楚数据库是干什么的?领导真正看懂了,然后根据公司的IT发展路线做决策,可能比基层技术人员只从技术层面考虑问题要全面。