【华为故事】从“软件发烧友”到组播软件总工

菊厂基地打工仔 2024-08-01 00:08:13

热爱从那时开始

日焕星移几度秋,白发生,回首事,一直在心头。兜兜转转,我在华为已经近八个年头。其间发生了好多的事情,有喜有忧,有眼前一亮之事,有愁云漫布之容。回望这八年,如果问我因何与编程结缘,我想要从大学时说起。

那时,正值计算机学习热潮,我对计算机非常感兴趣,大学便读了计算机专业。上学时,我学习还算努力,总感觉有用不完的精力。做完老师布置的课后题,我还会把老师们推荐的书都“啃”一遍。有些书上带有编程习题,我就顺便用学校的电脑做题,然后再“吃透”。记得那时候,在学校里用电脑得按小时付费,一小时一块钱。一个学期下来,我发现竟然花了近百块。十几年前,这可是一笔不小的支出,加之家里并不是很富裕,我的钱包渐渐开始吃紧。

尽管我很享受在知识的海洋里探索,很沉醉于解决问题的喜悦,但我不得不面临“经费”问题。于是,在研究生期间,我会到学校附近的软件公司“揽活”。我通常会问他们有没有要解决的软件问题,然后我会带着他们的问题回实验室,在实验室的电脑上解决,以此赚取零花钱。印象最深的一次,我接了一个测试数据报表打印问题的需求。当设备卖给不同客户时,测试报表上需要显示的抬头和字段格式都是不同的。因此,每销售一单,卖家就得重新单独编写打印部分的软件代码,非常耗时费力。经过一番思索,我想可以利用课上讲的软件设计模式,来设计一个定制报表打印界面的软件控件。设计出来后,我拿给公司老板测试。他感觉非常满意,大声叫着财务,给拿了2000元钱。那是我挣过最大的一单,也让我体验到利用专业知识和技能赚钱的激动。

硕士毕业后,我入职了一家通信公司。工作9年后,机缘巧合下,我加入了华为南京研究所,成为数通协议开发部的一员 ,开启了我的华为生涯。

关山难越,而今从头越!

刚来华为,我人生地不熟,系统架构、软件代码和开发流程都和原公司截然不同。熟悉工程代码、了解其规范以及开发流程,成为了我首先要越过的高山。因此,我尽力时刻保持“空杯”心态投入工作,认真地学习IPD(集成产品开发)流程,关注从设计、开发到测试的每一步、每个环节,并虚心向周边优秀的同事请教成功经验。

我深知,如果仅关注系统架构而不去触碰代码,那设计出的方案就好比空中楼阁,无法真正落地实现,必定会阻碍项目的进展。因此,为了能尽快投入实际项目设计和开发工作中,我必须花大量的时间阅读核心代码,确保对业务、架构和代码的一致理解。几个星期后,随着我对系统架构和软件代码越来越熟悉,承接项目中重要任务和解决技术难题的信心也越来越足。

那时,A项目的用户上线性能比友商差了一倍以上,部门已投入了多名技术专家来突破这一困局。但由于系统复杂,所涉及的模块多且代码量大,大家研究了几个星期仍无进展。我通过其他同事了解到了该项目,考虑到自己之前有过性能优化相关的成功经验,于是我主动向领导请缨参与到该项目的攻关中。多亏了前几个星期在系统架构和软件代码方面的积累,我在一个星期内成功地定位到性能瓶颈点,并针对问题的根因提出了基于无损压缩技术的解决方案,通过减少通信消息量,提升了端到端的用户的上线性能,使得当期的性能反超竞争对手。

其间,有过彷徨,有过迷茫,对于陌生事物的不确定性,让我不知前路在何方。但当代码真正被交付的那一刻,我竟是如此开心,成就感油然而生。这不禁让我想起了大学时“揽活”的过往,这份熟悉的感觉令我很欣慰。

契机来兮,兵戎相见

大约在2018年,随着数据通信产品线的业务发展,南京着手创建组播团队。我主动请缨,希望能通过在技术上承担更多的责任,为团队贡献一份力量。

组播又称多目标广播,与传统的单播和广播方式相比,组播解决了单播情况下数据的重复拷贝及带宽的重复占用,也解决了广播方式下带宽资源的浪费。在数通协议中,组播协议是最为复杂的协议之一,其关键技术是构建在三层IP协议之上的。一直以来,南京协议团队专攻二层协议,缺少三层协议的人才储备。因此,除了发挥个人能力外,领导还嘱咐我要培养三层协议技术人才的梯队。

