小米不同成长阶段的策略(崔宝秋国际开源经验在小米开花)

2012年6月,北京,崔宝秋带着简单的行囊,落地首都机场,受到雷军的召唤,他准备加入小米。

告别家人,他在望京租了间房子,落了脚。

大学与雷军睡上下铺的崔宝秋,是上世纪90年代赴美留学的计算机博士、早期自由软件和开源软件的信徒、GNU Emacs的贡献者……在美读博和在IBM、雅虎、LinkedIn的工作经历,让他看到了开源在不同土壤落地的过程。重回北京,他除了想在小米干出一番事业外,脑海里还萌生了一个想法——让纯粹的开源在中国落地。

时间回到1999年,接入因特网不久的中国政府有意使用 Linux,可 Linux 重要贡献者、开源运动旗手Eric Raymond 对此公开表达了消极甚至反对的态度,他因刚发表的新书《大教堂与集市》而名声大噪。此时,自由软件信徒崔宝秋正在纽约州立大学石溪分校念博士,他发邮件与Eric Raymond争论,指出开源应无国界,并认为中国政府能够采用Linux的话,会大大推动Linux的发展,为社区带来大量的开发者。这封邮件上了Linux每周新闻(Linux Weekly News)网站,参与讨论的还有 Richard Stallman——自由软件的精神领袖和GNU系统、自由软件基金会的创立者。

崔宝秋对自由软件的热爱很大程度上来自 GNU,他喜欢GNU的程度甚至超过了Linux,毕竟Linux是在GNU这块土壤上成长起来的。他尤其喜欢GNU Emacs,一个强大的编辑器和编程环境。1995年,他就开始使用GNU Emacs,并快速成为高级用户,做了大量的个人定制开发。若干年后,他在Emacs Org Mode中贡献的DocBook格式导出工具被GNU Emacs正式接受,并在2009年把代码捐献给了自由软件基金会。

“回馈社区的过程很有意思。”正是遵循了开源精神,崔宝秋的代码进入到GNU里,让他实现了多年的梦想——让自己的代码跑在每个人的电脑上。

从自由软件的信徒到贡献者,崔宝秋愈发认识到开源对中国的重要性。尤其在基础软件领域,很多技术需要长期的积累和投入,是软件行业的金字塔底座,但主导权仍掌握在国外少数公司手里,开源则是帮助我们打破这个局面的最佳模式。“开源是卡不住的,它是自下而上的。”崔宝秋跃跃欲试,想把他在硅谷积累的经验一步步移植到中国。

加入小米后,他主导了小米的CBA(云计算——大数据——人工智能)技术变革路线,全面拥抱开源。他从零开始打造小米的HBase团队,培养出了一个又一个HBase Committer,每位Committer的成长都有崔宝秋的呵护。“教这些年轻工程师如何快速融入社区,如何坚持自己正确的观点,说服社区中的意见领袖,把先进的代码回馈社区。同时,也要让国外的开源项目负责人真正了解中国工程师的技术水平。”说起这套开源打法,崔宝秋语调升高。

他鼓励小米工程师到硅谷参加国际开源技术会议,一字一句地教年轻程序员讲英文PPT,从写演讲脚本到英文单词的重音等。团队用一周做出来的代码优化,要花数周甚至数月来向开源社区证明这个算法的正确性,要说服社区的技术大拿和负责人,是一个极耗精力的过程。

最终,大量来自小米HBase团队的代码放进了HBase代码库里,其中包括一个将性能优化提升了近5倍的改进,这个改进让全球所有的用户受益。崔宝秋笑了,他带来的开源种子终于在中国生根,在小米开花。

爱上计算机

对一个东西的好坏评价,最重要是看它有没有创造性。

幼时的崔宝秋喜欢画画,梦想当个画家。他总爱拿着粉笔在地上、墙上画来画去,照着小画册临摹《西游记》和《三国演义》里的各种人物,成果时常得到大人的赞扬。

父亲在高中教数学,对他影响很大,到了学龄阶段,宝秋的爱好也慢慢转向了数学。在老家的阁楼里见到父亲读大学时的大部头数学书,他非常崇拜,开始仰慕数学专业,可父亲对他说:“今后考大学时,这个专业可以不考虑,重复性的事太多,很难有创造性。”

转眼间到了高中,他在订阅的《中学生》杂志上看到了Basic语言写的程序,觉得很新奇,“但也不知道是干什么用的。”县城里没有计算机,这个新事物对他来说有点奇妙。

1987年高考,出于对数学的热爱和对计算机的好奇,他选了武汉大学计算机科学系。

小米不同成长阶段的策略(崔宝秋国际开源经验在小米开花)(1)

