作者|冬梅、核子可樂
剛剛,作為廣受歡迎的鍵值數(shù)據(jù)庫背后的締造者,Redis 公司已經(jīng)將其同名產(chǎn)品重新拉回開源陣營。不過此舉仍未能將某些批評者完全滿意。
時隔一年,Redis 重新開源
Redis 方面表示,自 Redis 8 開始將把 GNU Affero 通用公共許可證(AGPL)作為 Redis 的附加許可選項,且正在轉(zhuǎn)向由開源代碼倡議(OSI)認(rèn)定為開源的許可模式。也就是說,去年 3 月其轉(zhuǎn)向服務(wù)器端公共許可證(SSPL v1)的退出開源決策如今正被逐步撤銷。
用戶可以選擇以下三種許可證選項之一來使用 Redis Open Source(自 Redis 8 版本開始)及其后續(xù)版本:Redis 源代碼可用許可證 v2 (RSAL v2)、服務(wù)器端公共許可證 v1 (SSPL v1) 和 GNU Affero 通用公共許可證 v3 (AGPL v3)。
上個月,Redis 公司 CEO Rowan Troolope 在接受采訪時表示,“目前并沒有任何跡象表明 SSPL 被廣泛認(rèn)可為一種有效的開源許可證。我們原本希望大家會將 SSPl 視為一種良好的許可證方案,它符合所有條件,甚至 OSI 或許也會重新考慮具體認(rèn)定。但似乎結(jié)果并非如此。”
而如今這一重新開源的決定,是由 Redis 的創(chuàng)始人 Salvatore Sanfilippo 發(fā)帖( Antirez)公布的。有意思的是,Antirez 的原文標(biāo)題就是“Redis is open source again”。
以為為聲明原文:
五個月前,我重新加入 Redis 并很快跟同事們討論起是否該改用 AGPL 許可證。我發(fā)現(xiàn)公司內(nèi)部早就在關(guān)注這個問題,不少人都覺得 AGPl 比 SSPl 更好。雖然 Redis 最終還是選擇了 SSPL,但爭議的聲音從未斷絕。 我一直在努力為 AGPL 這派的支持者爭取更多空間。我個人感覺社區(qū)其實并沒有真正接受 SSPL。OSI 開源代碼倡議不會接受它,軟件社區(qū)也不會把 SSPL 視為開放許可證。很快,我看到公司各個層級都越來越重視這個問題。 說實話,我真心希望自己為全新 Vector Sets 數(shù)據(jù)類型編寫的代碼能通過開源許可證發(fā)布。編寫開源軟件已經(jīng)成為我根深蒂固的習(xí)慣,我在整個職業(yè)生涯幾乎都在為此而努力。現(xiàn)在我年紀(jì)太大了,不太適合改旗易幟。聽起來可能有點理想主義,但我確實是懷著極大的熱情在編寫 Vector Sets,前提就是 Redis 和我的工作成果能夠再次開源。 我很清楚,我們的工作核心只是改進(jìn) Redis,持續(xù)構(gòu)建一套良好、實用、簡潔且能夠根據(jù)軟件棧需求進(jìn)行調(diào)整的系統(tǒng)。然而,回歸開源許可證能夠更好地與 Redis 項目定位保持一致、擴大用戶群體接受度,也是為這一人類共同努力的成果做出貢獻(xiàn)的基礎(chǔ)。所以回歸開源許可證雖然不是我一個人能夠決定的,但我仍然希望自己能為此做出一點努力。今天我高興地看到 Redis 再次回歸開源陣營,并且遵循 AGPL v3 許可證。 現(xiàn)在是時候回歸終端了,用我所能寫出的最佳代碼來表達(dá)對于 Redis 用戶的敬意,也希望 Vector Sets 能夠更加實用。我還有不少改進(jìn)思路,希望大家的反饋能夠激發(fā)我更多的想法。總之,開源萬歲!
那么,Redis 為何要添加 AGPLv3?AGPLv3 與 BSD3 許可證又有何不同?
Redis 公司解釋說,之所以添加 AGPLv3 許可證,是因為之前的許可引發(fā)了社區(qū)的強烈不滿。
部分社區(qū)成員對 Redis 于 2024 年 3 月將項目變更為 RSALv2 和 SSPLv1 雙許可證感到不滿,因為這兩個許可證均未獲得 OSI 批準(zhǔn)。Redis 公司變更許可證是為了針對那些使用 BSD3 許可證下的 Redis 7.2 及之前版本,但貢獻(xiàn)有限的托管服務(wù)提供商。此次許可證變更迫使這些提供商面臨一個選擇:是按照 SSPLv1 許可證共享源代碼,還是直接放棄 Redis。其中一些人選擇了放棄。
引用 Redis 公司 CEO 2024 年 3 月的博文:“為 Redis 提供競爭性產(chǎn)品的組織將不再被允許根據(jù)任何雙許可證免費使用 Redis 的新版本源代碼。如果您正構(gòu)建的解決方案只是在使用 Redis,但并不與 Redis 本身進(jìn)行競爭,則不會受到任何影響。”
BSD3 許可證和 AGPLv3 代表著不同的開源許可方式。BSD3 是一種寬松的許可證,允許用戶對代碼進(jìn)行幾乎任何操作,包括在專有軟件中使用,前提是他們保留版權(quán)聲明和免責(zé)聲明。
相比之下,AGPLv3 是一種 copyleft 許可證,要求任何修改版本都必須遵循相同的條款分發(fā),并且還要求必須向通過網(wǎng)絡(luò)與軟件交互的用戶提供源代碼。這項“網(wǎng)絡(luò)條款”是 AGPLv3 的標(biāo)志性特征,旨在確保 Web 應(yīng)用程序用戶可以訪問源代碼。
可如果 Redis 未來再次變更許可證,又該怎么辦?
Redis 公司也承諾以后基本上不會再變更許可證了,他們已經(jīng)意識到社區(qū)的重要性,因為社區(qū)是 Redis 生命力的基石。
“目前沒有計劃變更或添加當(dāng)前的 Redis Open Source 許可證配置。“由于我們將許可證變改為 RSALv2/SSPLv1 的核心目標(biāo)現(xiàn)已成功實現(xiàn),因此我們可以更好地滿足 Redis 社區(qū)的期望。在選擇 AGPLv3 之前,我們投入了大量時間考慮不同的許可證并分析市場動態(tài)。其他公司也已將 AGPLv3 納入其社區(qū)的選擇范圍 這里再次澄清:我們計劃在 AGPLv3 許可證下保持 Redis 開源,我們認(rèn)為該許可證匹配 Redis 的商業(yè)模式,而且許可證穩(wěn)定性對于社區(qū)生態(tài)至關(guān)重要。我們意識到社區(qū)是 Redis 生命力的基石,我們也將永遠(yuǎn)秉持這一理念。”
社區(qū)反應(yīng)如何?
Redis 此次變更許可證行為,在社區(qū)中引發(fā)了熱烈討論。
一位曾經(jīng)給 Redis 做過貢獻(xiàn)的開發(fā)者在 Hacker News 上發(fā)帖表示,即使 Redis 公司重新開源了它,但信任已不復(fù)從前。
“我曾在 Redis 的原始許可證下貢獻(xiàn)過一個小改進(jìn)(雖然不大,但我覺得還挺不錯的:p)。后來當(dāng) Redis 突然宣布將許可證變更為 SSPL 時,我便轉(zhuǎn)向了 Redict。作為一個真正自由 / 開源軟件的貢獻(xiàn)者,我感覺自己被背叛了——如果他們當(dāng)時改用 AGPL,從道德角度來說,我完全可以接受這種調(diào)整(順便一提)。 我非常尊重 antirez,認(rèn)為他是 FOSS 社區(qū)中一位善良、仁慈的成員。但無論 Redis 公司現(xiàn)在或未來宣布什么、做什么,他們已經(jīng)永遠(yuǎn)失去了我的信任。”
一位經(jīng)歷了 Elastic 和 Redis 兩個許可證變革的 Hacker News 用戶表示:
我們剛剛見證了 Elastic 歷史的重演:一家公司單方面更改開源許可證,社區(qū)強烈反對,最終迫使公司撤回決定。諷刺的是,他們兩家公司甚至使用了同樣的說辭來粉飾這場鬧劇——‘雖然艱難,但最終成功了’、‘這實現(xiàn)了我們的目標(biāo)’。 更可悲的是,它們既沒有建立任何法律約束來防止故技重施,也徹底暴露了管理層的不可信賴。直到發(fā)現(xiàn)社區(qū)的善意才是生存之本時,才慌忙低頭認(rèn)錯。但這種事后補救,不過是‘騙我一次,算你狠;騙我兩次,是我蠢’的尷尬局面罷了。
還有用戶表示提到了 NATS 最近也差點就這么做了。幸好,在 CNCF 和社區(qū)抗議之后,他們今天終于妥協(xié)了。雖然結(jié)果很好,但這完全是一場鬧劇,他們的聲譽也受到了損害。
事實上,更多用戶認(rèn)為,類似 Redis 公司所做的事情,經(jīng)常在開源項目中上演。
就拿數(shù)據(jù)庫領(lǐng)域來說,最初,開發(fā)者們懷著理想主義的熱情,基于完全開源的 OSS/FOSS 許可證構(gòu)建數(shù)據(jù)庫項目,吸引社區(qū)貢獻(xiàn)和用戶增長。隨著項目逐漸成熟,核心團(tuán)隊往往會成立商業(yè)公司,持續(xù)投入多年開發(fā),甚至引入風(fēng)險投資以擴大規(guī)模。然而,當(dāng)項目獲得市場認(rèn)可后,Oracle、Google、微軟等云廠商便開始直接托管這些數(shù)據(jù)庫服務(wù),輕松獲取數(shù)百萬美元的收益,而原創(chuàng)團(tuán)隊卻難以從中分得合理的回報。
面對這一困境,開源公司通常會嘗試通過變更許可證來迫使云廠商付費合作。但這一舉措往往適得其反——云廠商直接分叉項目,而社區(qū)則陷入分裂。
反對者中既有來自云廠商的員工,也有堅持 FOSS 理念的純粹主義者。最終,在巨大的輿論壓力下,公司不得不撤回許可證變更,繼續(xù)陷入“為他人做嫁衣”的惡性循環(huán)。這一過程不僅消耗了開發(fā)者的熱情,也讓開源商業(yè)化的道路變得更加艱難。
也就不難理解,為什么開源項目背后的公司即使最后低了頭,也很難挽回開發(fā)者的信任了。
“開源運動的真正成功,在于它構(gòu)建了人類數(shù)字文明的公共基礎(chǔ)設(shè)施。然而,超大規(guī)模科技企業(yè)卻將其異化為一種“數(shù)字礦場”——他們貪婪地開采代碼價值,卻逃避建設(shè)與維護(hù)的責(zé)任。 我們陷入了一個認(rèn)知陷阱:錯誤地將“開放共享”等同于“強者為所欲為”。 是時候打破這種幻覺了。單純依靠許可證條文已遠(yuǎn)遠(yuǎn)不夠,我們需要重新思考開源生態(tài)的激勵機制、治理結(jié)構(gòu)和抗風(fēng)險能力。下一代的開放模式必須內(nèi)置制衡機制——否則,所謂的"開放"不過是科技壟斷者的免費飼料罷了。”
Redis 之父的回歸,
加快了再次開源的進(jìn)程
事實上,自去年 3 月份,Redis 公司宣布更改開源許可之后,社區(qū)里出現(xiàn)了多個 Redis 分支,如 Redict、Valkey 等,這其中最著名的要屬 Valkey,因為它的背后是由 Redis 項目眾多核心開發(fā)者支持的,且被 Linux 基金會納入后已經(jīng)成功推出了首個兼容候選版本,它允許現(xiàn)有 Redis 用戶輕松遷移到 Valkey,而無需進(jìn)行向后不兼容的 API 更改。
Redis 和社區(qū)之間的矛盾已經(jīng)達(dá)到了頂峰。那時候,Redis 之父還沒有回歸到社區(qū)中。
2020 年 Antirez 辭去了 Redis 維護(hù)者的職務(wù),此后很長一段時間,他再也沒有看過源代碼、提交消息或任何與 Redis 相關(guān)的東西。但當(dāng)去年 12 月底,他注意到 Redis 社區(qū)出現(xiàn)了分裂,這讓他感到擔(dān)憂,因此,他考慮重返 Redis 生態(tài)系統(tǒng),修復(fù)企業(yè)對于 Redis 社區(qū)的態(tài)度,幫助將后續(xù)的開發(fā)重點再次放在 Redis 的核心身上。
在決定回歸后,Antirez 發(fā)了一封博文說明了重返 Redis 的原因。在博文中,Antirez 提到最近幾年生活并不寬松,他想給女兒創(chuàng)造更好的生活,因此萌生了重返紐約并找份兼職工作的想法。此前,他在一次視頻通話中向新任 Redis CEO Rowan Trollope 表達(dá)了這個意向,并得到了對方的積極回應(yīng)。
當(dāng)時,外界對 Antirez 的回歸充滿了各種猜測。很多人認(rèn)為,除了家庭原因,一定還有其他更深層次的動機,比如巨額薪資、私下協(xié)議,甚至是對 Redis 更改許可證的不滿。
Antirez 本人對此進(jìn)行了澄清。他表示,是自己主動聯(lián)系了 Redis,而不是公司挖角。他拿到的薪資也是“常規(guī)水平”,并沒有獲得額外的特殊待遇,但仍然會獲得跟以前一樣的 Redis 股票期權(quán)。
而對于 Redis 切換許可證的決定,他解釋說雖然他自己可能會選擇別的不同許可證,“畢竟我已經(jīng)遠(yuǎn)離項目一線多年了,不太能感受得到業(yè)務(wù)端的壓力”,但總的來講,他完全可以理解這個決定。
而今天重新開源的決定一出,似乎從某種程度上說明了他回歸社區(qū)的本質(zhì)原因——緩和公司與社區(qū)間的關(guān)系,并將 Redis 重新開源。
最后,我們再次解釋下這三種許可證到底是什么,以及區(qū)別是什么?
RSAL v2 是由 Redis 公司建立的寬松非版權(quán)許可證,允許用戶“使用、復(fù)制、分發(fā)、交付和制作軟件的衍生作品”,且只設(shè)兩項主要限制。用戶不得:
將軟件商業(yè)化或以托管服務(wù)的形式提供給他人,從而向第三方提供軟件的功能;以及
刪除或隱藏任何許可、版權(quán)或其他聲明。
RSALv2 不屬于開源許可證。
SSPLv1 是由 MongoDB 創(chuàng)建的源代碼可用許可證,允許免費且不受限制地使用、修改和重新分發(fā),但有一條簡單要求:如果您將產(chǎn)品作為服務(wù)提供給他人,則必須同時根據(jù) SSPL 公開發(fā)布所有修改版本以及管理層的源代碼。
SSPLv1 基于 GPLv3,被視為 copyleft 許可證。也就是說,如果您使用源代碼并創(chuàng)作衍生作品,則這些衍生作品也必須根據(jù) SSPL 獲得許可并公開發(fā)布。
SSPLv1 不屬于開源許可證。
AGPLv3 是由自由軟件基金會 (Free Software Foundation) 推出的開源許可證,專為在網(wǎng)絡(luò)上運行的代碼而設(shè)計,要求用戶在分發(fā)時公開完整的源代碼及其所有修改。
AGPLv3 是一種 copyleft 許可證。也就是說,如果您使用源代碼并創(chuàng)作衍生作品,則這些衍生作品也必須獲得 AGPLv3 許可并公開發(fā)布。
AGPLv3 屬于 OSI 認(rèn)證的開源許可證。
https://antirez.com/news/151
https://redis.io/legal/licenses/
https://news.ycombinator.com/item?id=43859446
聲明:本文為 InfoQ 翻譯整理,不代表平臺觀點,未經(jīng)許可禁止轉(zhuǎn)載。
AICon 2025 強勢來襲,5 月上海站、6 月北京站,雙城聯(lián)動,全覽 AI 技術(shù)前沿和行業(yè)落地。大會聚焦技術(shù)與應(yīng)用深度融合,匯聚 AI Agent、多模態(tài)、場景應(yīng)用、大模型架構(gòu)創(chuàng)新、智能數(shù)據(jù)基建、AI 產(chǎn)品設(shè)計和出海策略等話題。即刻掃碼購票,一同探索 AI 應(yīng)用邊界!
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.