乐趣区

关于数据库:DBA100人台枫DBA不仅要懂运维还得懂代码

引言

 

「DBA 100 人」专访打算是 OceanBase 围绕资深 DBA(数据库管理员:Database Administrator)进行的人物专访流动,旨在通过人物故事、职业倒退经验以及日常工作中遇到的技术难题和实际案例,将来对技术趋势的想法,心愿他们的成长之道可能给到各行业 DBA 一些倡议和思考。

《DBA 100 人》第 3 期带你理解携程数据库高级工程师台枫——OceanBase OBCP 认证专家,业余时间在社区中撰写过多篇 OceanBase 技术文档广受欢迎,心愿他的 DBA 成长史能给你带来参考价值。


 

2020 年 7 月,当很多刚跨出校门的大学生毕业生还在为本人的工作发愁时,台枫曾经顺利通过实习期,成为携程的一名数据库管理员。台枫大学毕业的 2020 年,大学生毕业人数冲破新高,达到 874 万人,大学生待业成为当年社会性话题。

台枫是 7 年前考上上海大学的,并开始进入学校的计算机科学与技术业余学习。进入大学四年级的时候,台枫就曾经修完所有必须学的课程和学分,只剩下毕业论文了,这让他有短缺的工夫实习和找工作。2019 年 8 月台枫退出携程团体数据库团队,成为一名实习生。实习期体现优良,失去公司认可,于 2020 年 7 月转正,正式开启了他的 DBA 之旅。

 

不小心成了一名 DBA

 

成为 DBA 并不在台枫的布局之中。在成为 DBA 之前,他对于 DBA 的职责也只有一个绝对含糊的概念,对数据库产品的认知也就停留在数据库的基础知识,晓得有 MySQL、SQL Server、Oracle 存在。好在他就读的上海大学计算机专业比拟重视学生的基础知识教育,扎实的计算机常识使得他很快就能适应这一职位。

台枫从小就喜爱玩游戏、玩电脑,很早就接触计算机,对计算机很有趣味,曾代表上海加入全国青少年信息学奥林匹克联赛(NOIP),拿过不错的联赛名次。这也是他起初抉择计算机专业的起因。不过,计算机专业并非台枫的第一意愿,他的第一意愿其实是数学,当年上海大学数学业余录取分数更高,他才进入计算机学院。

尽管没有进入现实的数学业余,但他并没有感觉遗憾。“最终后果应该都差不多,因为数学业余毕业后,我大概率还是会进入计算机行业的。”台枫笑着说。

携程数据库团队负责全团体多种数据库产品经营,包含 MySQL、Redis、TiDB、OceanBase、MongoDB、Hbase、SQL Server 等,波及上万个实例。这些都是携程最为外围的资产,为了保护它们,携程建设了一支超过 30 人的高水平 DBA 团队,团队中也不乏各种出书立说的数据库大牛级人物。

台枫进入携程的时候,公司曾经建设了一套绝对成熟的治理流程,大部分运维工作都曾经实现自动化和流程化。数据库的日常运维只是占 DBA 的一小部分,DBA 更多的工夫用在运维工具的研发和能力进步上。能接触数据库底层的技术,能把大学里学的常识和理论联合起来,这让台枫十分兴奋。

进入携程成为一名 DBA 实习生,台枫很快就适应了新的身份,并迅速喜爱上了这份工作。

“印象特地深的是,在刚开始实习的时候,公司要把 MySQL 从 5.6 升 5.7,大家一起学 5.7 的新个性 gtid,做 gtid 的试验做到最晚一个上班,过后感觉钻研这类货色挺乏味。起初对 MySQL 的了解加深,随后接触到 OceanBase,本人对分布式数据库系统的趣味也是越来越高。”台枫说。

趣味是最好的老师。进入携程后,台枫成长很快,先后获得了 OceanBase OBCP 认证证书、TiDB PCTP 认证证书,还曾在社区中撰写过多篇 OceanBase 技术文档。明天的台枫曾经是携程数据库高级工程师,成为了能独当一面的 DBA 了。

 

向分布式数据库迁徙

 

携程的业务零碎最早是建设在 SQL Server 数据库之上的,采纳 SQL Server 和小机的传统架构。随着业务的疾速成长,数据量呈现出爆炸性增长,数据类型也一直减少,数据库类型也不断丰富。与此同时,SQL Server + 小机这种传统架构的高老本和灵活性有余的问题开始显露出来。

2010 年当前当中国的互联网企业纷纷开始走上“去 IOE”之路,携程也在去 SQL Server 和小机。台枫 2019 年进入携程开始实习的时候,携程去 SQL Server 曾经靠近序幕,原来在 SQL Server 运行的业务绝大部分都曾经迁徙到 MySQL 上。

随着携程开始宽泛应用 MySQL,MySQL 的有余逐渐浮现。一个突出问题是,MySQL 作为一种集中式数据库,扩展性先天不足,扩容比拟麻烦,而且老本也比拟高。为了解决这问题须要采纳分片(Sharding)和中间件,实现简单,技术门槛高,还须要开发端的反对。台枫就经验过几次扩容,每次都小心翼翼惟恐出错,最初弄得筋疲力尽。

另一个问题是 MySQL 集群脑裂的危险。这个危险让携程十分缓和,如果真的有一天网络呈现故障,集群决裂为几个互相无奈通信的小集群,数据就会呈现不统一,须要 DBA 来人工修复校验数据,想想这个工作量就让人头疼。

