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















 
 
 







 
 
 
 