*本文首发自“新华社·环球”杂志,作者张海鑫
每年的暑期出游,总会掀起一波又一波文旅消费高潮,对于互联网出行服务行业来说,不仅是一次狂欢更是一大考验。
但从去年暑假开始,出行 365 副总裁、首席技术官张劲涛从容了许多。“有了原生分布式数据库——OceanBase 之后,我们对平台的业务支撑能力是越来越有信心了。”
一、翻天覆地的十年
回望十几年前,每到节假日最让人头疼的问题就是买票,汽车站、代售点随处可见的排队长龙,有人为了买到一张票甚至要排上一个通宵。最绝望的是,好不容易排到了,却发现已经没票了,于是精心计划了很久的行程又不得不临时更改。
这样的场景,曾经是很多国人的共同记忆,不过互联网科技已经为这样的时代烦恼画上了句号。如今,临行前打开出行 365,输入出发地和目的地,选择出行日期,汽车票、城际巴士、火车票等票务信息便一目了然的出现在了手机屏幕上。如今的日常是十几年前的人们很难想象的。
十年前,张劲涛进入出行 365 这个初创企业之时,人们还并没有养成预约出行的习惯,培养市场和人们消费习惯的养成是一个相当漫长的过程,不仅考验着企业的耐力和资金能力,也考验着从业者们的定力。如今,张劲涛已经在互联网出行行业摸爬滚打了十年之久,出行 365 也已经成为在线汽车票务运营服务商排名第一、定制客运网络平台运营商排名第一的品牌。
出行行业比较特殊,不仅平日里需要 24 小时在线服务,每逢节假日才是真正的硬仗。“每到节假日人们集中出行之时,我们都会高度紧张,要为涌入平台的流量做好各种备案,确保大家的出行体验万无一失。”张劲涛说,“尤其是十一黄金周,我们要提前 40 多天就开始编写应急预案,列出一张可能出现的问题清单,针对每种问题还要进行应急演练。”
“特别是 2023 年,随着国内旅游市场迅速回暖,从业务量上来看,五一期间就出现了往年十一那种业务量的陡然上升。人们的旅游方式也在不断翻新,我们的定制客运业务量每个月创一个新高,接送服务的增长量也翻了好几倍。”张劲涛说。
十年,张劲涛早已习惯了这样的生活,十年,国人的出行方式也已经发生了翻天覆地的改变。当互联网出行成为一种生活方式,大量的新增数据处理、历史数据的查询、实时的高并发,也给出行 365 带了新的挑战。
二、寻找“互联网皇冠上的明珠”
出行 365 每日交易量最高达到百万笔,而且是读写同时的,用以呈现各种业务的班次量更是达到上亿的规模,而在更新频次上,每秒可能更新上万行。随着出行 365 的业务量增长,给数据库带来了很大压力,Oracle 这种单库数据库的局限性逐渐显露出来。
“如果说航空发动机是‘工业皇冠上的明珠’,那么数据库则可以类比为‘互联网皇冠上的明珠’。因为互联网行业应用层面的很多东西都可以追溯到数据库,可以说数据库的高度就决定了你业务的高度和技术的高度。”张劲涛告诉记者,这么多年来出行 365 技术团队做的很多工作实际上都是为了弥补数据库的局限,但还有很多想实现的服务迟迟无法拓展。
比如清分结算系统,“这是我们用于和供应商、分销商进行结算的系统。由于各个业务系统的数据全部都会集中到这个系统中,不仅数据量很大,还需要按业务进行各种维度的分析,而且常常是跨周期、跨纬度的分析,同时还要求实时的写入和聚合计算。针对一个供应商的一次计算就可能涉及上百万条的聚合数据,一旦数据量大了,聚合运算就变得非常非常慢,计算的压力非常大。所以很多时候,我们都要等业务量不大时才能运行。”张劲涛说。
为了解决这些问题,出行 365 曾设想过用数据仓库、数据库中间件 MyCat 等多种方案,但均效果不佳,选用新的数据库似乎成了不二之选。特别是 2022 年,公司决定对所有部署到用户的系统进行整合,将众多分散的小系统整合为一个大系统,意味着这个数据库需要承载非常大的数据量,并采用集中的 SaaS 模式为用户统一提供服务。不管是从成本的考虑还是数据量的考虑,Oracle 都已经无法满足发展需求。
但数据库迁移并非易事。“首先,它要能在语法上跟 Oracle 能够兼容,否则改动的工作量会很大,其次在性能上要能很好支持海量数据的复杂聚合计算需求,而且在事务支持上不打折扣。”从 2021 年开始,张劲涛很多功夫都花在了数据库的遴选上,但尝试了国内外很多数据库产品后仍未找到合适的。就在张劲涛惆怅不已之时,OceanBase 出现了。
通过测试后他惊讶地发现,一个 OceanBase 数据库就能同时满足上述两个需求。“在出行 365 评估的所有数据库中,OceanBase 是与 Oracle 兼容度最好的。而且在性能比对上,Oracle 和 OceanBase 没有明显差异,在某些场景 OceanBase 可能表现还更好一些。”张劲涛说,“此外,进行迁移测试时 OceanBase 也是最平滑的。而且还有完整的迁移方案,让我们非常容易地完成了数据库迁移,整个迁移过程不到 2 个小时。”
三、站在数据库的肩膀上,轻松“远足”
2022 年下半年,出行 365 完成清分结算、云车站等数套系统的数据库升级之后,2023 年便迎来了旅游市场的一路“狂飙”,让张劲涛很满意的是,尽管面对流量的暴增,系统依然运行非常平稳。
2023 年 8 月 31 日,为期 62 天的铁路暑运结束。据中国旅游研究院数据显示,今年暑期全国国内旅游人数达 18.39 亿人次。“这么大的客流量,每一秒中可能都有很多人在同时发生购票行为,这带来的余票变化非常频繁,系统要随时更新,而且是全网更新,这就对数据库的要求很高。但在 OceanBase 的支撑下,整个暑期我们的系统没有遇到任何运维方面的麻烦。”张劲涛说。
此外,除了解决运维烦恼之外,数据库迁移之后的成本优势也非常明显。张劲涛介绍,由于 OceanBase 采用自研高级压缩存储引擎,数据存储压缩率达 80%,如原本需要存储 10TB 的费用,现在仅需存储 2TB 的费用,大幅度节约出行 365 的数据存储成本。
“国产数据库带给我最大的感受就是,发现这个困扰我很多年的问题突然不见了,我们不必再为了迁就数据库而在业务功能上做平衡和取舍了。”张劲涛感慨,“放在十几年前,国产数据库的研发对我们来说似乎是一件遥不可及的事情。”因为他们这一代 IT 人,经历过太久国外技术“一统天下”的岁月了。
“别说软件,那时候像手机、电脑等很多硬件产品大家都会首选国外的产品。但这些年,硬件方面国货已然崛起,并且逐渐在国际上占有一席之地。如今这样的逆袭故事也开始在软件领域上演了。”对此张劲涛十分期待。
如今从复杂的数据库运维工作中解脱出来张劲涛还想借助国产数据库开发更多新的业务。“现在我们有更多精力可以研究一些以前无法实现的计算量巨大的业务功能,比如我们的清分结算系统中通算功能等等。未来我们计划将更多的业务迁移到国产原生分布式数据库。”
如果说,出行 365 用互联网技术改变了国人的出行方式,让更多人能够轻松抵达“诗和远方”;那么对于像张劲涛这样的软件开发人员来说,数据库等根技术的创新也改变着他们的开发模式,让技术人员站在数据库的肩膀上轻松“远足”。