分布式数据库的异军突起让携程看到了解决问题的心愿。分布式数据库就是为解决高可扩大、高可用性而生,如果将 MySQL 换成分布式数据库,携程最为关怀的两个问题能轻松地失去解决。

携程审慎地决定尝试将一部分线上 MySQL 替换为分布式数据库,这既是对 DBA 团队技术实力的信念,同时也是为了更好地满足业务需要。决策已定,上面的问题就是该抉择哪家的分布式数据库?

当下分布式数据库大体有三个技术流派,一个是中间件 + 传统集中式数据库;一个是原生分布式数据库;还有一类是鉴于两者之间采纳共享存储架构的分布式数据库。通过评估,携程将选型范畴确定为原生分布式数据库,同时明确这个数据库肯定要开源,以不便携程深刻理解该数据库后进行相干工具的开发。

 

国产数据库迎来新机会

 

通过认真地评估,携程最初选定了 OceanBase。一旦选定,携程的工作节奏十分快。2021 年 6 月 OceanBase 开源后携程才正式开始对 OceanBase 进行全面评估和上手测试,到 7 月份就开始上线一些开发和测试项目,到往年用于生产的 OceanBase 数据库集群曾经有 20 多个,笼罩小局部订单、结算业务以及不少非核心业务。

台枫介绍说,从 DBA 的视角看,OceanBase 带来了三大益处:

▍高可用,可避免数据库集群呈现脑裂。OceanBase 基于 Paxos 分布式协定很好地解决了这个问题。

▍良好的扩展性,升高 DBA 的工作复杂度。OceanBase 在扩展性上十分优良,是原生的反对。扩容变成了简略的服务器部署问题,一个命令上来,零碎就能主动实现。

▍OceanBase 的高压缩比升高了存储老本。OceanBase 采纳了 LSM-Tree 的存储构造,在合并过程中会进行压缩。另外,在底层存储上空间排布很严密,不会呈现空间节约。

台枫走漏,在选定 OceanBase 前,携程其实曾经部署了另一家原生分布式数据库,并且有不小的规模。在携程现有架构下,两种分布式数据库的实用场景和定位不同,两者当初处在共存状态。

通过对几家国产分布式数据库的评估,台枫对国产数据库有了绝对全面的意识。他认为,国产分布式数据库整体体现出了十分高的技术水平,他看好国产分布式数据库的将来。

“当下国家在政策层面踊跃疏导,国产数据库百花齐放,竞争强烈,技术迭代很快,体现除了很强的创新力,这些为国产数据库市场的凋敝奠定了很好的根底。”台枫说。

台枫认为分布式数据库会是行业趋势。 随着数据量的增长和网络性能的进一步改善,分布式数据库的劣势会进一步体现进去。 同时,台枫也示意,作为数据库的后起之秀,分布式数据库也还有不少工作要做。比方,国产数据库有一个独特的有余是对故障定位不太敌对,与 Oracle 等有差距。这些数据库提供了比拟丰盛的排查工具和各种报表,呈现问题后能够迅速定位。

另外,在外围生态上也需疾速跟上,这能够大大降低部署和施行的门槛。携程技术实力强,很多工作都能够本人做,比方,为了反对 OceanBase 与 MySQL 数据库的同步,携程自研了一套迁徙工具,其中蕴含业务的兼容性查看、业务模型的性能压测、数据的全量增量同步等等一系列性能;为了捕获、剖析、解决 OceanBase 的组件日志,通过基于 ELK 的日志收集形式,搭建了一套分布式数据库日志中台。这些技术实力显然是个别公司难以匹敌的,对一般企业而言,更大的依附还是原创。

 

DBA 要深刻系统核心

 

从 2019 年 8 月退出携程到当初,台枫做 DBA 的日子并不长。回首这三年的 DBA 时光,台枫还是很快慰,非常感谢携程数据库团队给予他的帮忙,良好的技术气氛也是他得以疾速成长的重要起因,特地是在携程并没有陷入日常繁琐的运维工作,能够有更多工夫专研技术,也让他在 DBA 的路线上后退得能更快一些。

谈到 DBA 这个职业。台枫说,他对本人的一个根本要求是要做一个能睡得着觉的 DBA。

“我感觉,一个好的 DBA 前提是你要对本人开发的工具和本人运维的数据库有信念。换句话说,就是你早晨你要睡得着觉,不放心出问题。如果你对本人没有信念,就阐明你技术不够成熟,还做得不够好。”台枫示意。

当然,这个信念是建设在扎实的技术之上的,而不是自觉自信。因而,他认为 DBA 要深刻数据库内核,从原理上找到解决问题的方法。不仅能解决问题,还要能说得清为什么要这样解决。

“DBA 须要工夫积淀,一直碰到问题解决问题,一直成长。同时,DBA 的知识面也要比拟广,不能只是关怀数据库的事件,操作系统、网络、服务器都须要学习,要有成为一名 SRE 的实力。”台枫说。

台枫特别强调,做 DBA 一样沉得住气,要静下心,多看文档,本人入手搭测试环境,不能满足于做好运维,还是具备代码能力,这样能力做得远。

台枫走漏,他心里有一个指标,就成为一个像 OceanBase 创始人阳振坤老师这样的人,成为数据库畛域的科学家!

退出移动版