出行365 CTO张劲涛:智慧公路客运出行,数据库先行
《DB大咖说》第二期来啦!
「DB大咖说」的第 2 期节目,我们邀请到的是盛威时代(出行365)CTO 张劲涛,在高铁、飞机如此发达的出行领域,他却深耕公路客运 11 年,他表示公路客运所提供的“门到门”服务是其他长途出行方式所不具备的。由技术出身,却也对出行行业有情怀,除此外,他还是一名数据库发烧友,接触数据库近 20 年,从 dBase、FoxBase、Access 这样的桌面级数据库年代,到现在百花齐放的数据库行业,他是技术发展的无数见证者之一……
本文从他的职场成长出发,到出行 365 与 OceanBase 的结缘,进行了细细交流,欢迎大家了解。
近十年来,国人的出行方式发生了天翻地覆的变化,以我们熟知的铁路出行为例,联网售票、电子客票、凭身份证进站的出现给铁路出行带来很大方便。与此同时,公路出行也发生了重大变化。今天的公路客运不仅实现了联网售票、电子客票、刷脸进站,还出现了定制客运、联程运输等新的业务形态,可以说,公路客运的转型同样也走得很快。
张劲涛正是这一变化的见证者和推动者。张劲涛是盛威时代集团副总裁、首席技术官,盛威时代集团是一家为公众出行和旅游提供服务的公司,其旗下的出行 365 通过 PC 端、APP、微信公众号、微信小程序、自助售取票设备等渠道提供汽车票、定制客运、网约车、火车票等出行服务,业务覆盖 28 个省(区、市),实现 3200 余个客运站互联互通。
出行 365 发展的背后是张劲涛所领导的技术团队的支持,这些年来,他们持续不断地将各种先进的互联网技术应用到公路客运,彻底改变了公路客运的出行体验。2022 年下半年,张劲涛又做出了一个大的决定,将现有的 MySQL、Oracle 数据库逐步迁往 OceanBase。数据库作为出行 365 整个系统的底座,其更换是一件牵一发而动全身的大事。而且,和大名鼎鼎的 MySQL、Oracle 相比,OceanBase 成名要晚得多,名气也小得多。张劲涛为何要做出这一举动,这一次升级是否顺利?带着这些疑问我们独家专访了张劲涛。
盛威时代成立于 2012 年,与滴滴的成立同年,与滴滴改变了市内出行体验类似,盛威时代改变了公路客运体验。
张劲涛 2013 年加入盛威时代,担任 CTO,负责公司的产品和技术,见证了这一行业变迁的全过程。
“最近十年是长途客运行业竞争最激烈和变化最大的十年,在互联网等技术的支持下,出现了很多新的出行方式(如高铁和网约车),给传统长途客运行业带来巨大的冲击。” 张劲涛在接受采访时表示。
但公路客运依然是主力,尤其在 100-200 公里的范围,公路客运依然是性价比最高的出行方式。同时,公路客户还能实现门对门,这是铁路出行所不具备的优势。
面对竞争对手的挑战,同时也是响应新时代的出行需求,出行 365 做出了很多创新。比如,从以前的单独买火车票或者汽车票,变成了联合出行,还依托互联网技术推出了很多新的出行方式,比如定制客运、网约车、顺风车等。
“虽然公路客运的本质没变,就是承载老百姓的出行需求,但互联网技术已经深度融入这个行业,正在颠覆这个行业。”张劲涛说。
其中最大的变化就是全面联网和业务线上化。这一变化的直接后果就是数据从以前散落在各个业务系统中到如今实现了数据的全面汇聚,使得哪怕一个细微的变化就可以全局感知,包括乘客。这给张劲涛所领导的技术部门带来了很大的压力:一方面是给终端用户的产品要好用,产品的易用性和功能性必须能满足用户的需求;另一方面是后台的网络和系统必须能提供有效的支撑,尤其是数据库,要能支撑数据的快速交换。
“比如,和 12306 一样,任何一个点的购票行为都会引发余票的变化。余票的变化非常频繁,系统需要能快速地对数据进行更新,而且是全网更新,这就对数据库提出了很高的要求,需要数据库能支持。”张劲涛说。
张劲涛介绍,对数据库的高要求主要体现在大数据量和频繁更新上。比如,在出行365,用以呈现各种业务的班次量就达到上亿的规模,而在更新频次上,每秒可能更新上万行。
另外,交易量也很高。张劲涛介绍:“出行 365 每日交易量最高达到百万笔,而且是读写同时都多,这给数据库带来了很大压力。而目前使用的数据库要么性能不足,要么成本上吃不消。”因此,公司不得已做出了更换数据库的决定。
提出数据库升级需求的首先是面向用户(比如客运站)的业务系统。这类系统部署在用户的数据中心,基于 Oracle 实现,部署的点多而且分散。2022 年,公司决定对所有部署到用户的系统进行整合,将众多分散的小系统整合为一个大系统,并采用集中的 SaaS 模式为用户统一提供服务。
数千个小系统的数据统一汇聚到一起,意味着这个数据库需要承载非常大的数据量,同时,新系统需要支持 SaaS 模式,不管是从成本的考虑还是数据量的考虑,Oracle 都不是理想的选择,选用新的数据库也就顺理成章。
提出升级需求的还有清分结算系统,该系统主要服务于财务人员,是用以和供应商、分销商进行结算的系统。由于各个业务系统的数据全部都会集中到这个系统中,不仅数据量很大,还需要按业务进行各种维度的分析,而且常常是跨周期(如按月、按年等)、跨纬度的分析,同时还要求实时的写入和聚合计算。
“针对一个供应商的一次计算就可能涉及上百万条的聚合数据,一旦数据量大了,聚合运算就变得非常非常慢,计算的压力非常大。”张劲涛表示。
以前设想过用数据仓库来进行聚合运算,但数据仓库不能支持 OLTP 业务,而出行 365 的系统对事务交易的要求比较高,因此无法用数据仓库来替换。
为了满足业务需求,张劲涛开始寻找各种解决方案。比如,对于面向客运站的业务系统最早曾试过用 PostgreSQL 来升级 Oracle。之所以考虑 PostgreSQL 是因为它对 Oracle 的语法兼容度很高,而且是开源的,但是,需要对应用程序进行修改来适配 PostgreSQL。
经过认真评估,张劲涛发现改动工作量有点大,同时,改完后性能也没有把握,最后放弃了这个选择。后来,又评估了几个国产集中式数据库,但改动量都不小,有的根本就胜任不了,最后都放弃了。
而在选择 MySQL 的升级对象方面,张劲涛主要评估的是各种分布式数据库,因为数据聚合量太大了,传统集中式数据库很难满足。张劲涛试过了几个分布式数据库都不满意。当时也曾考虑过采用数据库中间件 MyCat,通过分库分表来解决,但出行 365 的业务很复杂,不是某一种分库分表的模式就能解决的。另外,在测试时还发现,MyCat 在一些语法和事务方面支持不好,导致最后产生的数据有问题。
一番评估之后,张劲涛将目标转向了 OceanBase。通过测试后他惊讶地发现,一个 OceanBase 数据库就能同时满足上述两个需求。
张劲涛介绍,就数据库升级而言,他最为看重的是 OceanBase 与 Oracle 的语法兼容性。
“在出行 365 评估的所有数据库中,OceanBase 是与 Oracle 兼容度最好的,进行迁移测试时也是最平滑的。而且 OceanBase 还有完整的迁移方案,让我们非常容易地完成了数据库迁移,整个迁移过程不到 2 个小时。”张劲涛表示。
据悉,经 OceanBase 迁移评估工具 OMA(OceanBase Migration Assessment)的兼容性评估,OceanBase 的 Oracle 兼容率 99.81%,支持 GBK 字符集。这也是出行 365 用非常低的改造成本顺利从 Oracle 迁移到 OceanBase 的关键。
在数据库选型过程中,张劲涛另一个关注点是数据库的性能。出行 365 对 Oracle 和 OceanBase 进行了性能比对,发现两者在性能上没有明显差异,在某些场景 OceanBase 可能表现还更好一些。另外,OceanBase 已经在众多客户中得到部署和应用,产品成熟度也让张劲涛感觉放心。
而就对 MySQL 的升级而言,张劲涛最为关注的是对复杂聚合能力的支持, OceanBase 采用分布式的架构不仅可以很好支持海量数据的复杂聚合计算需求,而且在事务支持上不打折扣。
敲定采用 OceanBase 之后,出行 365 很快就着手开始升级。目前,出行 365 已经完成了多款系统数据库升级成 OceanBase ;同时,在互联网业务方面,也完成了清分系统对 MySQL 数据库的升级,到今年年底还会有几个数据库会逐步替换为 OceanBase。
张劲涛表示,OceanBase 数据库几个月运行下来,给出行 365 带来了不少好处:
首先,简化了软件栈。原来的 MySQL、Oracle 都统一到 OceanBase,简化了数据库的运维工作,而且采用云模式,出行 365 完全从复杂的数据库运维工作中解脱出来。
其次,提升了系统弹性。云服务交付的 OceanBase 能按需扩容,从而轻松应对流量高峰。
另外,凭借 OceanBase 自研高级压缩存储引擎,数据存储压缩率达 80%,如原本需要存储 10TB 的费用,现在仅需存储 2TB 的费用,大幅度节约出行 365 的数据存储成本。
“以前一到节假日,我们都提心吊胆的。现在升级到 OceanBase,产品稳定,再加上有他们的运维团队做保障,我们放心多了。上线几个月来,还没有遇到任何运维方面的麻烦。”张劲涛说。
张劲涛是一个典型的技术男,同时也是一个成功的技术男。从计算机专业毕业,在进入盛威时代之前,曾在用友工作,做到了技术总监,来到盛威时代后直接担任 CTO,在职业发展路径上简单且清晰。
回顾自己的职业经历,张劲涛认为,他热爱技术,喜欢钻研,同时还能持之以恒,这可能是其能有今天的成绩的重要原因。张劲涛说,要想做好一件事,首先要热爱它,这是前提;其次是要勤于思考。
“计算机是一门基于实践的学科,需要用于尝试。尝试也许会失败,但持续不断地尝试,最终总会做出一些创新来。”张劲涛说。
张劲涛就是这么成长起来的。例如今天市场上很流行的低代码,张劲涛早在 10 年前就已经开始研究类似的工具;此外,数据库也是张劲涛非常感兴趣的技术之一,接触数据库近 20 年的他,与一般软件开发者不同,他并不满足于会用数据库,而是会主动挖掘数据库的底层技术。比如,张劲涛很早就曾专门研究过桌面数据库 FoxBase 的底层技术,对其数据的物理存储方式非常了解,比如一个表里数据是如何存放的、哪些位代表了什么等,还曾经用 C 语言编写了一个 B+ 树的索引,来辅助 FoxBase 对数据进行处理。
也正是因为张劲涛自己对数据库的兴趣,再加上从事企业软件的开发多年也一直和数据库打交道,因此,张劲涛对国产数据库也就多了几分关注。张劲涛说:“在国产软件上,国产数据库的发展比较成功,如今生态也基本建立。更为重要的是,人们都已经意识到作为根技术之一的数据库的重要性,国家在支持,也有一批企业和技术人员愿意在数据库上投入,逐渐进入良性发展的轨道。”
“数据库已经走出了一条相对成功的发展之路,虽然后面可能还很漫长,但相信国产数据库未来可期!”张劲涛表示。