破解复用开源代码的关键挑战,红帽自揭软件开发秘诀

智东西(公众号:zhidxcom)
作者 | ZeR0
编辑 | 漠影

智东西9月12日报道,本月初,红帽企业开源讲堂第十一期分享了红帽做软件开发的幕后细节,包括其软件如何开发、相较传统闭源厂商的差别、研发团队如何构建等话题。

作为全球领先的企业级开源软件和服务提供商,红帽在开源领域拥有近30年的经验。红帽研发方式的第一准则有两个特点,一是百分百开源,二是上游优先。几位红帽技术专家对此加以解读。

一、采用开源代码的三个关键挑战

今年知名市研机构IDC曾做过一个线性预测,预计到2024年,有80%的研发成果是复用第三方代码实现的。

复用第三方代码或开源代码能提高研发效率,但也面临重重挑战。红帽战略产品推广经理佟一舟分享了其中的三个关键挑战:

1、如何从海量开源组件和代码中,发现和甄选出能够长期存在的组件?

2、开源社区的软件在不断演进,自己开发的部分代码也在演进,如何实现两者的整合?

3、有代码的地方就有漏洞,在借鉴一个第三方开源组件来开发自己的软件时,如何解决影响稳定性安全性的隐患?

这些挑战使得红帽研发软件的方式,对于要写代码的企业来说,很有参考价值。

佟一舟说,红帽在这方面的经验非常丰富,自成立至今开发软件将近30年,红帽的开发方式就是依托开源组件和代码,实现企业级软件的研发。未来,当写100万行代码,到2024年可能平均有80万行都要以类似红帽现在的开发方式写出来,它才是符合趋势的。

二、 研发方式第一准则:百分百开源、上游优先

红帽的研发方式第一准则有两个特点,一是百分百开源,二是上游优先。

“如果没有开源的话,我们就是无源之水、无本之木。”红帽首席架构师张家驹说,以开源为生,是红帽生意来源的一大特点。

佟一舟谈道,作为一家非常遵守国际规则和开源准则的公司,红帽靠开源起家,也一定会一直开源。“每一款软件,只要是打着红帽标的,它都是百分百开源。”

红帽的生意模式是一个闭环:社区开源软件,红帽拿社区的开源软件来做加固、测试、修bug、做集成,形成坚固的、功能先进的、可靠性等非常好的企业级开源软件,企业级开源软件由企业购买后,其生态会更加丰富,很多企业会从使用者转变成开源软件的贡献者,促使开源软件功能更强大,从而吸引更多的开发者。

在佟一舟看来,红帽将企业级开源软件的用户照顾得越好,让他们的体验越好,让开源社区更强大,从长线来看,红帽未来的生意才会更好。

至于上游优先,红帽Kernel开发经理杨瑞瑞说,他所在的红帽内核团队在“上游优先”这一特点上体现的最为明显,这里的“上游”就指的是Linux所维护的Linux内核的分支。

他谈道,红帽内核是基于某个固定版本,然后从上游来移植很多代码,同时要加入很多自己工程性的测试和改进等。另一方面,移植上游的代码后,会根据红帽的内核配置文件来进行编译,其测试团队有大量的测试案例进行全面测试,测出问题后会提交代码到上游去修复,待所有测试通过,再合并回来。

如果代码未被上游社区采纳,红帽每个版本的Release notes中会写出哪些问题可能仍待解决。

“当社区采纳了和红帽不一样的方式的时候,红帽大概率会遵从社区的解决方案。”佟一舟说,因为红帽相信社区的解决方案有更广泛的影响力,红帽按照“best idea win”的方式去解决问题,这是红帽的企业文化之一。

三、如何实现红帽模式的研发?

针对想实现红帽研发方式的企业,佟一舟给出一些建议。红帽有一个服务叫开放创新实验室,通过将红帽的经验手把手教给企业,结合企业的实践经验,指导过很多家企业转成像红帽这样的研发方式。

比如做一或两个周期的迭代,红帽首先会拿出企业转型中最难的问题来解决,还会将怎么思考这么问题、解决问题的方式毫无保留地教给企业。待到第二个、第三个、第四个问题的这样团队,它就会作为一个企业内部转型的火种,再把这样的思想和实践逐渐传播到企业的每一个团队。

这样的转型方式有几个好处:一是以老带新,成功率较高;二是以DevOps方式进行,从简单的问题解决到复杂的问题,中间有调整的空间;三是转化,每一个团队都会有转型的时间和过程,这些都是保证转型能够成功完成的。

杨瑞瑞还分享了红帽团队的管理建设,称红帽的考评有多个维度,除了自身工作量外,还考量包括如何完成工作的、哪些行为是否符合红帽文化、在工作过程中是否有担当、是否对整个团队有一定促进等等。红帽的工程师与其经理也经常会进行定期的一对一谈话,确保相互沟通顺畅。

在招募人才方面,他认为最看重一位工程师有钻研问题的好奇心、自主性强,此外在社区有一定贡献会是加分项。