转载来源:OceanBase数据库星球服务号

编者按:人生很多事情并不是刻意规划出来的,而是一步一步走出来的。一个原本该穿着白大褂、出入实验室的技术员变成了身穿格子衫、出入写字楼的“码农”,张耀辉是如何完成这一职业角色转变的?如何跨专业做好DBA?本篇文章为大家揭示这一转身过程。

嘉宾介绍:张耀辉,毕业于哈尔滨理工大学,高分子材料科学与工程专业。目前就职于独角鲨(北京)科技有限公司,担任系统部负责人。从事7年软件开发工作,主要涉及金融支付行业,熟悉国内外支付体系,擅长支付系统建设。

张耀辉是Payso公司系统部负责人,主要从事服务端软件开发,也就是大家常说的“码农”,并兼职做些DBA的工作。对于今天的工作,当年在哈尔滨理工大学高分子材料专业学习时的张耀辉做梦都没有想到过。

半路出家的“码农”

高分子材料是研究有机及生物高分子材料的制备、结构、性能和加工应用的高新技术专业,这个专业的学生毕业后最可能的工作单位是某化工产品公司和化工研究单位,担任化学技术员和研究员,研究的主要对象是塑料、橡胶等。

张耀辉大学学的正是高分子材料,当初选择这个专业时其实对该专业并没有什么了解,选择它颇有些偶然。大学期间张耀辉对专业知识的学习也谈不上太多兴趣,当然也谈不上厌恶。本来以为这辈子可能就要从事这个专业了,直到2013年张耀辉大学毕业进入社会后发现这不是自己的理想职业。

毕业后的他通过校招到了温州,从事电缆相关的研究工作。干上这份工作后张耀辉才对这个行业真正的了解。这个行业工作枯燥,收入也不高。那些年中国的互联网发展突飞猛进,吸引了大批年轻人涌入IT行业,与IT行业的这些同龄人者相比,张耀辉有很大落差。

在张耀辉看来,IT行业接触的都是最鲜活的知识,还拿着比自己高得多的收入,这让他羡慕不已。在看到身边也有一些非计算机专业的人也进入了IT行业,张耀辉决定对自己的人生重新进行规划,将“码农”作为自己人生的下一站。

做出这个决定之后,张耀辉就开始行动了。张耀辉来到北京,进入一家培训机构开始系统学习Java和服务端开发,同时自己开始恶补计算机专业知识。

“计算机这个专业,如果你数学、物理逻辑性思维好一点,其他专业的人学起来其实没有太大的难度。特别是,如果目标不是非要做高级开发技术专家,大多数知识是不难掌握的。”张耀辉表示。

经过半年的系统学习和培训,2015年张耀辉正式进入IT行业,在一家从事金融支付的互联网公司从事软件开发工作。工作后发现身边这种跨专业的人并不少。

“我发现,在IT行业有很多人是半路出家,从其他专业转到计算机专业,他们都做得挺不错的。” 张耀辉说,这给了他很大的信心。

2020年,Payso公司成立,系统部有职位空缺,张耀辉顺利入职,成为系统部负责人,负责Payso公司IT系统开发和运维保障工作。

是分库分表还是换数据库?

Payso是一家初创公司,主要面向海外客户提供金融支付服务,比如,收单业务、电子钱包等。Payso系统曾经创下日交易18亿元人民币、交易笔数70万笔的记录,在支付管理系统和电子支付产品方面都做得比较领先。

和很多创业公司一样,Payso的系统采用的是开源架构,数据库选择的是MySQL,部署在阿里云上。随着业务的快速增长,数据库增长也非常快。不少单表记录都在百万条以上甚至近千万,有些表已经过亿了,并且随着订单的增长还会一直增长下去。在数据量不断增长过程中,MySQL的性能开始出现问题,而且可以预见,随着时间的推移,这个问题将越来越明显。

解决MySQL的性能问题一般有两个办法:一个办法是从MySQL数据库本身着手,比如分库分表和读写分离;另一个办法是换数据库。

在张耀辉看来,第一个办法中的“读写分离”不太适合Payso。因为Payso做的是支付业务,需要保证每次查询的订单结果都是真实有效的。而采用读写分离,由于读库与写库可能存在延迟,无法保证数据的强一致,这样读到的就不一定是真实数据。