大学时代的崔宝秋

武大校园很美,尤其是樱花大道,崔宝秋的宿舍在樱园,一个房间四个人,每天尽享美景。

军训时,得知很多同学高中就开始接触计算机,有的参加过竞赛,好几个同学都在练盲打,崔宝秋有些不安:自己连键盘都没摸过。

人生第一次上机的时刻到了,他和同学来到机房,里面干干净净,像个高科技空间,每次进出都要换拖鞋。

在这里,他第一次见到了摩托罗拉68000处理器,一个显示器,一个终端陪他开启了专业之路。

崔宝秋很享受敲键盘的声音,且爱上了编程,凡是有写程序的专业课都很喜欢。操作之后打印出简单的程序,“那就是我的创造性成果”,“你可以让计算机做很多东西”。

同学们都在玩儿《生命游戏》,一个细胞的下一刻生死,取决于相邻八个方格中活着或死了的细胞数量,崔宝秋觉得很神奇,“我对计算机的第一好感是它让你有了创造力。”

因为爱好做出《绘星》

崔宝秋把BGI(Borland Graphics Interface)全都吃透了,里面的字体也被他逆向工程搞了出来。

武汉大学计算机科学系招了三个班,软件专业两个班,硬件专业一个班,每班25人,崔宝秋在软件2班。班里有个男生叫雷军,聪明又勤奋,为了学习,他戒掉了午睡的习惯。大二,崔宝秋和雷军分到同一个宿舍,两人上下铺,经常交流专业知识,“雷军在计算机领域的认知和探索,当时远远超过了我们这些同龄人。”

大二结束,雷军修完了大学所有学分,去北京中关村电子一条街闯江湖。一次回来,他在宿舍跟崔宝秋说:“宝秋,我在做加密软件‘黄玫瑰’,你帮我设计一个Logo吧。”

“好啊!”崔宝秋答应后就开始准备。

他想用计算机来设计,而不是用手画,就从零开始写了个绘图程序,286电脑没有鼠标,他就写程序用键盘模拟鼠标,一点一点完成了Logo的设计。

写程序时,崔宝秋用到了Borland公司的Turbo Pascal,他很喜欢里面的BGI(Borland Graphics Interface)图形功能。

从小喜欢画画的崔宝秋对BGI自带的字体很感兴趣。他通过逆向工程弄明白了BGI矢量字体的数据结构,再从英文原版教科书中找到一个高速画直线的算法并把它编写了出来,就可以快速绘制出精美的字体。

接着要做动画效果,他用异或(XOR)运算操作让字体漂移、活动起来。一次偶然的机会,崔宝秋发现BGI绘制后的字体和自己的绘制算法异或叠加后不能完全清除,让他百思不得其解。

没有BGI的源代码,他只能通过反汇编找到BGI的图形接口,一步步跟踪下来,才发现BGI的画直线算法和自己的画直线算法有点不同,BGI的算法只有30多条汇编指令,非常精美。“原来BGI的画直线算法和教科书上的不一样。”就这样,崔宝秋用反汇编和逆向工程,解决了绘图软件中用异或操作消除直线的困扰。

不过BGI系统自带的字体太少,只有4种,而AutoCAD里的字体有几十种,且都是矢量字体,崔宝秋就把它们逆向弄了出来,转换为BGI矢量字体的格式,放进绘图程序里。此刻,崔宝秋如获至宝、喜出望外,随即在《计算机世界》杂志上发表了文章《将AutoCAD矢量字体转换为BGI矢量字体》。

雷军一直没来要Logo,而崔宝秋却做得很享受,他把这个绘图程序取名为“绘星”,不久便获得了省级计算机竞赛一等奖。这个绘图程序也很受同学们的喜欢,最夸张时,机房十几台电脑中有一半以上都在运行着他的程序。

后来,他把这组字库给了在电子一条街打拼的师兄,“他有没有拿去卖我不清楚,但这个东西还是挺值钱的。”

《绘星》用来编辑图片、图形,能兼容很多绘图软件的东西,还是很超前。崔宝秋用了很多办法,满足了新需求。

成功完成计算机自动作曲项目

痴迷编程的崔宝秋,在学校过着“宿舍——教室——机房”三点一线的生活,并享受其中。

在诸多老师中,崔宝秋很喜欢教信息安全的张焕国老师,他是北方人,和蔼可亲、又高又帅。张老师经常和学生聊软件加解密、防病毒等有趣的话题,崔宝秋很爱和他交流。

小米不同成长阶段的策略(崔宝秋国际开源经验在小米开花)(2)

崔宝秋(右一)及同学与张焕国老师(居中)的合影