万事开头难,我一时间不知道该从何抓起。当时,团队刚刚组建,组员对三层协议的理解几乎为零。组播子系统涉及两百万行以上的代码,我和团队需要尽快理清上百个特性和代码间的对应关系。

“段老师,三层协议具体有哪些呀?跟二层协议有哪些根本区别?”

“段总,组播协议特性和组播责任田的代码是如何对应的?组播子系统各组件如何协作的?”

“老段,兄弟们都不太熟悉,第一次上手,你打算接下来怎么开展工作呀?”

……

大家对我的称呼各不相同,问题却出奇地一致。我知道,我们根本没做好直接上手承接大项目开发和设计的准备。在和组员商量后,我们达成一致:必须先要养成分块学习、交叉培训的学习模式。

组播协议中PIM(协议无关多播)、IGMP(互联网组管理协议)、MVPN(移动虚拟专用网)等内容很复杂,最核心的协议标准RFC(征求意见稿)有20余篇,且其中不乏晦涩的专业术语。最开始的两个月,我们每天早晨组织协议知识学习会。我们在会上交流各自所学的内容,并将遇到的问题一一提出,大家再一起解决。在白天的工作中,我会基于问题单和小需求帮助大家巩固对三层协议的理解。为了让晨会高效高质,每次晨会的前一晚我都会花上3小时看RFC文章,并结合之前的业务经验,把第二天可能会讨论的知识全部吃透。这种“特种兵”训练虽然有点辛苦,但却让我自身的能力迅速得到提升,也让我可以自信地为大家答疑解惑。

一段时间下来,团队成员基本都掌握了组播协议及三层协议,总算“入了门”。但仅仅浮于协议知识层面的理解只能算纸上谈兵,遇到大需求和疑难问题时还是无从着手。因此,我们邀请北京协议团队的组播专家,组织了多场培训,帮助大家对组播特性和代码的对应关系有了进一步的了解,逐渐培养起大家的信心。

接下来,我们就要进入到兵戎相见的现实中去,接手实打实的重大疑难问题定位及代码修改,支撑好大需求设计与代码开发。

从零起步,在质疑中成长

往往,从零到一是最难的。其间,我们也曾受到一些同行的质疑:“这个新组建的团队,能行吗?”

这段时期,不得不提到瑞士S运营商的“BAS(宽带接入服务器)组播”项目,这是我们团队重兵投入的第一个大项目。这是华为设备入网该客户的关键项目,具有战略意义。该项目在原有组播协议基础上将开发新的组播协议特性,涉及众多叠加场景,组件交互逻辑耦合大,代码量也非常大。

最开始,我们计划通过改造和复用已有代码的方式来完成核心功能开发。然而,在任务分派推进的过程中,我们遇到了很大的阻力。这是团队第一次接触如此大体量的项目,我们并不熟悉要改造和复用的组播代码,对代码的修改明显信心不足。此时,开发工作陷入了僵局。

考虑到任务期限,为了不阻碍项目的推进,我们根据新增特性重新细化了核心代码的主体流程和状态机设计,并重点分析了部分状态机和主体流程重写与复用之间的收益对比。经过系统地分析和论证,我们最终选择了部分核心功能基于特性特点重新开发,降低了实现难度和交付风险。我还重新审视了团队成员的技术能力模型,将对应的开发任务依照团队里个人特长逐一分配。

果然,“适配化”的方案推进得很顺利。最终,在两个月内,我们十余人的团队完成了10万行代码开发,有力地支撑了产品在项目中的商业成功。

基于这次的开发经验,我们系统地做了一次总结,将该项目暴露的问题一一识别,尤其是代码复用方面的问题。针对基于原有代码开发信心不足的情况,我们进一步复盘细节,并计划做好针对性培训。

就这样,我们一边修炼内功,一边在项目中实践,大家的能力越来越硬,信心也越来越足。后来,我们陆续接手了“EVPN(以太网虚拟私有网络)组播”“BIER MPLS(比特索引显式复制与多协议标记交换)”等大项目的设计和开发工作,在这些大项目中,我们实现了基于原有代码最大程度的复用。

在这些需求的开发过程中,我们也在不断反思探讨总结复盘。渐渐地,我们发现,我们所做的东西都是“客户提出要什么,我们做什么”“我们比友商差什么,我们补什么”……我们疲于奔命地接需求、做需求,但我们组播的竞争力和业界同行的差距却一直存在。

从跟随到引领

如何跨越这鸿沟?我想,唯一的出路便是创新!

