直接向“Linux之父”提交补丁的老神仙,加入了华为!

直接向“Linux之父”提交补丁的老神仙,来了华为!


看Linux内核“老神仙”如何推动openEuler生态起飞


前言

随着业务的发展,华为已经开始进入到围绕计算产业构建全方位生态的战略阶段。2019年12月31日,openEuler正式开源,华为将和行业伙伴一起共同构筑计算产业的底座。

openEuler是基于Linux内核,面向企业级用户,针对数字基础设施的开源操作系统,开源至今已经发布六个版本,商业使用突破300万套。openEuler的快速发展离不开社区开发者的辛勤付出,这其中,有一位来自华为的全中国Top级Linux内核开发者——openEuler技术专家吴峰光。吴峰光毕业于中国科学技术大学,现在是openEuler社区技术委员会委员,同时也在负责华为开源软件测试系统Compass-CI、EulerMaker项目。


当得知吴峰光专家接受了我的访谈邀请时,我非常激动,这意味着我即将可以深入了解这位被业界称为Linux内核守护者的“老神仙”的故事了。

01


为打造中国自研的Linux操作系统,我来了

吴峰光有个绰号叫“老神仙”,这是他的同学们给取的,形容他不食人间烟火、心中自有丘壑的超脱个性。现实中的吴峰光的确就像老神仙一般质朴谦和,谈吐儒雅,一聊起技术,眼神中依旧是赤子般的痴迷。

“记不清从什么时候开始,我对计算机特别着迷,高中在杭州的一家书店里,翻到谭浩强的《C语言程序设计》,如获至宝,买回去看了一周,基本掌握了C语言的要点,于是那个暑假什么也没干,就一直在研究计算机。我们高中有个机房,我们在那里上编程课,当时发现学校里计算机老师开发的成绩统计系统要跑老半天,我就想了一个优化算法,百倍地加快了统计速度。老师很开心,还破例给我配了把机房的钥匙。”


“1998年,大学期间我接触了Linux系统,它给我展现了一个全新的、广阔的、激动人心的世界,值得深潜。一有机会我就在Linux下看文档、做实践,我沉浸在喜悦中,很多原本遥远和神秘的技术,现在唾手可得,学了之后终身受用,非常有价值。”



从2005年第一次为Linux内核社区做贡献开始至今,吴峰光投身于开源领域已经17年。作为核心的内核代码贡献者,他有独立维护的代码树,可以直接向“Linux之父”Linus Torvalds提交patch(补丁),常年受邀参加Kernel Summit峰会。在庞大的Linux开发者社区里,能达到这几点的,全球范围内不过百人。


2012年,他不仅受到广大Linux内核开发者的赞誉,还获得Linus Torvalds本人的好评。他建设的0day/LKP (Linux Kernel Performance Linux内核性能)测试系统为 Linux 社区提供即时测试和全自动bisect(有序序列的插入和查找)服务,其净化了内核研发流程,降低了新发布内核的编译与启动错误、性能回归等问题。经过三年持续不断的高强度的改进,0day/LKP在全球得到广泛应用,获得了极大成功。


“Linux之父”Linus Torvalds与吴峰光合影


那段时间,每天都有人发邮件感谢吴峰光,甚至在Kernel Summit峰会上,开发者们集体为他鼓掌。吴峰光回忆道:“那是我参加Kernel Summit以来从未遇到过的事,以前也没有这样的事。”


来华为之前,吴峰光已经做了11年的Linux内核开发。“为什么会选择加入华为?”他说:“操作系统是鲲鹏生态系统的基石。2019年开始,自研芯片和自研操作系统逐渐被大家重视,这也将成为中国未来的研发趋势。我正好在操作系统方面具备全栈的能力,理应投身于这样一个任务,责无旁贷。中国已经累积了大量开源开发者,华为在内核上也已投入多年,我相信在这里我能找到更多志同道合的人,一起完成一个真正根植于中国、引领全球的操作系统。”


所以,他来了。2020年,吴峰光进入华为鲲鹏计算,加入了openEuler操作系统团队。

02


一招“乾坤大挪移”改变困局


每一个新生的操作系统都面临着巨大的生态适配问题。