张老师也很惜才,在崔宝秋毕业前跟他说:“你的本科论文可以做一个计算机自动作曲项目,很有意思。武汉音乐学院作曲系的一位研究生在做这方面的论文,你们可以合作完成。”“那边的计算机是苹果系统,上面全是图形,你可以去看看。”

崔宝秋好奇地去了武汉音乐学院,见到苹果的Macintosh计算机,上面不仅有图形、图像,还可以播放音乐,他深受吸引,不懂音乐,更不懂五线谱,可为了这个这项目,崔宝秋开始学习掌握五线谱。

武汉音乐学院的研究生哥哥很有文艺范儿,才气过人,“他听一遍曲子就能记住并弹出来。”研究生哥哥在计算机方面的知识需要崔宝秋帮他提升,崔宝秋耐心地教他if—then—else指令,两人一起推进项目研究。

崔宝秋想,依托软件来作曲,怎么产生曲子数据文件呢?他又想到了逆向工程。

他用最短路径破解了苹果电脑上音乐软件的乐曲编码,知道了五线谱音乐是如何存放的,“这样我就可以写东西了”,“给我两小节五线谱,讨论各种逻辑算法后,就可以自动产生若干节音乐。”让旋律不断重复,而且能有些规律性的变化。

崔宝秋根据编码数据生成音乐格式,开始演奏,电脑连接着MIDI设备,叮叮当当的音乐声就出来了,研究生哥哥兴奋得不得了。这对崔宝秋来说只是一个基本程序,可在他看来却是作曲领域的一个很大的创新。他们要模拟不同风格的曲子,经过两人的钻研探索,圆满完成研究任务。

1991年,崔宝秋被保送读本校的研究生,师从黄俊杰和张焕国两位老师,研究计算机安全和公开密钥密码体制。

中科院计算所短暂读博

电子邮件和Mosaic浏览器让崔宝秋兴奋不已。

崔宝秋本考虑研究生毕业后直接出国留学,可研二的暑期发现GRE考试准备晚了,来不及申请,只好暂时放弃。

此时他们做的加密软件在加密卡上用得很广,崔宝秋要经常跑武汉三镇推销加密卡,酷暑难耐,而舍友在考博,经常泡图书馆,他很羡慕,就跟张老师说自己也想读博,张老师建议他报考中科院计算所,师从魏道政老师,并帮他写了推荐信。魏老师对崔宝秋的硕士研究内容以及曾经获得过全国挑战杯一等奖的经历非常感兴趣,很快就答应收他读博,还全免了博士入学考试。

1994年研究生毕业,崔宝秋开始了在计算所的博士生涯。

1994年,中科院计算所,崔宝秋突然发现以前去图书馆查国外大学的资料、寄航空信来申请学校等方式,现在都可以用浏览器和电子邮件来完成了。计算所有工作站,有UNIX机器,“我每天早上最兴奋的就是先到机房,输入用户名和口令,打开电子邮箱看邮件。”

崔宝秋还经常用Mosaic浏览器看美国大学排名和教师简介,在互联网上查询各种留学信息。Unix工作站上的Mosaic已经能高速访问非常多信息,比单色显示器的PC机先进很多。他很兴奋,“图形界面太好玩了,传递的信息极其丰富,真是太舒服了!”

痴迷于开源的GNU Emacs

“这里有太多先进的东西,得赶快学起来。”

在计算所学习期间,崔宝秋一直放不下留学的事,就跟魏老师说:“我还是想出国。”魏老师的儿子跟他碰巧是同龄人,在美国读书,所以魏老师非常理解和支持崔宝秋的想法,就批准了。

经过一番细心地准备和努力,崔宝秋收到了几所美国大学的全额奖学金,权衡之后,他选择了纽约州立大学石溪分校(现石溪大学),“计算机专业在美国排名不错,关键是杨振宁教授在这里任教,我们都很熟悉这所学校。”

小米不同成长阶段的策略(崔宝秋国际开源经验在小米开花)(3)

在美国读博时期的崔宝秋

留美前的崔宝秋常去计算所篮球场跟同学打球,休息时,喝冰镇粒粒橙和可乐解暑,他说:“得好好享受一下,到美国就没机会喝这么爽的可乐了。”

等到了美国发现,可乐到处都是,吃饭都喝橙汁,物质上的差距还是挺明显的。计算机水平跟国内更有着天壤之别。

这一年系里共招了两位中国留学生,崔宝秋拿的助教(TA)奖学金,做操作系统这门课的助教,授课老师是 Eugene Stark教授,号称MIT神童,也是FreeBSD的贡献者,“据说20多岁就从MIT拿到计算机博士学位,一直在这里任教。”

