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