如何做好企業級開源?紅帽的研發方式值得學習
原創軟件正在改變世界,而軟件研發的方式也在悄然發生變化。近年來,全球開發呈現出了爆炸性的增長勢頭,軟件數量一直在以1.5倍的速度增長。據IDC的數據顯示,全世界的軟件代碼總數在2020年的時候是100萬行,其中有40%的研發成果是復用第三方代碼來實現的。當然,第三方代碼絕大多數就是開源社區的代碼。
同時,IDC預測,到2024年,將有80%的軟件研發成果都是復用第三方代碼的。原因很簡單:站在巨人的肩膀上,不重復造輪子。在這種效率提升的驅動下,以及全球一體化趨勢的影響下,復用代碼越來越開放。
然而,復用第三方代碼或者開源代碼就一勞永逸么?答案是否定的。
復用開源代碼面臨的難題
首先,開源代碼千千萬萬,如何在海量開源組件和代碼中,發掘和甄選可以長期留存的代碼是第一大難題。
第二,開源社區的軟件都是“活”的,是不斷演進發展的,如何讓社區不斷更新的代碼,和不斷演進的新技術以及及時修復的bug,能讓自己獲利,就是一大難點。同時,企業自研部分的代碼也在不斷演進中,如何與開源部分的演進整合在一起,形成一個統一的企業級軟件,是另外一大難點。
第三,有代碼的地方就有漏洞,如何解決這些漏洞,避免安全性、穩定性問題出現,也是在選擇開源軟件過程中面臨的一大難題。
由此可見,復用別人的成果也并非易事。在這種情況下,紅帽的軟件開發方式對任何一個需要寫代碼的企業來說都很重要。
眾所周知,紅帽自成立開始,30年來一直都依托于開源組件和代碼,實現企業級軟件的研發,積累了非常豐富的經驗。“未來當你寫100萬行代碼的時候,平均約有80萬行都要以類似紅帽的開發方式寫出來?!奔t帽戰略產品推廣經理佟一舟表示。
紅帽研發準則之上游優先
“上游優先”一直以來都是紅帽秉承的商業信條。對于紅帽來說,“上游優先”的原則不僅是在開發之初就要想到對上游社區的貢獻,實踐之后的成果同樣要回饋到社區中。這種互惠互利的方式既成就了開源社區,更成就了紅帽。據悉,企業Linux只有三分之一的代碼是紅帽付費讓開發者寫出來的,有70%的代碼都來自社區,這就是上游的創新經過改變之后再反饋給社區的實例。
紅帽研發準則之百分百開源
紅帽的成功離不開其始終堅定不移的致力于開源,紅帽相信開源的開發模式是更快速促進創新的最佳模式。
佟一舟表示,從狹義的角度來說,Linux內核是在GPL開源許可下研發的,也就是說只要用了GPL協議之下的代碼,開發出來的成果也要開源。作為一個嚴格遵守國際規則和開源準則的公司,紅帽的Linux一定會是開源的。
當然,紅帽不僅僅有Linux、K8S、OpenShift,并且,K8S以及各種各樣的云原生的很多組件所遵循的Apache開源許可是比較寬松的,所以紅帽會不會將之閉源?答案是否定的。
因為從廣義的角度來說,紅帽已經從開源的模式中走出了一條成功的商業之路。30年來,紅帽堅持訂閱的收費模式,賣純開源的產品,并堅持在上游社區持續投入。紅帽積極參與開源技術的貢獻,提取開源社區中的上游技術產品,并對這些產品進行檢驗、測試、打包成產品組合,附加廣泛、豐富的客戶支持、相關資源,以及合作伙伴服務,來提升產品的總體價值,之后向企業和政府銷售企業級的技術產品組合,形成了紅帽成功的商業模式。
好奇心+自主性,紅帽最看重的精神
要想成為一個紅帽開源社區的開發者,可以從解決一個小的bug開始。如果想加入紅帽,則需要開發者要有好奇心和自主性。
紅帽首席架構師張家駒表示,好奇心是紅帽文化的一個部分,需要開發者具有研究的精神,如果開發者在社區有一定的貢獻,當然也就獲得了加分項。
紅帽的工程師大多具有非常強烈的自主性,主動的去做很多事情,而不是簡單的聽從領導安排,工作完成之后去匯報,這種工作模式欠缺一些自主性。紅帽鼓勵失敗,因為不可能所有的項目都會成功。
擁有了好奇心和自主性,才能更快的融入到紅帽的企業文化中?!叭绻汴P注開源,喜歡開源,想邁出第一步的話,需要勇敢一些。不用擔心你發的patch出錯,因為上游社區是可以接受的。無論是一次內核或是紅帽維護的其他的開源項目,要想參與進來,或者想加入紅帽,都只需勇敢的邁出第一步?!奔t帽Kernel開發經理楊瑞瑞表示。