智東西(公眾號:zhidxcom)
作者 | ZeR0
編輯 | 漠影
智東西9月12日報(bào)道,本月初,紅帽企業(yè)開源講堂第十一期分享了紅帽做軟件開發(fā)的幕后細(xì)節(jié),包括其軟件如何開發(fā)、相較傳統(tǒng)閉源廠商的差別、研發(fā)團(tuán)隊(duì)如何構(gòu)建等話題。
作為全球領(lǐng)先的企業(yè)級開源軟件和服務(wù)提供商,紅帽在開源領(lǐng)域擁有近30年的經(jīng)驗(yàn)。紅帽研發(fā)方式的第一準(zhǔn)則有兩個特點(diǎn),一是百分百開源,二是上游優(yōu)先。幾位紅帽技術(shù)專家對此加以解讀。
一、采用開源代碼的三個關(guān)鍵挑戰(zhàn)
今年知名市研機(jī)構(gòu)IDC曾做過一個線性預(yù)測,預(yù)計(jì)到2024年,有80%的研發(fā)成果是復(fù)用第三方代碼實(shí)現(xiàn)的。
復(fù)用第三方代碼或開源代碼能提高研發(fā)效率,但也面臨重重挑戰(zhàn)。紅帽戰(zhàn)略產(chǎn)品推廣經(jīng)理佟一舟分享了其中的三個關(guān)鍵挑戰(zhàn):
1、如何從海量開源組件和代碼中,發(fā)現(xiàn)和甄選出能夠長期存在的組件?
2、開源社區(qū)的軟件在不斷演進(jìn),自己開發(fā)的部分代碼也在演進(jìn),如何實(shí)現(xiàn)兩者的整合?
3、有代碼的地方就有漏洞,在借鑒一個第三方開源組件來開發(fā)自己的軟件時,如何解決影響穩(wěn)定性安全性的隱患?
這些挑戰(zhàn)使得紅帽研發(fā)軟件的方式,對于要寫代碼的企業(yè)來說,很有參考價值。
佟一舟說,紅帽在這方面的經(jīng)驗(yàn)非常豐富,自成立至今開發(fā)軟件將近30年,紅帽的開發(fā)方式就是依托開源組件和代碼,實(shí)現(xiàn)企業(yè)級軟件的研發(fā)。未來,當(dāng)寫100萬行代碼,到2024年可能平均有80萬行都要以類似紅帽現(xiàn)在的開發(fā)方式寫出來,它才是符合趨勢的。
二、 研發(fā)方式第一準(zhǔn)則:百分百開源、上游優(yōu)先
紅帽的研發(fā)方式第一準(zhǔn)則有兩個特點(diǎn),一是百分百開源,二是上游優(yōu)先。
“如果沒有開源的話,我們就是無源之水、無本之木?!奔t帽首席架構(gòu)師張家駒說,以開源為生,是紅帽生意來源的一大特點(diǎn)。
佟一舟談道,作為一家非常遵守國際規(guī)則和開源準(zhǔn)則的公司,紅帽靠開源起家,也一定會一直開源。“每一款軟件,只要是打著紅帽標(biāo)的,它都是百分百開源。”
紅帽的生意模式是一個閉環(huán):社區(qū)開源軟件,紅帽拿社區(qū)的開源軟件來做加固、測試、修bug、做集成,形成堅(jiān)固的、功能先進(jìn)的、可靠性等非常好的企業(yè)級開源軟件,企業(yè)級開源軟件由企業(yè)購買后,其生態(tài)會更加豐富,很多企業(yè)會從使用者轉(zhuǎn)變成開源軟件的貢獻(xiàn)者,促使開源軟件功能更強(qiáng)大,從而吸引更多的開發(fā)者。
在佟一舟看來,紅帽將企業(yè)級開源軟件的用戶照顧得越好,讓他們的體驗(yàn)越好,讓開源社區(qū)更強(qiáng)大,從長線來看,紅帽未來的生意才會更好。
至于上游優(yōu)先,紅帽Kernel開發(fā)經(jīng)理?xiàng)钊鹑鹫f,他所在的紅帽內(nèi)核團(tuán)隊(duì)在“上游優(yōu)先”這一特點(diǎn)上體現(xiàn)的最為明顯,這里的“上游”就指的是Linux所維護(hù)的Linux內(nèi)核的分支。
他談道,紅帽內(nèi)核是基于某個固定版本,然后從上游來移植很多代碼,同時要加入很多自己工程性的測試和改進(jìn)等。另一方面,移植上游的代碼后,會根據(jù)紅帽的內(nèi)核配置文件來進(jìn)行編譯,其測試團(tuán)隊(duì)有大量的測試案例進(jìn)行全面測試,測出問題后會提交代碼到上游去修復(fù),待所有測試通過,再合并回來。
如果代碼未被上游社區(qū)采納,紅帽每個版本的Release notes中會寫出哪些問題可能仍待解決。
“當(dāng)社區(qū)采納了和紅帽不一樣的方式的時候,紅帽大概率會遵從社區(qū)的解決方案?!辟∫恢壅f,因?yàn)榧t帽相信社區(qū)的解決方案有更廣泛的影響力,紅帽按照“best idea win”的方式去解決問題,這是紅帽的企業(yè)文化之一。
三、如何實(shí)現(xiàn)紅帽模式的研發(fā)?
針對想實(shí)現(xiàn)紅帽研發(fā)方式的企業(yè),佟一舟給出一些建議。紅帽有一個服務(wù)叫開放創(chuàng)新實(shí)驗(yàn)室,通過將紅帽的經(jīng)驗(yàn)手把手教給企業(yè),結(jié)合企業(yè)的實(shí)踐經(jīng)驗(yàn),指導(dǎo)過很多家企業(yè)轉(zhuǎn)成像紅帽這樣的研發(fā)方式。
比如做一或兩個周期的迭代,紅帽首先會拿出企業(yè)轉(zhuǎn)型中最難的問題來解決,還會將怎么思考這么問題、解決問題的方式毫無保留地教給企業(yè)。待到第二個、第三個、第四個問題的這樣團(tuán)隊(duì),它就會作為一個企業(yè)內(nèi)部轉(zhuǎn)型的火種,再把這樣的思想和實(shí)踐逐漸傳播到企業(yè)的每一個團(tuán)隊(duì)。
這樣的轉(zhuǎn)型方式有幾個好處:一是以老帶新,成功率較高;二是以DevOps方式進(jìn)行,從簡單的問題解決到復(fù)雜的問題,中間有調(diào)整的空間;三是轉(zhuǎn)化,每一個團(tuán)隊(duì)都會有轉(zhuǎn)型的時間和過程,這些都是保證轉(zhuǎn)型能夠成功完成的。
楊瑞瑞還分享了紅帽團(tuán)隊(duì)的管理建設(shè),稱紅帽的考評有多個維度,除了自身工作量外,還考量包括如何完成工作的、哪些行為是否符合紅帽文化、在工作過程中是否有擔(dān)當(dāng)、是否對整個團(tuán)隊(duì)有一定促進(jìn)等等。紅帽的工程師與其經(jīng)理也經(jīng)常會進(jìn)行定期的一對一談話,確保相互溝通順暢。
在招募人才方面,他認(rèn)為最看重一位工程師有鉆研問題的好奇心、自主性強(qiáng),此外在社區(qū)有一定貢獻(xiàn)會是加分項(xiàng)。