生态强者恒强,后来者很难扭转局面。如无有效措施弥补短板、跨越鸿沟,这将是横亘在我们面前的艰难困局。


刚进入华为时,吴峰光发现整个部门都在研究一个重大课题:如何提升鲲鹏芯片的软件生态满足度?所谓生态满足度,就是各场景客户的全栈软件在鲲鹏服务器上有多少比例能够跑好。比例越高,生态满足度就越好,鲲鹏的市场空间上限就越大。这涉及两大类软件:商业软件和开源软件。商业软件数量相对有限,可以找对应的商业公司针对性适配认证;而开源软件千千万万,开发者数量众多且分布在全球各地,一个一个找他们优化不现实;即使能找到并愿意配合,时间和人力成本都受不了,需要探索全然不同的解法。


如何打破困局?吴峰光针对这个问题展开思考。


x86和ARM是两种不同的硬件架构,x86在服务器领域占领了主流地位,而ARM作为后起之秀处于快速追赶阶段,鲲鹏计算产品便是基于ARM架构研发的。一直以来,千千万万的开源软件开发者们主要依赖用户“踩坑”来发现问题,而绝大部分用户都在使用x86。有平台虽然提供了一些测试服务,但往往只支持x86。于是,新代码天然在x86上打磨良好,广大开发者和用户众星捧月般为x86生态添砖加瓦,生态强者恒强,后来者难以发展生态,举步维艰。那么,如果针对新的芯片,提供一个基础软件的质量与性能保障的自动化平台,让机器人去“踩坑”海量上游软件,推动上游社区优化,是否能够突破这个生态黑障?


吴峰光发起并主导了Compass-CI,这是一个通用全栈软件测试平台,它能主动测试数以万计的开源软件,暴露这些软件在芯片和操作系统上的问题,在第一时间自动定位问题并以报告的形式反馈给第三方软件开发者,方便第三方开发者能及时处理掉问题,保障软件质量。


“现在社区中的开发者们对自己的软件在鲲鹏服务器上跑得怎么样关注度还不高,他们更大的精力投在了x86上。如果是在传统的开源社区开发模式当中,这个问题几乎无解。而Compass-CI另辟蹊径,开发者在无感知情况下,会有一个来自华为的机器人帮他们测试自己的项目并准确定位bug。”


要让机器人测试数以万计的开源软件并不容易,需要在技术上找到通用的方法。如何找呢?


吴峰光有一个解决问题的习惯,这也是Linux倡导的一个方式:无论遇到怎样五花八门的待解决的问题,统统都先装进脑子里,时不时加以关照,就好像母鸡肚子里总有大大小小的蛋在孕育,一旦时机成熟,解法就蹦出来了。


于是,吴峰光跟往常一样把这个问题装进了脑子里,每天早晨8点健步走,从家走到公司40分钟,这一路上他全惦记着破解这个谜题了。念念不忘必有回响,也许机会正是留给有心之人的,有一天,他忽然灵光一闪想起了一种打包脚本——“说不定可以作为突破口!”


这要提到吴峰光很早之前使用过的Arch Linux了,它是一款相对小众的Linux发行版,很多人并不知道它。在操作系统领域深耕多年的吴峰光,对于各种系统特点早已是如数家珍、谙熟于胸,因此他知道Arch Linux的编译方式比较特别,一个个简单的shell脚本就可以对一个个上游软件做下载打包,具有简单、易定制、紧跟上游滚动更新的特点,而且它覆盖的上游软件数以万计,这些都与他想构建的测试生态系统的需求非常契合,其中必有共通之道。吴峰光一下子来了思路,如果取其珠玉,把它们批量包装一下,将原有的打包功能转化为编译测试功能,或许Compass-CI也可以实现对上游软件的构建及make check测试的自动化。


通过自己多年沉淀的丰富经验和充分的调研,新需求和老技术的共同特点的“任督二脉”被打通,这群打包脚本经过吴峰光的“改造”后,顺利成为了Compass-CI的重要组成部分。“业界从来没人做过这个事,甚至完全没想过这种可能性。它是一种‘乾坤大挪移’式的创新。”老技术重新焕发出新的生命力,困局迎刃而解!


2021年openEuler Summit 沙箱演示现场


