開源項目志願者精疲力竭,大公司不給錢還催更,網絡處於危險之中
如今,整個互聯網的運行和世界上最大的科技公司們都離不開開源軟件。但為這些開源軟件出人出力的志願者們已經精疲力盡。他們紛紛表示,依賴開源軟件的公司應該貢獻更多資金和代碼,而不是坐享其成。
布萊恩·巴布里茨(Blaine Bublitz)每天都要花上幾個小時的時間來查閱Gulp.js用戶發來的電子郵件。Gulp.js是巴布里茨自願維護的一個開源軟件項目,微軟和美國國家航空航天局(NASA)等機構都在使用這個軟件項目。
發給巴布里茨的大多數電子郵件都是要求對項目進行更新或修復,堆積在巴布里茨待辦事項上的東西越來越多,似乎永無止境。有些用戶態度很好,但很多人更喜歡追問巴布里茨為什麼要花這麼長時間。很多不禮貌的要求影響到巴布里茨的心情,甚至一度導致他“消失”了6個月,完全停止了項目維護工作。
巴布里茨說:“本來錢就不多,再加上人們對你大喊大叫,說你需要做點什麼,這讓我根本不想幹。”
另一位開源項目的志願者瑪麗娜·莫斯蒂(Marina Mosti)每週花10個小時維護名為FormVueLate的項目,但沒有從這個項目中掙到過一分錢。莫斯蒂在VoiceThread擔任全職技術主管,這樣才能為她在開源項目的志願者工作提供資金支持。
但莫斯蒂在如何平衡受歡迎的開源項目維護和完成本職工作之間已經耗盡精力。她說,FormVueLate團隊的其他開發人員也筋疲力盡。雖然幾個月前就需要對FormVueLate的一些代碼進行全面重寫,但是他們迄今為止還沒有寫出第一行代碼。
莫斯蒂說:“我們沒有時間、精力或心思花在這些事情上。”
巴布里茨和莫斯蒂並不孤單。與其他幾個重要開源項目合作的志願者也有同感。他們抱怨道,這項工作讓人感覺永遠“難以解決”,“影響了我的健康和快樂”,“成為我生活的負擔”。
但是互聯網不允許他們的工作半途而廢。整個系統背後的開源項目對數字世界至關重要,支撐著世界上許多軟件的運行,包括微軟、亞馬遜和奈飛等最大最富有的科技公司也是如此,例如Google就依賴開源項目來運行自家的Web應用程序。
長期以來,互聯網都是在開源項目開發人員的無償支撐下運行,現在已經岌岌可危。最近的一系列安全事件暴露出這個生態系統是多麼脆弱,而開源開發者們已經精疲力盡,有的人選擇逃離,有的人甚至通過破壞開源項目以示抗議。缺乏對這些開發者的支持將讓整個互聯網面臨危險。
雖然人們常常聽說針對大公司和關鍵基礎設施的網絡攻擊急劇增加,但人們很少討論的是,開源項目也受到了網絡攻擊激增的影響。軟件供應鏈管理公司Sonatype的一份報告顯示,2020年至2021年,針對開源項目的網絡攻擊同比增長650%。報告稱,29%的熱門開源項目至少有一個已知的安全漏洞。
從理論上講,如果有更多人看到代碼,開源軟件會更加安全。但最近的一系列安全事件表明,如果開發人員不去修復漏洞,對項目不管不顧,甚至於破壞開源項目,那麼會給互聯網生態系統帶來相當大的負面影響。去年12月份,黑客就利用開源項目Log4j影響到IBM、甲骨文、亞馬遜和微軟等公司。網絡安全公司Check Point稱,潛在的損害“不可估量”,並表示這“顯然是近年來互聯網上最嚴重的漏洞之一”。
僅僅兩週後,又有一個程序員破壞了廣為人知的Colors.js和Faker.js開源庫。他似乎在用故意破壞這種方式來抗議大公司免費使用自己的項目。
最近,研究人員還發現Mozilla的Firefox開源瀏覽器中有兩個“嚴重”安全漏洞。此外,開源的Linux操作系統也出現了“多年來最嚴重的漏洞”。
“我們已經看到了足夠多的供應鏈災難,這不會是最後一次,”軟件Promith和KEDA的維護人員湯姆·克霍夫(Tom Kerkhove)在談到去年冬天發生的這些事件時說。“企業確實需要幫助開源項目維護人員在決定刪庫之前幫助他們構建產品。”
所有一切都是開源的
開源項目的使用時間和軟件出現時間一樣長,但其在20世紀90年代隨著Linux操作系統等項目席捲整個行業而流行起來。現在,開源項目是亞馬遜網絡服務AWS等雲平台的基礎,並為人們每天都在使用的Facebook和Google應用程序提供動力。
而且開源項目還在繼續發展。微軟旗下的開源項目GitHub在過去的12個月時間裡獲得超過26億份代碼。OpenLogic對2660名專業人士的調查發現,77%的受訪者表示,2021年他們所在的機構均增加了對開源軟件的使用。
軟件公司紅帽首席技術官克里斯·賴特(Chris Wright)說:“更重要的是,開源對整個商業世界和我們所有人的日常生活來說非常重要,影響很大。”“這在整個軟件行業都很普遍。”
報酬很少或沒有報酬
儘管開源項目無處不在,並且在互聯網經濟中扮演著重要角色,但大多數開源項目開發人員從他們的貢獻中賺不到多少錢。
Tidelift對近400名開源軟件維護人員的調查顯示,46%的人沒有得到任何報酬。即便在那些拿到報酬的人中,只有大約一半的人每年能拿到1000美元以上。此外約有一半的受訪者表示,作為開源項目維護人員,他們最大的抱怨是工作報酬不夠。
開源的自由屬性也導致了不公平。目前開源項目由男性主導,當沒有報酬時,沒有那麼多閒暇時間或工作沒有那麼穩定的人不太可能再為開源項目做出貢獻。
如今,GitHub Sponsors、Tidelift和Open Collective等網站正試圖通過允許開發人員接受捐贈和其他形式補償的方式來解決資金問題。不過開發人員說,單純依靠捐款是不可持續的,許多人每個月賺的錢只夠買一杯咖啡。
“我已經嘗試過現有的所有平台,”巴布里茨說。雖然這些網站的“成功之處就在於讓你的勞動不再是完全免費”,但他說,自己每個月從GitHub Sponsors那裡只能得到大約5美元。儘管巴布里茨幾乎全職從事開源工作,但他的主要收入來自過去兩年的諮詢工作。
雖然開源項目資金匱乏,但最富有的大科技公司反而是這些項目的最大受益者。對於一些開發人員來說,很難將二者統一起來。許多人認為,是這些大科技公司沒有給予開源項目足夠的回報。
例如,亞馬遜常常會重新打包開源軟件,並在AWS雲平台上銷售和運行。但開發人員和較小的公司說,儘管亞馬遜從中獲利頗豐,但實際上並沒有為開源項目貢獻多少行代碼。微軟和Google自稱對開源項目很友好,但微軟只是通過旗下的自由和開源軟件基金資助過少數幾個開源項目,Google則聲稱自己擁有員工在業餘時間編寫的開源代碼。
“問題是公司和個人都沒有意識到他們實際上是一個生態系統的組成部分,”開源開發者阿邁勒·侯賽因(Amal Hussein)說。“重要的是,志願者要貢獻自己的時間或金錢。”
志願者精疲力盡
隨著疫情蔓延、網絡攻擊增加、軟件日趨複雜、責任加重以及志願者工作帶來的財務不穩定,開源項目開發人員已經精疲力盡。在Tidelift的調查中,超過40%的開源項目維護人員表示,作為一個維護人員,他們不喜歡個人壓力和感覺被低估。Tidelift首席執行官兼聯合創始人唐納德·費舍爾(Donald Fischer)表示,很多壓力來自於收到很多用戶的投訴。
開發者馬泰奧·科里納(Matteo Collina)把這些苛刻的人稱為“吸血鬼”。科里納說:“目前的現狀是已經無法維持下去,因為更多的項目長期維護人員正在耗盡精力,但吸血鬼還在那裡。”
娜塔莉亞·泰普魯希娜(Natalia Tepluhina)是Vue開源項目的核心成員,這一項目被Google、蘋果和任天堂使用。她表示,用戶常常會問這樣的問題,“為什麼你們在兩週內不修復這個問題?”或“為什麼你們這麼慢?”
“這就像,該死,我在為你免費工作,”特普盧希納說。“你為什麼這麼說?”
另一方面,小伊菲克·奧東(Ifiok Otung Jr.)的開源項目Remirror雖然獲得了贊助,但他說這只會帶來更多審查。去年,他一氣之下放手了6個月時間。
奧東說:“我在這條路上走的時間越長,就越覺得不愉快。”“它成了我生活中的一種負擔。”
許多開發人員已經退出所維護的項目,甚至完全消失。在Tidelift的調查中,大約有59%的維護人員曾一度退出或考慮過退出他們的項目。
例如,瑞恩·比格(Ryan Bigg)曾是電子商務開源項目Spree唯一一位全職維護人員。雖然GoDaddy和Blue Apron等公司都在使用這個項目,但最終比格感覺自己“無法克服”這項工作帶來的壓力。他每天醒來都會收到超過250條有關新需求或修復漏洞的信息。2014年,比格不再全職維護Spree,選擇前往一家科技公司工作。
“最終,它影響了我的健康和幸福,”比格說。
Material for MkDocs是微軟和亞馬遜等公司都在使用的開源軟件。創始人馬丁·多納特(Martin Donath)表示,隨著需求的不斷增長,他最近在決定是否要繼續開發開源軟件方面處於“兩難”境地。但資金方面的支持最終讓他選擇堅持下去。
“項目之所以被放棄無外乎是缺乏時間和興趣,從某種意義上說時間就是金錢,”多納特說。
項目資金耗盡
即便開源開發者獲得足夠多的報酬,可以全身心投入到軟件開發中,開源項目也常常面臨著資金耗盡的風險。Facebook、Airbnb和Netflix都在使用的開源項目Babel給三名核心開發人員支付工資,但在2021年面臨資金幾乎耗盡的風險。當時,三名核心開發人員之一的尼科洛·利博多(Nicolò Ribaudo)一度考慮停止在Babel的工作,轉而去一家公司應聘全職工作。
幸運的是,Babel能夠吸引到足夠的注意力,最終成功籌集資金。項目核心開發者在一篇博客文章中尋求幫助,讓很多依賴Babel的公司意識到這不是他們“認為理所當然的”事情。贊助源源不斷而來,核心團隊成員得以獲得報酬,並繼續維護和改進Babel。利博多透露,運維團隊並沒有拿到行業“高薪”,他在一家公司工作完全可以掙得更多。但他說,這樣的薪水足以維持他在意大利的生活。
“我們可以為這個項目提供更高質量的工作,這對我們來說也更容易,因為我們不再需要犧牲其他空閒時間了,”利博多說。
Babel項目無疑是幸運的。諸如誕生於Google的Kubernetes、誕生於Facebook的React,以及Linux操作系統都在靠贊助而生存。但是,相比於那些能獲得資金贊助的大型項目,整個行業所依賴的許多小型項目沒有給過維護人員一分錢。
ESLint項目創始人尼古拉斯·扎卡斯(Nicholas Zakas)說:“他們處於整條食物鏈的下游,很多時候得不到認可,也得不到贊助。”Facebook、微軟和Netflix都在使用ESLint項目。扎卡斯說,雖然他的項目得到了資助,但對於一個全職開發團隊來說“遠遠不夠”。
紙糊的房子
由於維護人員面臨的需求堆積如山,報酬又低,已經精疲力竭,很多開源項目已經到了崩潰邊緣。與此同時,大公司從這些開源軟件中獲利,卻很少進行回報。
雖然開發人員不會為錢而投入開源項目,但免費工作帶來的風險也會讓互聯網置於風險之中。因為當他們不能快速處理安全事件,甚至選擇退出項目,這讓軟件變得更加脆弱。
開發人員說,公司應該用他們的預算來支持所依賴的開源項目。這不僅僅是錢的問題,如果公司也能貢獻代碼或修復漏洞,他們會很感激。
“開源本身與金錢無關,”開發人員加藤大士說。“當然,它也可以以某種形式維持下去。但背後的文化是相互幫助。惡意拿走一切,還不歸還任何東西是不健康不道德的。”