操作系统这门课和本科时的内容很不一样,课本厚了很多,且上来就是让学生们分组,用FreeBSD、CVS和GNU Emacs编辑器,真刀真枪地干一个操作系统项目。

Stark教授对学生要求非常高,要求他们分组合作完成作业项目,同时也要求两个助教写程序自动批改学生的作业。这让崔宝秋有点傻眼,要学很多新东西,Unix接触得也少,幸好一个俄罗斯助教会写Unix脚本,完成了批改作业的程序。虽不是很复杂的操作,却让崔宝秋有种井底之蛙的感觉。

“专业课方面没什么压力,很容易拿到A,主要在语言和沟通上,我得赶快适应英语口语。”

教授让学生都用GNU Emacs做家庭作业和OS项目,崔宝秋很快被开源的GNU Emacs深深吸引。他在这里最先接触了GNU,也很喜欢里面的GCC 和GDB。

开源的代码量非常大,里面有操作系统内核、编译器、数据库、网络、图形等各方面的资源共享,还有免费的经典教材可以看。

“相比之下,国内的计算机教育和软件资源太封闭了”,崔宝秋就像个穷苦的孩子,突然搬进一个辉煌的宫殿,所有东西都有源代码,代码质量也非常高,有了这些,他再也不用去做各种逆向工程了。他感到幸福而富有,在里面读大量的优质代码,“这些代码水平远超一般人。”

本科时,他曾用图形方法做的编译器运行界面惊艳了大学同学,“但我们没有真正去实现一个可生成代码的编译器,像GNU里面的GCC这种真正完整的C/C 语言的编译器,还有GDB这种调试器等代码都可以免费学。”

五年的博士生涯走得很顺利,崔宝秋的博士论文研究了当时的人工智能领域的一个方面,主题叫A System for Tabled Constraint Logic Programming(《列表的约束逻辑程序设计系统》),他的研究成果也都用开源代码的形式集成到了他们实验室开源的增强版Prolog系统里,名字叫XSB。

读博的五年中,崔宝秋花在XSB上的时间有足足四年,其中近两年他都是这个系统的主力维护者之一。

XSB是一个基于GPL许可证的自由软件,崔宝秋的导师和师兄弟们是主要的贡献者,还有不少贡献者来自世界其他几所大学。XSB的重要用户有200多家企业和高校,也分布在不同国家。

如何与世界各地的贡献者一起开发这个开源项目,如何满足来自世界各地的用户需求,是崔宝秋和师兄弟们经常讨论的话题。四年的XSB开发经验让崔宝秋直观、深度地感受到了开源的魅力,更让他获得了一些和社区共同打造一个开源项目的第一手经验。

成为Emacs贡献者后收到1美元

Emacs社区里面流传着这样一句话——如果你教一个人使用一个新的Emacs命令,他就可以hack一晚上;如果你教他如何制作新的Emacs命令,他就能hack一辈子。

哒哒哒,崔宝秋在一旁看着Stark教授,像弹琴一样在Emacs上写程序,各种语法、颜色,热键切换窗口,用shell脚本语言打命令,还能快速修改。粗大的双手,在Emacs的窗口上如弹钢琴一般顺滑地串起那些小动作,一下子激起了崔宝秋对Emacs的兴趣。

“这个编辑器很酷炫啊,从来没见过。”

崔宝秋评价自己“喜欢跟着水平高的人做事,也爱学习高手用的工具。”他对技术极客有一种倾慕之情。20世纪90年代,Stark教授就在家里用电脑跟学生远程对话、开会,这种行为在崔宝秋看来是一种极客,而实现这一切的工具离不开开源的FreeBSD。

“以前在中科院计算所接触过Vi(即后来的Vim),但是和Emacs比起来差太多。”其实一直存在两派观点,支持Emacs的人认为,可以在Emacs里面完成所有事情,不像Vim还要找一个又一个插件;Emacs是Elisp(Lisp的一个变种)的解释器,Lisp也是人工智能研究中最受欢迎的编程语言;Emacs是适合硬核程序员的编辑器,最像操作系统的编辑器。支持Vim的则认为,Vim在各个服务器上是默认安装的。

“Emacs是开源的,里面所有的东西,包括Elisp语言都是最自由的,任何东西都可以改。最重要的是,我身边很多优秀的计算机科学家和编程高手都在用Emacs。”崔宝秋承认自己被自由的力量折服,被榜样牵引。

用Emacs不仅能写程序、调试程序,还能管理日历、读邮件、读新闻组、跟朋友聊天、玩游戏、浏览网页,甚至还能绘画,崔宝秋被Stark教授影响后快速就沉浸在Emacs里。