如今,Compass-CI可为开发者提供全栈式的测试解决方案,具备人机协同、自动定位性能瓶颈点、自动定位bug引入点、远程云调测以及结果分析等特性。开发者在调试时,Compass-CI会帮助开发者部署测试环境,系统内部包含了非常复杂的程序,而开发者仅需输入一行命令符即可;就连Git bisect(代码定位)的过程,也只需一行命令符,就能够让机器去干活,节省大量烧脑的工作,轻松调试。


“Compass-CI会把简单给到开发者,把复杂留给自己。”吴峰光语气中透着欣喜,“面对社区成千上万,甚至几十万上百万的软件,Compass-CI都可以进行覆盖,为鲲鹏服务器生态软件质量的规模提升与发现定位bug、效率方面带来跨时代的飞跃。用测试撬动生态,对计算产业来说,这具有极大的价值。”



03


构建面向未来的操作系统


经过三年发展,openEuler逐渐繁荣,社区已有上万名开源贡献者,维护的核心软件包数量已达到万级。随着openEuler进入政府、运营商、金融、能源、交通、互联网等千行百业,我们的定位也随之升级:不仅仅是服务器操作系统,更是支撑国计民生、面向数字基础设施的全场景操作系统。于是,新的技术挑战出现在我们面前:openEuler如何面向全场景,实现从服务器到嵌入式广泛场景的统一构建,按需定制。这就是统一构建系统EulerMaker诞生的契机。


在过去,Linux主流发行版还没能出现统一的全场景OS,要么是服务器OS(如Redhat/Debian),要么是嵌入式OS(如WindRiver),各Linux发行版烟囱林立,生态是割裂的、内耗的。而我们的蓝图,是一套OS源代码,分层定制适配各种设备和场景,共享数字基础设施生态。


吴峰光把“One OS for all Equipment”设立为自己的下一个工作目标。他认为,做 OS的基础是搭建好一个生产软件包的流水线。作为行业标杆,Redhat(世界领先的企业级开源解决方案供应商)的OS生产线在全球有 6000台服务器,形成分布式开发、构建、测试的庞大体系,保障良好的质量和兼容性。“目前,我们要重新设计我们整个OS的生产流水线,贯穿开发、构建、测试、发布,统一构建、分层定制,适应ICT基座的新定义。”


“我对构建OS这件事一直有冲动,但以前只有一些不太成形的想法。刚开始做openEuler的时候,大家拿现成的开源OBS(开放完整的发行版开发平台)搭建了构建系统,构建一次要等几个小时,反复调试反复等待,每次出版本前总要熬夜,非常辛苦。想在OBS上做改进,但日久艰深的Perl代码库不好梳理。要做统一构建,替换OBS便提上了日程。”吴峰光表示构建系统体系庞大,需求和目标都是模糊的,一开始并不知道从哪里入手,迟迟无法深入。


“还要感谢openEuler开发部部长组织了一场专题研讨,拉着分散在各地的工具部、IT装备部、开源使能部、庞加莱等各部门专家们一起拉到三丫坡,集中开了两周研讨会。因为构建系统是整个社区运作的一个中心,涉及基础设施、工具、开发、测试、运维、发布、运营等方方面面的角色,他们使用系统的不同功能,参与各类流程的不同节点。这样密集地面对面开会,把大家的经验、认知、痛点、愿望都聚合到一起,变成对构建系统运作的完整认知,形成对未来系统需求、设想的完整拼图。”


“这是我第一次真正接触如此庞大的项目运作,每一个环节、每一个流程、每一个技术人员,都被卷入进来,有些人我根本不认识,但大家都激情澎湃、慷慨激昂地提出自己的看法,燃烧着自身的能量,这个画面令我惊叹,至今记忆犹新。这就如同开源社区崇尚的开放交流、共建共享一样,那一刻我仿佛看到了一个具象的开源社区,大家为了同一个目标,没有了距离。”

自从2022年3月的专题研讨EulerMaker,将需求清晰明确,到5月完成设计,吴峰光带着团队便开始了紧锣密鼓的开发。10月,统一构建系统的第一阶段交付,开始在openEuler XX版本上平行试运行。

