进入 PingCAP 的历程

1. 自我介绍

我叫聂泽峯,湖南人,1992 年生人,本科研究生均就读于北京航空航天大学,2016 年毕业,获得信息与通信工程硕士学位。同年加入中国民航信息股份有限公司,任职 DBA。

喜欢游戏,篮球,DOTA。读书期间学习不好,中等的样子。研究生主攻的内容是导航,惯导/GPS/BD,其实也是被动的选择,跟着导师干活 对计算机并不感冒,找工作也没有明确的目标,最终选择了中国航信,成为了一名DBA,稀里糊涂的进入了计算机领域。

2. 航信工作历程

关于航信,简单来说,中国民航的信息系统基本都是由航信提供的,主要业务是在航空公司和代理商之间提供一个作为中间商,在中国,每卖出每一张机票,中国航信就要从中收取一部分费用,目前是全球第三大 GDS(航空旅游分销系统提供商),为中国国内除春秋航空之外的全部航空公司,和300余家外国及地区航空公司提供服务。

简单描述一下在航信的工作:

缺点: 航信经过多年的累积,主流技术已经非常稳定了,比如数据库 ORACLE,PostgreSQL,还有国产的达梦(几套)囊括了所有的生产数据库,持续了很多年。人员流动性高,但是进来的几乎都是校招,走的几乎都是新入职几年的员工。一些新的技术只在测试或者边缘系统得到应用,技术上难以取得进步,比较封闭。内部分为了研发中心,运行中心,结算中心。 开发,运维交流很少,运维人员几乎只懂运维,这对个人来说比较不利。

优点: 稳定,自己的时间比较多,在公司18年搬到后沙峪之后,我就住到了公司园区的宿舍,朝九晚五几乎很少加班,园区比较安静有运动设施,一日三餐管饭,整体节奏慢,可以有时间去做自己的事情。

到了 18年底的时候,我发现自己工作的欲望比较低了,因为我本身并不是一个习惯主动摄取知识的人,相对比较被动。在航信除了运维工作外,也兼职搞了一套航信的 DBAAS,基于 ELK 日志管理系统,监控智能系统。但是都比较初级,当想进一步的时候,可以请教,帮助我的人身边几乎没有。项目进展缓慢,而且缺乏监督,就是按照自己的进度慢慢做。

在航信有个领导 C 哥,C哥原本也是个 DBA,后来成为了开发平台的领导,他告诉我说他自己的状态,当了领导之后,一天经常全在开会,有时候甚至不用打开电脑,非常轻松,职业发展中,如果自己长期处于一个轻松的状态,那么一定是有问题的。所以他主动承担了新建大数据部门的领导工作,跳出自己的舒适区。 所以我也开始思考自己的职业规划,我认为自己不是一个足够自律的人吗,所以环境对我的影响很大,我希望换一个环境,一个有足够知识输入,足够的挑战的环境。

3. 与 PingCAP 结缘

最早听说 TiDB 是去某个互联网公司面试的时候,面试官告诉我说除了在使用传统的数据库之外,还在使用一种 NewSQL 叫 TiDB,是国内的一个创业公司研发的,类似 NoSQL 一样可以水平扩展但同时拥有传统数据库 ACID 特性的分布式数据库。

而后面试了一些其他的公司,但是由于各种原因最终都没有去,我希望可以去一家充满挑战和不确定性的公司。2019 年,一个猎头姐姐找到我,向我推荐了 PingCAP 的技术支持工程师的岗位,非常凑巧的是这个猎头姐姐刚好是我老乡,也是同一个高中的学姐。我跟她多次交流自己目前的困境,以及对职位的诉求,也对 TiDB 逐渐熟悉起来,这个公司现在在做的事情在中国之前几乎都没有人做过,做一款开源数据库,从 0 开始写一个数据库,同时也是一家非常 geek 的公司,一步一步的在创造历史,我明确了这是一个非常适合我目前诉求的岗位。

面试过程:
<1> 初面是 HR 姐姐电话沟通的,简单聊了一下自己目前的工作情况,简单聊了几个技术问题。
<2> 二面,三面 都是我去北京 office 一次性完成的。网上有一些贵司的面经,但是大多是研发同学的,可能会有小作业,看你的完成程度。与研发同学的面试不同的是,以前没有 TiDB DBA,很多的 DBA 以前是 ORACLE.Mysql DBA 转过来的,所以面试大多是从之前的工作经历来提问,看你对 ORACLE,MySQL 数据库的掌握程度。二面是一个高级 DBA 面试的,问了很多 ORACLE 常见的问题,三面是 DBA leader 面试,同样也是从技术问题上一步步深挖你对技术理解到什么程度。这里跟其他地方的面试没什么不同。
<3> 终面是商业化团队的 leader ,这里是真灵魂拷问了,从各个方面提问,技术问题,对技术潮流分析,对开源的理解,商业价值的思考等等。差点被问的怀疑人生。不过这里也看出来公司对每一个员工都是非常慎重的,希望从各个方面了解你,看彼此是不是适合。