“Emacs功能太强,只有想不到,没有做不到。”崔宝秋不停地改写程序,他爱上了这种高效率的体验,中间遇到问题,就去读源代码,到社区里去查找、询问,慢慢对如何融入开源社区有了更多直接经验。但早期他更多地是秉持着拿来就用的原则,有些代码的改动没有及时回馈到社区,在下一次版本升级中就被冲掉了,他不得不再返工、重做一遍。这件小事,让他真切地感受到“回馈社区”的重要性,以及和开源巨人一起成长的重要性。不和开源巨人一起成长往往会加大软件的维护成本。

2009年崔宝秋在雅虎上班,闲暇时就会沉浸在Emacs的世界里写代码。他发现了一个需求,Emacs Org Mode缺少DocBook格式的导出,这种导出是他在IBM工作时经常用到的。这个需求很广,他开始在源代码上下功夫,进行了优化,并把整齐的代码交给了社区。这让崔宝秋的代码最终进入到GNU里。Richard Stallman接受了这位中国程序员的代码,还象征性地付给了他1美元。

在IBM用开源,差点惹麻烦

“我们这代人就是想给别人创造价值”,当年写的《绘星》就是免费给大家用的。

博士临近毕业,崔宝秋最理想的工作是去Research Lab(研究实验室),可自己博士论文方向的研究比较窄的,AI也不火,“当时,我们这个领域的师兄弟们都不会主动说自己是做AI的或者专家系统的,现在回头来看,当时的AI已经进入寒冬。”最终,他去了IBM,IBM正要组建一个新一代数据库技术的研究团队,需要一些博士,可崔宝秋加入不久后这个新的团队就被调整,被要求深度参与产品开发,崔宝秋开始负责 DB2 数据库优化和内核等核心模块的研发。

2000年,IBM公司,“万一自由软件传染了DB2的代码……”部门研发主管非常担心,要公司的律师来评估风险,崔宝秋没想到,就因为用了自由软件写文档,他差点惹上麻烦。

DB2主要应用于大型应用系统,是一套关系型数据管理系统。崔宝秋进入IBM的DB2团队,做查询优化。这是一项要求很高的工作,他以博士的学术背景得以进入。

一直醉心于自由软件带来的便利性,崔宝秋很快革新了一些“老掉牙”的东西,干了些份外的活儿。

文字处理的命令行被他创造的新文档写作工具取代了。那些传统的,一摞一摞的测试文档、设计文档,只要经过崔宝秋设计的写作工具导出,都可以直接转换成O’Reilly的 DocBook模式,变成一本本图文并茂的书。

这种创新之举用到了一系列开源工具,包括Emacs,形成了一个开源的文档写作工具集,功能很强大,但很快引起了部门主管的警觉,建议公司的律师来看看,评估一下开源软件的许可证会不会影响DB2这个商用软件。

崔宝秋回答:“不会,我们只是用来写文档。”

按照奠基人Thomas Watson Sr.的设想,IBM是企业办公设备的核心提供商。可在千禧年到来之时,有些部门还是不太理解开源软件,而显得不知所措。

在这里,崔宝秋因为技术能力出色,晋升为管理者。他可以用Emacs完成工作中的大部分任务,包括团队管理和技术研发,在这期间也见证了Git的诞生。可他切身地感受到,在IBM用开源是一种包袱,“我喜欢开源的技术,喜欢互联网的技术,做这种传统的数据库,越来越没意思。”

2005年,他有了一种压力,觉得身在硅谷,如果不去互联网公司,就太可惜了。一年后,一个偶然的机会,他离开IBM加入了雅虎。

见证Hadoop在雅虎长大

一切来得太快了,围绕在三个明星公司之间的搜索大战,尚未战鼓喧天,就已经有了结局。做门户网站起家的雅虎,手握流量密码,却未能在搜索竞争中通关,惯于复盘的崔宝秋指出——输在了技术投入。

2006年,从IBM跳槽到雅虎,崔宝秋摩拳擦掌,准备大干一场。

雅虎已深度拥抱了自由软件,成立了开源项目Hadoop,搜索引擎技术也是崔宝秋非常喜欢的领域,加入雅虎让他有了如鱼得水的感觉,在开源的利用上更加自如。

Hadoop框架最核心的设计为HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

遗憾的是,雅虎已经慢了一步。

谷歌储备了大量科学家,专门从事研究工作,从来不涉及产品也没关系。这样的文化吸引着更多工程师,更多人才的加入,反哺着谷歌的工程师文化。当三篇论文出现在世人面前,雅虎的所有行为都必然成为“刻舟求剑”。