“我们和一些电商的业务场景不一样。我们操作的就是订单,是客户的账户里的信息。我查到它是什么状态,它就必须是真实的状态。”张耀辉解释。

而“分库分表”在张耀辉看来也不太合适。因为这是一个技术性比较复杂的解决方法,需要借助中间件,对业务系统也是侵入性的,可能需要修改代码,运维也非常复杂。对于目前还没有设置专职DBA的Payso而言,实现起来成本比较高。

经过全面的评估,Payso决定更换MySQL数据库,用一个能满足数据高增长需求,性能也有可靠保证的新数据库来替换MySQL,一劳永逸地解决这个问题,而分布式数据库无疑是一个理想的选择。

迁移比预想的顺利

在当今数据库市场分布式数据库并不少,究竟选择哪一个是很多公司在进行数据库选型时非常纠结的问题。不过,对Payso而言这个问题比较简单。在Payso公司,没有复杂的POC流程,几个同行的参考案例加上内部测试就确定了 OceanBase。

当然,Payso最后到底用不用 OceanBase ,还得看测试结果。在 OceanBase 技术人员的支持下,Payso进行非常全面的功能测试和数据验证。这个过程长达2个月,结果非常满意。在迁移测试时,除了有个别表的字段类型需要调整,有些表没有主键的需要设置主键,以及一些原来不规范的SQL语句需要修改外,几乎没有遇到什么大的麻烦。

张耀辉说,OceanBase 的配套工具做得非常不错,包括容灾、多活以及负载均衡以及迁移工作都非常全面,这大大方便了Payso的迁移工作。

“在迁移时遇到需要调整的表,系统会提醒,然后 OceanBase 技术人员也会告诉我们如何调整,因此整个过程非常顺利。我们甚至都没写一行代码就完成了这次迁移工作。”张耀辉表示。

张耀辉分析认为,这次迁移之所以顺利,除了 OceanBase 工具全面外,可能与他们原来使用的是阿里云的MySQL RDS有一些关系。OceanBase For MySQL版本和MySQL高度兼容,驱动配置什么的几乎都不用修改。

目前,Payso已经完成了数据库迁移,业务系统全面迁移到 OcenaBase 上。数据库性能的问题彻底解决,运维也变得非常简单,系统扩容、备份都可以通过控制台一键解决,让身兼DBA之职的张耀辉轻松了不少,他也可以将更多的精力放到业务系统的开发上。

谈到此次的数据库迁移张耀辉显得非常满意,这次迁移也让他看到国产数据库的巨大进步。

“数据库的性能问题其实也是可以从业务层面解决的,但那对开发人员和运维的要求都比较高,因此成本也比较高。我们换了 OceanBase 数据库,没有增加太多的成本,就彻底解决了这个问题。国产数据库很给力。” 张耀辉表示。

保持技术的好奇心

张耀辉主要工作是软件开发,数据库运维只是其兼职,并不是其主要工作职责。但作为一个软件开发人员,张耀辉认为懂一些数据库的知识非常必要。因此,在工作中张耀辉也非常注意对数据库的学习。

除了OceanBase,工作过程中张耀辉还接触过IBM DB 2、Oracle、MySQL,张耀辉充分发挥自己自学能力强的特点,在对这些数据库的运维过程中积累了不少的经验,尤其是MySQL。

回顾这几年兼职DBA的经历,张耀辉认为,作为DBA,除了要掌握相关数据库的运维知识,还要保持对数据库最新趋势的好奇心,不断积累。

“一个人对技术了解的广度、深度是需要慢慢积累的。最开始的学习可能是为完成某个具体的工作,在完成工作之后,如果你发现还有很多东西需要学习,就应该抓紧机会学习。这个时候效果很好,因为这些学习的内容是你比较感兴趣的,掌握起来也更容易。”张耀辉表示。

张耀辉说,IT行业是一个知识更新非常快的行业,从业者一定要保持对技术的好奇心,要不断更新自己的知识体系,要持续积累,才能保持在职业通道中始终处于上升趋势。这也正是这些年他能从一名初级“码农”成长为一名独当一面的技术负责人的深刻体会。

张耀辉说,接下来他还要继续提升自己的能力,希望能成为一名高级的架构师和真正的技术专家。