開(kāi)源軟件(OSS)是我們數(shù)字生活的基石。自然地,OSS是大多數(shù)現(xiàn)代云原生基礎(chǔ)設(shè)施的基礎(chǔ)。事實(shí)上,CNCF最近的一份報(bào)告發(fā)現(xiàn),支持云原生運(yùn)動(dòng)的開(kāi)源項(xiàng)目有所增加。CNCF的研究發(fā)現(xiàn),96%的組織現(xiàn)在使用Kubernetes。在過(guò)去的一年里,其他云原生開(kāi)源項(xiàng)目也呈指數(shù)級(jí)增長(zhǎng)。例如,容器的采用率同比增長(zhǎng)500%,Prometheus監(jiān)控軟件增長(zhǎng)53%。
還有哪個(gè)應(yīng)用程序沒(méi)有使用開(kāi)源軟件嗎?事實(shí)上,90%的企業(yè)現(xiàn)在使用開(kāi)源。但在Log4j等事件發(fā)生后,所有這些云原生架構(gòu)對(duì)開(kāi)源的依賴都引發(fā)了人們對(duì)能否信任這些項(xiàng)目的安全性和可靠性的擔(dān)憂。美國(guó)國(guó)家安全顧問(wèn)Jake Sullivan最近表示,“開(kāi)源軟件是一個(gè)關(guān)鍵的國(guó)家安全問(wèn)題。”誠(chéng)然,要驗(yàn)證每個(gè)項(xiàng)目的出處并充分理解其底層功能可能很困難。由于它們的復(fù)雜性,成為一家公司嵌入的所有開(kāi)源工具的專(zhuān)家需要好幾輩子的時(shí)間。
盡管如此,開(kāi)源的好處遠(yuǎn)遠(yuǎn)超過(guò)了潛在的擔(dān)憂。除了免費(fèi)之外,開(kāi)源還提高了技術(shù)市場(chǎng)中的可移植性和互操作性。此外,有這么多開(kāi)發(fā)人員參與一個(gè)項(xiàng)目,可以更快地發(fā)現(xiàn)和解決弱點(diǎn)和漏洞。然而,公司應(yīng)該考慮在培育這些核心項(xiàng)目方面發(fā)揮更積極的作用。
促進(jìn)共同利益
開(kāi)源軟件可以幫助組織避免被單一云劫持,從而允許多云環(huán)境。但收獲開(kāi)源的好處確實(shí)需要公共投入。作為共同利益的一部分,公司有責(zé)任激勵(lì)OSS的改進(jìn)。那么,有哪些方法可以支持和改進(jìn)開(kāi)源呢?
一種方法是直接捐款。Aiven公司的Jamie Arlen表示,公司為安全團(tuán)隊(duì)成員支付薪水,這些成員花了一半的時(shí)間從事開(kāi)源項(xiàng)目。此外,該公司還為開(kāi)源漏洞發(fā)現(xiàn)提供了經(jīng)濟(jì)獎(jiǎng)勵(lì),即使官方開(kāi)源項(xiàng)目維護(hù)人員本身沒(méi)有漏洞獎(jiǎng)勵(lì)計(jì)劃。
除了直接的資金投入外,Arlen還鼓勵(lì)更多開(kāi)發(fā)商積極參與影響更廣泛生態(tài)系統(tǒng)的核心軟件包,因?yàn)镕edora等底層軟件包中的漏洞可能會(huì)影響許多上游服務(wù)。Arlen說(shuō),通常情況下,暴露是無(wú)意的,只有當(dāng)兩種代碼組合在一起時(shí)才會(huì)出現(xiàn),就像Apache Flink-as-a-service實(shí)現(xiàn)中發(fā)現(xiàn)的一個(gè)錯(cuò)誤一樣。
人人共享
由于社區(qū)的巨大努力,開(kāi)源項(xiàng)目蓬勃發(fā)展。支持開(kāi)源確實(shí)需要努力,但Arlen說(shuō),當(dāng)各方都覺(jué)得自己付出了太多時(shí),這是一個(gè)最佳時(shí)機(jī)。“開(kāi)源實(shí)際上是納什定理的一種實(shí)現(xiàn)。如果每個(gè)人都不是很成功,大家就會(huì)成功。”
這聽(tīng)起來(lái)像是一個(gè)理想主義的比喻,但事實(shí)上,當(dāng)我們互相幫助時(shí),我們往往會(huì)走得更遠(yuǎn)。因此,公司有道德理由直接為其消費(fèi)的項(xiàng)目做出貢獻(xiàn)。雖然這聽(tīng)起來(lái)可能是一個(gè)巨大的負(fù)擔(dān),但所做的努力不必那么巨大。“如果每個(gè)人都提交一篇文章,眨眼之間我們就有了維基百科。開(kāi)源中也會(huì)發(fā)生同樣的事情。”
而且,貢獻(xiàn)也不一定是純技術(shù)性的。例如,技術(shù)作者可以為開(kāi)源項(xiàng)目構(gòu)建更好的文檔。“貢獻(xiàn)應(yīng)該是實(shí)質(zhì)性的,但不一定是重大的。”比如說(shuō),如果每個(gè)人都自愿每月花四個(gè)小時(shí)來(lái)修復(fù)開(kāi)源項(xiàng)目中的漏洞,那么軟件世界本來(lái)就更安全。在這一點(diǎn)上,沒(méi)有一個(gè)測(cè)試套件能夠捕獲所有內(nèi)容。另一個(gè)有用的貢獻(xiàn)方式是向項(xiàng)目維護(hù)人員提交bug報(bào)告。
回饋云原生開(kāi)源
“任何足夠先進(jìn)的技術(shù)都無(wú)法與魔法區(qū)分開(kāi)來(lái)。許多開(kāi)源軟件包對(duì)旁觀者來(lái)說(shuō)就像魔術(shù)一樣。沒(méi)有人能理解所有的Linux或macOS。”Arlen說(shuō)。
因此,不可能完全避免漏洞,無(wú)論軟件是開(kāi)放的還是關(guān)閉的,復(fù)雜性都不會(huì)停止存在。但開(kāi)源的透明性是它的另一個(gè)強(qiáng)大優(yōu)勢(shì),因?yàn)樗峁┝藢?duì)bug和漏洞的更大可見(jiàn)性。
我們無(wú)法擺脫開(kāi)源。例如,CNCF的頂級(jí)開(kāi)源軟件包已經(jīng)成熟多年,并被成千上萬(wàn)的軟件團(tuán)隊(duì)所依賴。盡管直接使用開(kāi)源軟件包需要克服一些維護(hù)障礙,但存在許多抽象來(lái)簡(jiǎn)化它們的使用。例如,大多數(shù)公司通過(guò)EKS或GKS等托管服務(wù)采用Kubernetes。不過(guò),開(kāi)源是這些平臺(tái)的根基,必須加以培育。
我們需要建立支持這種共同利益理念的社會(huì)模式,而不是因?yàn)殚_(kāi)放源碼的缺點(diǎn)而懲罰它。也許有一天,這可能會(huì)成為政府認(rèn)可的數(shù)字“公園護(hù)林員”團(tuán)隊(duì),其職責(zé)包括維護(hù)全球所依賴的數(shù)字基礎(chǔ)設(shè)施。
與此同時(shí),開(kāi)源用戶有一些可操作的項(xiàng)目:回饋社區(qū),引入漏洞獎(jiǎng)勵(lì)計(jì)劃,并盡你所能做出貢獻(xiàn),即使無(wú)關(guān)緊要。
原文鏈接:
https://containerjournal.com/features/why-cloud-native-companies-should-support-open-source/