整个面试持续了一个下午加一顿晚饭。我个人整体感觉一般,技术问题答上来 60-70% 可能,最终面试大部分问题都是自由发挥,接受教育的过程。再等待了 3-4 天之后,终于等到了回应。

4. 在 PingCAP 的一年

2019年4月11日,我加入了 PingCAP。到今天快一年的时间了,总结这一年的工作感觉,从我自己角度来说就是真正在面对挑战。

  1. 工作方式,从甲方到乙方的转变,售后工程师其实在传统行业里是地位比较低的,甚至在原公司有的同事听说我要换这份工作的时候表示很不理解。以前一些第三方在提供技术支持的时候,通常会选择初级工程师,主要工作就是按照既定的流程进行既定的操作,没什么技术含量,通常也是熬夜的苦活。甲方通常作为监工督促乙方干活。也有因为一些原因,导致客户态度恶劣,接受无端指责。但是大部分时候, TiDB DBA 的工作不仅限于客户支持,很多时候做了传统意义上售前的工作,帮助客户制定技术方案,宣讲,POC, 产品功能讨论等。一次次跟客户交流之后我也逐渐喜欢上跟客户的交流,明白了帮助客户解决问题,实际上也是开阔自己视野,提升产品能力的途径。

  2. 工作氛围: 整体公司的工作氛围是很融洽的,同事都会耐心的解答问题。大家都是热爱技术,有信仰的人。比如我之前 github 用的少,这个博客也是 @Atman 同学帮忙一起搭建的。以前我比较不自信,觉得抛出一些别人看来很简单的问题会觉得很尴尬,其实不然,每个人都有自己的知识盲区,技术点,跟人交流可以快速的提升自己。这可能也是这家公司开源的基因决定的吧。

  3. 产品成熟度: 现在很多的企业都在进行分布式数据库的选型调研,我也经历的几次大型的 POC 测试,大部分时候是需要跟其他数据库 PK 的,由于分布式数据库的特点,在延迟上总是比单机数据库,或者一些分库分表方案要高。而且一些功能的缺失也让我在 POC 的时候受到一些打击,产品成熟度比我进公司前想象的要低。但是这也是不可避免的,公司成立不到五年,很多的地方比不上传统数据库几十年的累积经验,但是公司的快速发展也让我感到震惊,我刚进公司时,3.0 刚刚发布,到今天4.0 已经发了 beta 版本,从前 TiDB 只有乐观锁,现在 TiDB 支持悲观锁,从前我们不支持分区表/视图/窗口函数等,现在可以支持。从 3.0 到 4.0 性能又有了突破性的进展,有了列存引擎,有了分布式备份工具,更有 auto scaling , TiDB Dashboard, key visualization等正在孵化中的功能,目睹公司的产品一步步的进步,是一件很有成就感的事情。

  4. 国际化,公司从一开始就不是打算做一款国产数据库,而且做一个全球的开源数据库。海外一些企业已经使用 TiDB 作为他们核心系统的数据库。这就涉及到了英语支持的问题。去年 7月,公司为海外一个客户做培训,我作为其中一名讲师准备英文的 PPT,英文讲稿为海外用户讲解 TiDB 的监控和报警,虽然有点赶鸭子上架的感觉,但是在公司大佬和 i18n 团队(公司专门为国际化组建的团队)的帮助下也算顺利完成了,更在一次次跟客户的交流中边学边练。今年海外市场需求越来越大,公司也组织了英语的培训,今年的第一个目标就是提升自己的英语水平,顺利支持更多的海外用户。

    5 最后

    总之加入 PingCAP 之后,工作跟以前有很大的区别,一直在化不可能为可能,我也在一次一次的挑战中,提升信心,争取提升自己。之前由于各种原因很少总结,后续会在这里发一些自己的思考。

为了应对更多的客户 TiDB DBA 团队也在持续招人感兴趣的可以联系我 zefeng.nie@pingcap.com

Written on March 19, 2020