前段时间,InfoQ 发布了一篇《独家揭秘陆金所去 Oracle 全过程:18 个月将 90% 数据库业务换到 MySQL》的文章,引发了大家关于去 Oracle 的讨论,有很多读者提到了将 Oracle 替换之后,看似授权成本下降,但其实运维成本增加了,并不能减少支出。
那么,实际情况到底如何呢?我们常说的运维成本到底有哪些?运维成本在去 Oracle 实践中占总成本多大的比重?去 Oracle 之后,运维成本会发生哪些变化呢?如果去 Oracle 之后,运维成本增加了,那是否有降低成本的方式呢?… 为了弄清楚这些问题,InfoQ 采访了陆金所全站去 Oracle 负责人王英杰、 PingCAP 联合创始人兼 CTO 黄东旭。
“运维成本”是我们常挂在嘴边的词,但是运维成本到底包含哪些东西,有很多人是模糊的,所以本文先为大家梳理一下运维成本都包含哪些内容。
黄东旭表示,运维成本一般可以从固定资产性成本和运营成本两方面来考虑。
数据库迁移的固定资产性成本主要由软硬件购置成本和硬件服务维保成本组成。应用生产环境的硬件包括服务器、存储和数据备份环境,配套软件包括操作系统、保证数据库运行的安全类软件、运维软件如备份恢复、监控告警等。
如果更具体来讲的话,包括以下几个方面:
黄东旭表示:“在不考虑企业的硬件采购实际折扣和合规完成度的前提下,只考虑 Oracle 数据库的总体建设工作,企业在关键业务场景中的固定资产性成本支出很容易就可以达到千万级别。”
运营成本一般是指数据库迁移的应用迁移适配成本、数据迁移成本、迁移测试成本、运行维护人员的招募成本、培训成本及日常运维的一般性系统维护人力成本。
“人力成本在 Oracle 迁移前后的变化不大”,王英杰表示,“陆金所是将 Oracle 数据库迁移到 MySQL,从招聘成本来看,Oracle 工程师和 MySQL 工程师差别不大。另外,通常在企业去 Oracle 实践开始之前,公司 Oracle 工程师就已经开始向其它数据库工程师转型,通过 1-2 年的时间,他们足以成长为一名合格的其它数据库工程师。”
通常情况下,去 Oracle 之后,之前单套 IOE 数据库支持的业务量会被安装替换数据库的多套 X86 服务器接管,数据库服务器和实例数量的整体规模会迎来一个数倍的增长。对此,有实际去 Oracle 经验的王英杰表示这部分成本其实也是可以抵消的,“这类规模的增长如果依靠一套完善的数据库自动化运维系统支持,就无需通过堆人来增加成本。”
除了固定资产性成本和运营成本,还有很多不可实际衡量的隐形成本。
技术绑架造成的隐形成本,如果严重依赖某个厂商的技术来支持核心数据库,厂商可能会根据客户系统的重要性和对它的依赖程度灵活调整价格,合同到期之后,也可能会提高续签费用。
另外,当数据库的容量和并发量达到一定规模的时候,系统规模的提升可能会造成硬件成本的倍数提升。
在 Oracle 迁移过程中,运维成本主要包括人力成本、迁移后的配套软硬件成本和一般性运维成本。如果抛开购置配套软硬件的直接成本,运维成本大致会来自以下三个方面:
“总体来说,运维成本不会占到去 Oracle 成本的大头,粗略估计的话,可能会在总成本投入的 10%-15% 之间。”黄东旭表示:“目前,越来越多企业会尝试在局部业务系统中验证性地进行去 Oracle 工作,总结经验,降低迁移过程中的运维成本占比,进而才会在企业内大规模推动去 Oracle 工作。”
以实际经历了去 Oracle 实践的陆金所为例,其在迁移过程中的运维成本主要包括:
在王英杰看来,“如果以去 Oracle 项目的一次性架构改造成本来看,运维成本大概会占到总人力成本的 30%-40%,其中人力成本主要是针对全套去 Oracle 工具的研发。”
通常情况下,完成去 Oracle 工作之后,软硬件固定成本会大幅度降低。如果是从 Oracle 迁移到开源数据库,运维人员的学习成本会在短期内升高,但是随着新的数据库纳入企业管理体系和运维人员技能的提高,这个成本也会随之降低。如果是从 Oracle 迁移到云数据库,后期运维管理成本可能会更低。
一般来说,随着新数据库规模的扩大,成本降低的效果会愈发显著。举个例子,当花了 1000 万购买的小机和存储的计算和 IO 能力与 100 万购买的 X86 服务相当的时候,花一个亿购买的小机和存储的计算和 IO 能力,花费不到 1000 万的 X86 服务器就能满足相同的容量。
以陆金所为例,去 Oracle 之后,IOE 设备的软硬件费用几乎全部消失,仅采购廉价的 X86 服务器即可支撑起全站的核心数据库系统。
虽然说在大多数情况下,去 Oracle 之后的运维成本是下降的,但凡事都有例外。如果运维成本上升了,企业还会接着去 Oracle 吗? 对此,黄东旭是分多种不同的情况进行分析的:
如果按照既定迁移路线评估之后,发现运维成本有上升的可能,其实我们也可以采取其它方式来降低成本,例如上云部署、云原生数据库服务、运维自动化等等。
作为去 Oracle 的亲身实践者,王英杰表示:“去 Oracle 的成本说到底主要是开发、测试和运维的人力成本。作为一个庞大的系统改造项目,这部分人力成本在项目推进期间一次性投入,项目结束后,就无需投入了。”
“我们也观察到,对于越庞大的 IOE 系统,去 Oracle 改造后在成本减免上的收益也越大。因为这些 IOE 系统用于采购技术厂商提供的软硬件、维保、技术支持等费用上的成本,相较于在自身技术团队人力支出上的成本,占比会更大,而且数据库系统越庞大,占比会越大。如果我们通过投入一定的人力成本落地去 Oracle,让公司在数据库技术上有完全的自主性和选择权,对于拥有庞大 IOE 系统的公司来说,是非常值得的!”
采访嘉宾
王英杰,陆金所数据架构团队负责人,负责陆金所全站存储引擎运营和智能化工具研发。
黄东旭,PingCAP 联合创始人兼 CTO,资深基础软件工程师,架构师,曾就职于微软亚洲研究院,网易有道及豌豆荚。擅长分布式系统以及数据库开发,在分布式存储领域有丰富的经验和独到的见解。狂热的开源爱好者以及开源软件作者,代表作品分布式 Redis 缓存方案 Codis,以及分布式关系型数据库 TiDB。2015 年创业,成立 PingCAP,在 PingCAP 的主要工作是从零开始设计并研发开源 NewSQL 数据库 TiDB,目前 GitHub 上该项目累积 star 数超过 22000+。
领取专属 10元无门槛券
私享最新 技术干货