软件正在改变世界,而软件研发的方式也在悄然发生变化。近年来,全球开发呈现出了爆炸性的增长势头,软件数量一直在以1.5倍的速度增长。据IDC的数据显示,全世界的软件代码总数在2020年的时候是100万行,其中有40%的研发成果是复用第三方代码来实现的。当然,第三方代码绝大多数就是开源社区的代码。
同时,IDC预测,到2024年,将有80%的软件研发成果都是复用第三方代码的。原因很简单:站在巨人的肩膀上,不重复造轮子。在这种效率提升的驱动下,以及全球一体化趋势的影响下,复用代码越来越开放。
然而,复用第三方代码或者开源代码就一劳永逸么?答案是否定的。
复用开源代码面临的难题
首先,开源代码千千万万,如何在海量开源组件和代码中,发掘和甄选可以长期留存的代码是第一大难题。
第二,开源社区的软件都是“活”的,是不断演进发展的,如何让社区不断更新的代码,和不断演进的新技术以及及时修复的bug,能让自己获利,就是一大难点。同时,企业自研部分的代码也在不断演进中,如何与开源部分的演进整合在一起,形成一个统一的企业级软件,是另外一大难点。
第三,有代码的地方就有漏洞,如何解决这些漏洞,避免安全性、稳定性问题出现,也是在选择开源软件过程中面临的一大难题。
由此可见,复用别人的成果也并非易事。在这种情况下,红帽的软件开发方式对任何一个需要写代码的企业来说都很重要。
众所周知,红帽自成立开始,30年来一直都依托于开源组件和代码,实现企业级软件的研发,积累了非常丰富的经验。“未来当你写100万行代码的时候,平均约有80万行都要以类似红帽的开发方式写出来。”红帽战略产品推广经理佟一舟表示。
红帽研发准则之上游优先
“上游优先”一直以来都是红帽秉承的商业信条。对于红帽来说,“上游优先”的原则不仅是在开发之初就要想到对上游社区的贡献,实践之后的成果同样要回馈到社区中。这种互惠互利的方式既成就了开源社区,更成就了红帽。据悉,企业Linux只有三分之一的代码是红帽付费让开发者写出来的,有70%的代码都来自社区,这就是上游的创新经过改变之后再反馈给社区的实例。
红帽研发准则之百分百开源
红帽的成功离不开其始终坚定不移的致力于开源,红帽相信开源的开发模式是更快速促进创新的最佳模式。
佟一舟表示,从狭义的角度来说,Linux内核是在GPL开源许可下研发的,也就是说只要用了GPL协议之下的代码,开发出来的成果也要开源。作为一个严格遵守国际规则和开源准则的公司,红帽的Linux一定会是开源的。
当然,红帽不仅仅有Linux、K8S、OpenShift,并且,K8S以及各种各样的云原生的很多组件所遵循的Apache开源许可是比较宽松的,所以红帽会不会将之闭源?答案是否定的。
因为从广义的角度来说,红帽已经从开源的模式中走出了一条成功的商业之路。30年来,红帽坚持订阅的收费模式,卖纯开源的产品,并坚持在上游社区持续投入。红帽积极参与开源技术的贡献,提取开源社区中的上游技术产品,并对这些产品进行检验、测试、打包成产品组合,附加广泛、丰富的客户支持、相关资源,以及合作伙伴服务,来提升产品的总体价值,之后向企业和政府销售企业级的技术产品组合,形成了红帽成功的商业模式。
好奇心+自主性,红帽最看重的精神
要想成为一个红帽开源社区的开发者,可以从解决一个小的bug开始。如果想加入红帽,则需要开发者要有好奇心和自主性。
红帽首席架构师张家驹表示,好奇心是红帽文化的一个部分,需要开发者具有研究的精神,如果开发者在社区有一定的贡献,当然也就获得了加分项。
红帽的工程师大多具有非常强烈的自主性,主动的去做很多事情,而不是简单的听从领导安排,工作完成之后去汇报,这种工作模式欠缺一些自主性。红帽鼓励失败,因为不可能所有的项目都会成功。
拥有了好奇心和自主性,才能更快的融入到红帽的企业文化中。“如果你关注开源,喜欢开源,想迈出第一步的话,需要勇敢一些。不用担心你发的patch出错,因为上游社区是可以接受的。无论是一次内核或是红帽维护的其他的开源项目,要想参与进来,或者想加入红帽,都只需勇敢的迈出第一步。”红帽Kernel开发经理杨瑞瑞表示。