近年来,协议创新一直是产品线和部门的重点工作,组播技术团队也在持续加强投入。随着IP协议由MPLS技术一代向SR/SRv6技术一代演进,新一代组播技术是什么?如何在SR/SRv6时代实现组播技术从跟随到引领?……一系列问题被相继提出。组播技术发展至今已呈现BIER和TREE-SID(树的段标识)两个不同分支,业界友商选择各不相同,我们一方面需要选定我们自身的技术发展路线,另一方面还需要结合产品线IPv6+(第6版互联网协议)发展战略进行创新。

面对复杂的组播协议,要想解决上述问题,必须要抽丝剥茧般从组播协议的汪洋中舀得一瓢水,并从中进行萃取,方可找到精髓。回顾组播协议发展历程,它的新组播技术的每一次诞生都不是孤立的,而是基于新的单播技术应运而生。因此,新组播技术势必也需要结合SR(分段路由)/SRv6 等新技术的特征,在“协议简化”和“易部署易运维”等方面提升协议能力。

为此,我们组织了领域的创新专家、标准专家、解决方案专家和市场专家等多方面人员多次研讨,最终选择华为具有自主知识产权的BIERv6技术(BIER与IPv6相结合)作为下一代组播的技术路线。该路线的发展有很多好处,包括可以使得网络能更好地承载AR(增强现实)、VR(虚拟现实)功能以及满足人们对于4K、8K超高清视频的需求等,也能让华为在未来大视频时代的变革中占领技术高地,实现技术引领。

在选定技术路线之后,作为开发团队的技术专家,我的核心工作就是带领团队将技术创新转化为产品的竞争力。因此,我们选择了BIERv6技术包中最核心的特性在一个大版本中做突击开发,这是南京组播团队首次在单个版本中承接最大体量的需求。

在开发初期,对于BIERv6这个新协议,业界无友商实现,无任何参考,我们要靠自己去摸索。起初,大家缺乏技术自信,同时对这个新技术是否能被客户接受、是否能实现引领也一度产生怀疑。为此,我带领大家回顾IP协议关键技术发展过程,了解那些成功的友商在历次 技术革新时的作为,让大家认识到我们处于一个新技术发展的必然阶段,大家对BIERv6新技术的信心逐渐提升。随着开发工作的逐渐深入,我们对BIERv6技术的各项优势理解得更加深刻,意志也变得更加坚定,再加上之前积累的组播软件和代码能力,我们最终在路由器产品上高质量地交付了BIERv6协议。

要实现技术引领,仅有产品实现是远远不够的。为此,作为组播技术专家,我积极参与到BIERv6技术的市场推广工作中。近年来,我们陆续在国内头部运营商完成了商用和试商用开局,作为关键参与者参与海外卢森堡和阿联酋等项目,陆续获得了海外客户的认可并成功开局应用。

一种新技术的成功需要多个维度的加持,我们通过BIERv6创新在组播领域的一个方位,实现了突破和引领,但毋庸置疑,BIERv6接下来还有很长一段路需要走。于我们个人而言,更重要的是我们学习并实践了技术创新方法,为在日新月异的技术变革中实现自我突破,奠定了坚实的基础。

写在最后

随着在组播领域越钻研越深,我所接触到事情的维度也越来越广,遇到的问题也从一个项目内的问题发展到行业内的问题。我需要思考的不仅是一个项目的质量,还要领悟组播技术在整个行业内的应用与潜力,为公司谋求更大的发展。这一路上,能有幸跟同事们一起探索组播未来的发展前景、创新组播未来的业务及技术基础,我十分感激也十分珍惜这些时光!

有同事曾问我,如何在岗位上坚持这么久、保持着这份初心?在如今快节奏的工作和生活中,我们都会淹没在海量信息之中,很少有时间静心思考、学习新知识。然而,不谋万世者不足谋一域,我认为还是应该认真思考行业未来可能的发展方向与技术成果,这些都是必要且必备的。故此,我丝毫不敢松懈,也会每日留给自己思考的时间,为组播的未来构想,为行业的未来作思。

数通是一个庞大而复杂的行业,希望我们都为此砥砺前行,创造出由中国所牵头的数通协议!

故此,敢竭鄙怀,恭疏短引,言曰:

数通乃万物互联之源,非一蹴而可就成者。

须明大志,修边幅,心动而性忍,心哀而时调。

所以持之以恒,恒心以专,策勉于怀,方有所成。

0 阅读:0

菊厂基地打工仔

简介:感谢大家的关注