奧推網

選單
科技

破解複用開原始碼的關鍵挑戰,紅帽自揭軟體開發秘訣

智東西(公眾號:zhidxcom)

作者 | ZeR0

編輯 | 漠影

智東西9月12日報道,本月初,紅帽企業開源講堂第十一期分享了紅帽做軟體開發的幕後細節,包括其軟體如何開發、相較傳統閉源廠商的差別、研發團隊如何構建等話題。

作為全球領先的企業級開源軟體和服務提供商,紅帽在開源領域擁有近30年的經驗。紅帽研發方式的第一準則有兩個特點,一是百分百開源,二是上游優先。幾位紅帽技術專家對此加以解讀。

#FormatStrongID_1#

今年知名市研機構IDC曾做過一個線性預測,預計到2024年,有80%的研發成果是複用第三方程式碼實現的。

複用第三方程式碼或開原始碼能提高研發效率,但也面臨重重挑戰。紅帽戰略產品推廣經理佟一舟分享了其中的三個關鍵挑戰:

1、如何從海量開源元件和程式碼中,發現和甄選出能夠長期存在的元件?

2、開源社群的軟體在不斷演進,自己開發的部分程式碼也在演進,如何實現兩者的整合?

3、有程式碼的地方就有漏洞,在借鑑一個第三方開源元件來開發自己的軟體時,如何解決影響穩定性安全性的隱患?

這些挑戰使得紅帽研發軟體的方式,對於要寫程式碼的企業來說,很有參考價值。

佟一舟說,紅帽在這方面的經驗非常豐富,自成立至今開發軟體將近30年,紅帽的開發方式就是依託開源元件和程式碼,實現企業級軟體的研發。未來,當寫100萬行程式碼,到2024年可能平均有80萬行都要以類似紅帽現在的開發方式寫出來,它才是符合趨勢的。

#FormatStrongID_2##FormatStrongID_3#

紅帽的研發方式第一準則有兩個特點,一是百分百開源,二是上游優先。

“如果沒有開源的話,我們就是無源之水、無本之木。”紅帽首席架構師張家駒說,以開源為生,是紅帽生意來源的一大特點。

佟一舟談道,作為一家非常遵守國際規則和開源準則的公司,紅帽靠開源起家,也一定會一直開源。“每一款軟體,只要是打著紅帽標的,它都是百分百開源。”

紅帽的生意模式是一個閉環:社群開源軟體,紅帽拿社群的開源軟體來做加固、測試、修bug、做整合,形成堅固的、功能先進的、可靠性等非常好的企業級開源軟體,企業級開源軟體由企業購買後,其生態會更加豐富,很多企業會從使用者轉變成開源軟體的貢獻者,促使開源軟體功能更強大,從而吸引更多的開發者。

在佟一舟看來,紅帽將企業級開源軟體的使用者照顧得越好,讓他們的體驗越好,讓開源社群更強大,從長線來看,紅帽未來的生意才會更好。

至於上游優先,紅帽Kernel開發經理楊瑞瑞說,他所在的紅帽核心團隊在“上游優先”這一特點上體現的最為明顯,這裡的“上游”就指的是Linux所維護的Linux核心的分支。

他談道,紅帽核心是基於某個固定版本,然後從上游來移植很多程式碼,同時要加入很多自己工程性的測試和改進等。另一方面,移植上游的程式碼後,會根據紅帽的核心配置檔案來進行編譯,其測試團隊有大量的測試案例進行全面測試,測出問題後會提交程式碼到上游去修復,待所有測試透過,再合併回來。

如果程式碼未被上游社群採納,紅帽每個版本的Release notes中會寫出哪些問題可能仍待解決。

“當社群採納了和紅帽不一樣的方式的時候,紅帽大機率會遵從社群的解決方案。”佟一舟說,因為紅帽相信社群的解決方案有更廣泛的影響力,紅帽按照“best idea win”的方式去解決問題,這是紅帽的企業文化之一。

#FormatStrongID_4#

針對想實現紅帽研發方式的企業,佟一舟給出一些建議。紅帽有一個服務叫開放創新實驗室,透過將紅帽的經驗手把手教給企業,結合企業的實踐經驗,指導過很多家企業轉成像紅帽這樣的研發方式。

比如做一或兩個週期的迭代,紅帽首先會拿出企業轉型中最難的問題來解決,還會將怎麼思考這麼問題、解決問題的方式毫無保留地教給企業。待到第二個、第三個、第四個問題的這樣團隊,它就會作為一個企業內部轉型的火種,再把這樣的思想和實踐逐漸傳播到企業的每一個團隊。

這樣的轉型方式有幾個好處:一是以老帶新,成功率較高;二是以DevOps方式進行,從簡單的問題解決到複雜的問題,中間有調整的空間;三是轉化,每一個團隊都會有轉型的時間和過程,這些都是保證轉型能夠成功完成的。

楊瑞瑞還分享了紅帽團隊的管理建設,稱紅帽的考評有多個維度,除了自身工作量外,還考量包括如何完成工作的、哪些行為是否符合紅帽文化、在工作過程中是否有擔當、是否對整個團隊有一定促進等等。紅帽的工程師與其經理也經常會進行定期的一對一談話,確保相互溝通順暢。

在招募人才方面,他認為最看重一位工程師有鑽研問題的好奇心、自主性強,此外在社群有一定貢獻會是加分項。