谷歌的三篇论文描述了GFS、BigTable、MapReduce三种技术,奠定了二十年后的技术热词——云原生、云计算和大数据,定位于技术公司,谷歌毫不掩饰地向同行输出最新概念。

而微软的Bing,则从另一维度上异军突起。2010年1月,微软宣布要收购雅虎的搜索业务。

当微软团队来接管雅虎搜索团队时,崔宝秋有种感觉:就像一个三十几岁的壮汉,向一个十二岁的男孩跪倒在地。这场轰动一时的收购落地,雅虎每个模块都派出了交接人员,作为搜索团队的代表之一,崔宝秋并不情愿地参与了其中。

搜索,是所有互联网产品中最考验技术能力的。回想当初加入雅虎搜索团队时的激动,崔宝秋有些失落地徘徊在自己的办公桌前。这些漂亮的代码,完善的压力测试,上线前的各种测试,都是团队一行一行敲出来的。为了周末多些时间看代码,他甚至戒掉了周末打篮球的习惯。

时间回到2007年,硅谷DoubleTree酒店,金山即将赴港上市,雷军在美路演,在这期间,与崔宝秋进行了彻夜长谈。“宝秋,你将来想干吗?”雷军突然问他。

崔宝秋没多想:“退休以后最想静下心来写自由软件……”

于他而言,写自由软件和开源软件,都有机会让自己写的代码跑在每个人的电脑上,尤其是在雅虎见证了Hadoop的成长之后。

Hadoop的诞生受到谷歌三篇论文的影响,在雅虎开花并得到广大用户的喜爱。让崔宝秋感到可惜的是,他自己在雅虎工作时所写的热点搜索缓存方面的代码本来是计划开源的,却因为搜索业务被收购而搁浅。

LinkedIn开源风正劲

LinkedIn纯粹的开源文化,孕育了多个开源产品。

2010年,带着未能开源热点搜索缓存技术的遗憾,崔宝秋离开了雅虎,加入了LinkedIn。

用户数即将突破1亿大关的LinkedIn,遇到一个棘手的技术难题:全量用户的二度关系算不出来。集群资源有限,公司算力也有限,在这种情况下,用户二度关系算了24小时仍然算不出来,计算任务不得不中断,没人知道算完所有用户的二度关系到底需要多少时间。

这是崔宝秋第一次用Hadoop来处理一个超大计算量的任务,让他觉得用MapReduce来解决一些问题不仅是一门技术,也需要一些艺术。最终,他通过各种算法优化、参数调整、GC(垃圾回收)的精益求精,把二度关系跑出来了,并且不断地压缩时间,从接近24小时,到12小时,再到8小时,最后优化到了不到4小时。

用Hadoop解决这个大规模分布式计算的难题,给了崔宝秋久违的成就感,更让他又一次感受到开源的魅力与强大。

基于雅虎时期的大搜索经验,崔宝秋在LinkedIn做起内容搜索比较轻松。在LinkedIn开放的开源氛围中,他还和团队一起推出了开源搜索系统SenseiDB。

“不是Baoqiu Query Language,是Browsing Query Language。”崔宝秋急忙解释。他利用一个周末的时间,用Python写出来的类SQL浏览查询语言 BQL原型,可以用类SQL语言进行查询、聚合、排序等搜索操作,让团队的小伙伴们非常兴奋。当崔宝秋加入小米后,SenseiDB和BQL也很快就直接用到了小米的业务中。

成长于LinkedIn的开源项目中,最受瞩目的Kafka,是为把LinkedIn社交网站和内部各业务系统中的数据存储整合到一个系统时建的项目。2021年,Kafka商业化公司Confluent独立上市。

在硅谷,人人为我,我为人人,已经成为一种普遍现象。“Facebook有些人在为Hadoop做贡献,LinkedIn的Kafka,Voldemort和Azkaban都是开源的。”

LinkedIn的纯粹开源文化吸引着崔宝秋。Kafka也好,SenseiDB也好,随着开源项目的状大,越来越多公司会参与进来,LinkedIn会让所有外部参与者都尽量把版权交给LinkedIn,为的是未来更容易地把这些代码干干净净地捐给Apache基金会。

从2010年到2012年,这种方式影响着崔宝秋,坚信开源无国界的他,从此有了一个念头——这样纯粹的开源,若能影响更多的中国工程师就好了。

打造小米“HBase黄埔军校”

不仅要站在巨人的肩膀上,还要为巨人指方向。