“现在的构建系统,既能出传统的服务器ISO(光盘镜像文件格式),又能出嵌入式镜像,还能出极致裁剪的容器,统一构建、分层定制的目标初步实现。新的架构和算法,资源利用不再受困于‘滞涨’,不再有一边是大量机器内部空闲、另一边是任务排队堆积的现象;并发度大大提升,增量构建快速迭代,缓解了发release时的加班加点熬夜;环境可以确定性的复现和定位,开发者不再困扰于‘薛定谔’的bug;开发者提交的任务不再在单一队列排队等待一两天,而是可以在一个大的统一资源池里拥有自己的专属队列,小任务享受高优先级,即来即跑,体验大大提升。”

吴峰光自豪地说:“现代化的弹性伸缩架构,即使服务10W级的活跃仓和开发者,也能从容处理。统一构建的工作,我们还在继续耕耘,瞄着领先一代的设计理念,瞄着最好去做,实现人和系统完美协作。”

提高软件质量,用测试撬动“软件+用户”的生态飞轮,终将达到华为与开发者的共赢。

04


是技术专家也是能力教练

回看刚进入华为时,吴峰光所在部门的成立时间不长,人才积累少。启动Compass-CI项目时,从零开始组建团队,如何在大量面试中识别优才成了吴峰光面临的问题

不仅如此,这个项目对人才要求也非常高:既要善于编程,又要熟悉Linux操作系统原理和命令行,还要有做系统的能力和自动化意识,能够解决五花八门的问题。

如何找到、识别出这样的人才呢?常规的面试、笔试难以覆盖这么多的需求,尤其是Linux的实践能力,“行家伸伸手,才知有没有”,只有上手实操,才容易看出动手能力和解决问题的能力。

花了一周时间,吴峰光上线了一个专门考察Linux实操能力的自动化Linux机考系统,让“面试”变得精准而高效。很快,吴峰光从900名候选人中甄别出30位合适的人才,成功组成了最初的Compass-CI团队。

开发启动后,团队技能的培养又是一个难题。团队成员分布在杭州、深圳、西安,难以面对面协作,而Compass-CI又是一个强Linux操作+几十个微服务强协作性的项目。有些成员具备的操作技巧,另一些成员尚未掌握,如何能够让团队成员互相传递经验,互相学习和帮助?

吴峰光在团队中引入并推广Tmux结对编程工具,效果甚至比面对面、手把手协作更高效;为了鼓励团队成员互相帮助,设计了“帮助之星”机制,每人列出几个对自己帮助最多的队友名字,每周打榜、及时激励;同时还设计了“review之星”机制来鼓励成员互相审视检查,该机制特别强化了回馈、交互元素,检测“ok/good/great/!/!!”区别计分,牵引review质量的提升。

“将工作自动化是大幅提高效率的方法,我希望我每一个团队成员都能具备固化手工操作步骤为自动化脚本的能力。”

在吴峰光跟新员工的座谈会上,他整整齐齐准备了14页文档,内容覆盖了他在工作中方方面面的点滴思悟。现场,他分享了自己总结的项目协作方法TCP(测试周期报告)“三次握手”——提需求与任务、提问/复述确认、方案review后执行,甚至连“会前要写好提纲、会中最好边记边讲、会后整理执行”这种小细节也全都想到了,“工作中需要协作,协作就需要靠谱,先靠谱再靠能力”。提到日常复盘,他说,“我们都是知识工作者,读必有得,思必有得,交流碰撞必有得,感悟等同于进步,记录心得就是捡宝,一路经历,一路捡宝,集腋成裘”……

吴峰光在其母校为openEuler布道

既是诲人不倦、倾囊相授的“好导师”,也是严谨认真、简单专注、永怀热忱的“技术大拿”,一路脚踏实地走来,不断朝花夕拾,吴峰光将一点一滴的经历打磨成宝贵财富。


正是有像吴峰光这样的领域专家和万众一心的团队,用三年时间达到了业界标杆十年的积累,我们可以相信, openEuler的生态飞轮正在飞速转动!

展开阅读全文

页面更新:2024-03-03

标签:华为   鲲鹏   开发者   内核   神仙   补丁   操作系统   团队   生态   测试   系统   软件

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top