2012年,北京小米总部,崔宝秋从零开始组建小米的HBase团队,召集几位工程师,给予充分自由的时间和空间,在HBase社区里读代码,参与社区讨论,主动认领社区“任务”:解答社区问题,在代码中作自己力所能及的贡献。出发点很简单:在社区时间够长,才会足够了解其架构,代码质量也自然会提高,同时在社区也能“混个脸熟”,便于未来更快地融入社区、回馈社区。

HBase是一套基于Hadoop的分布式、可伸缩、面向列的非关系型数据库,是全球最大的开源项目之一,也是崔宝秋在硅谷工作时就一直关注的项目。

他首先向团队明确自己的想法:小米作为互联网公司需要什么服务、小米生态是什么样子、HBase将如何作用于各个业务线,而后又找朋友引荐了HBase当时的项目管理委员会主席Michael Stack,同后者分享自己的计划,崔宝秋坦承讲述自己对开源的认知、奉献的意愿、投入的决心:“小米对HBase的贡献绝不是一两个人,也不会是昙花一现,而是长期的战略。”

2014年,崔宝秋带着谢良、冯宏华两位工程师第一次去硅谷参加HBaseCon大会——此时,谢良刚刚成为小米在HBase的第一位Committer。驾车行驶在101公路上,崔宝秋不忘回头和他们调侃:“做了Committer,以后你们在社区有名了,其他公司可能要用高薪来挖你们了。”

小米不同成长阶段的策略(崔宝秋国际开源经验在小米开花)(4)

2014 年,崔宝秋与谢良、冯宏华在 HBaseCon,一起与 Michael Stack 合影

在重大项目上极力推出自己的Committer,是崔宝秋制定的开源战略,主要目的是要赢得一定的话语权、让团队更好地融入并回馈社区,即使这些Committer被竞争对手挖走崔宝秋也不焦虑:“人才是水库,流水不腐。”继续坚持开源的打法,维持好的技术氛围,给团队成长空间,他相信会有更多的工程师源源不断地加入小米。如果小米能成为中国开源界的黄埔军校,他也乐见其成。

2012年,崔宝秋就在小米正式明确了“不仅要站在巨人的肩膀上,还要为巨人指方向”的开源理念,推动着小米开源了一个又一个开源项目:2013年,在Hadoop基础上推出自动化监控部署系统Minos;2017年,开源支持BQL的搜索系统Linden,同年又开源用C 实现的分布式存储系统Pegasus;2018年,开源移动端深度学习框架MACE……

2018年,小米贡献了HBase社区接近1/4的补丁。从2013年12月在HBase有了第一位Committer,小米已培养出了9名Committer,包括三位PMC成员。2019年,小米工程师张铎被 Apache 软件基金会任命为 HBase 项目主席。一切在按照崔宝秋的最初计划一步步实现,甚至慢慢超出设想。

用开源平衡中美差距

崔宝秋把一套坚实的互联网底层基础设施带给小米,“咱吃过猪肉,看过猪跑。”他深知硅谷的企业如何重视开源与大数据。

2012年,崔宝秋决定把他负责的米聊服务器团队正式更名为“小米云平台”,“这个平台必须支持未来小米所有的业务,它是底座。”2016年,小米云平台升级为“人工智能与云平台”。AlphaGo战胜李世石,自称“老AI人”的崔宝秋对团队说:“咱们云平台的春天到了。”

崔宝秋把硅谷的技术氛围、开源文化、互联网技术积累和团队布局方法,结合国内的最佳实践慢慢移植进中国的土壤,陪伴着小米从C(云计算)到B(大数据)到A(人工智能)的技术路线升级。

在这个路线中,深度、全面地拥抱开源。他带着小米工程师们做了很多打通数据孤岛、制定开源战略的事情,并鼓励工程师努力回馈开源社区,也让开源成了小米工程文化的一个重要组成部分。

2017年,北京小爱同学庆功会上,崔宝秋难掩激动:“我们团队的研发力量今非昔比。”他提出所有小米人工智能与云平台的工程师,甚至集团的一些研发力量,都要来呵护小爱同学、支持小爱同学团队。

“开源的真正精神应该是利他主义和长期主义,过去这在中国的土壤是有些欠缺的,然而开源这个模式,让我们的云计算、大数据、AI技术,通过开源这个连通器,平衡了和美国之间的差距。”崔宝秋迫切地想让社会各阶层的人和各种企业都能真正吃透开源,让开源成为中国提升国力的东西。

主导开源战略,引入NuttX,赢得Daniel Povey

坚持开源,让小米的开源之路越走越宽。

2019年10月12日,北京,崔宝秋正与实时操作系统NuttX的创造者 Gregory Nutt探讨着NuttX和小米生态深度融合的方式与空间,近两个小时后,积极声音传出,双方达成共识,从此,开启了Xiaomi Vela的诞生之路。

小米不同成长阶段的策略(崔宝秋国际开源经验在小米开花)(5)

2019 年,Gregory Nutt(居中)拜访小米,与崔宝秋一起进行了深入的交流

崔宝秋认为,在小米的生态版图中,越来越需要加大投入构建开源的物联网操作系统,而拥有一个成熟的实时操作系统是实现这个目标的关键。NuttX系统功能丰富、性能稳定、商业成熟度高,其主要管理标准又遵循POSIX和ANSI标准,所以NuttX是小米的不二之选。

他把NuttX系统与小米现有的硬件生态基础结合,未来所创造出广阔的AIoT生态讲给Gregory Nutt,同时小米也会秉承纯粹的开源理念,努力推动NuttX进入Apache基金会。坦诚交流之后,双方一拍即合,小米的第一个物联网软件平台开始萌芽。

无独有偶,重要事件总是接连到来。

2019年10月,前约翰·霍普金斯大学教授、语音识别开源工具Kaldi之父Daniel Povey,在个人推特上宣布,他年底将来中国工作,这是一个重要消息。

6月,Daniel在霍普金斯大学因被动介入学生抗议活动,被校方解雇。随后,他的动向就一直受到学界和业界关注。

中国的顶尖高校和互联网头部公司蜂拥而上,希望把Daniel招致麾下,以小爱同学作为AIoT战略核心的小米也在积极争取中。

崔宝秋要求人力资源团队和语音团队:“竭尽全力把Daniel吸引过来”,至少也要让他成为小米的技术顾问。

崔宝秋亲自统筹了负责接洽的人力资源团队,并直接与Daniel的中国猎头Joy沟通,希望通过Joy传达小米的能力与诚意。“和中国公司一起打造健康的社区,走向世界。”这是崔宝秋一直向Daniel重点表达的开源愿景。

崔宝秋和Daniel之前有过简单的邮件沟通,在收到小米的基础信息并感受到其诚意后,Daniel便主动提出希望通过电话更深入地讨论。8月下旬,崔宝秋第一次拨通西雅图的电话。

在这通午夜电话里,崔宝秋向Daniel介绍了小米,更主要的是自己从2012年加入小米后就一直力推的开源战略,听到Daniel下月将在中国停留两个星期的计划后,崔宝秋马上向其发出参观小米公司的邀请。

来京第二天,Daniel突然更改行程,要先来西二旗小米新园区看看,小米集团技术委员会给予了最高规格的接待:崔宝秋和技术委员会成员依次向Daniel介绍了小米的“手机 AIoT”双引擎战略和生态、公司的开源工程、AI实验室、以小爱同学为中心的语音技术。

Daniel还仔细看了小米的工作环境,包括编程环境,GPU使用率的高低等。他的到访给了崔宝秋更多信心。不过,随后几天,Daniel又在上海、深圳陆续拜访了多个高校和互联网企业,这又给志在必得的崔宝秋增加了些不确定性。

Joy告诉崔宝秋,Daniel对高校工作更感兴趣,崔宝秋听后有些灰心,但仍尽力争取机会,他立即通过Joy给Daniel发去自己过去几年对外讲过的3份有关小米开源的英文PPT和3篇外媒报道,告诉Daniel,小米希望和他一起把中国的开源力量推向世界。

9月11日,崔宝秋觉得时机有些成熟了,就给Daniel直接打去了电话,意料之外的是,电话接通没几分钟,Daniel便告知,小米已是自己的首选(top choice)。

国内高校的做事程序相对繁琐,互联网公司对优秀工程师明显有着更强的吸引力,而这之中小米在开源上的努力和成绩又尤为突出,更重要的是,管理小米工程师团队又一直把开源作为战略核心的崔宝秋,对公司的开源策略和技术布局有直接决策权,可为Daniel提供更有力的工作支持。

Daniel想要崔宝秋保证Kaldi系统百分之百开源,崔宝秋说:“这条要求对我来说根本不是个问题。”

接下来几天,Daniel在以色列、欧洲辗转时,小米向Daniel发出了Offer——Offer最后的修改仍由崔宝秋直接参与。

11月18日,Daniel正式加入小米。

小米不同成长阶段的策略(崔宝秋国际开源经验在小米开花)(6)

崔宝秋成功吸引到 Daniel 的加入,一起于小米大厦前合影留念

开源战略不仅是为小米赢得Daniel的重要砝码之一,也是崔宝秋加入小米之初力推的战略。“我们要感谢开源,认可开源。”他不断向外发出声音,并成为中国技术领域一位重要的开源推动者。

采访:刘韧

作者:谷磊 周扬

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页