這其實是一個有趣的故事,恰可印證兩個重點:
(1) 產業社群也是社群,它們會左右專案的發展與開源的走向;
(2) 加過料的授權不是開源,若操作失當,也會導致部分客戶的流失。
Redis 是在開源授權演變路上頗具勇氣與創意的試驗者,其授權策略的演化,也常成為企業技術演講中被點名分析的案例。大致經過如下:
- Redis 發展初期原則上採用 BSD-3-Clause 授權。
- 隨後,他們嘗試導入 Open Core 商業模式,即核心功能開源,增效模組則需付費取得;但此模式在增加收益方面成效有限。
- 接著,他們試圖在 BSD-3-Clause 上加註 CCLC(Commons Clause License Condition),即在 BSD 授權架構下,禁止商業使用,包括禁止他人就 Redis 提供技術諮詢服務並收費。這個舉動在歐美開源圈引發強烈反彈,包括 Bruce Perens 等多位意見領袖公開批評,指出:Redis 可以不開源,但不該混淆開源與非開源的界線。
- 隨後 Redis 發出正式聲明,表示未來將不再使用 CCLC,而是依照開源社群的建議,將該類授權方式稱為 「源碼可及」(Source Available),不再宣稱其為開源,並制定自家專屬的 Redis Source Available License(RSAL)。
- 此後一段時間內,Redis 採取 RSAL(Redis Source Available License)與 MongoDB 所制定的 SSPL(Server Side Public License)雙授權方式擇一提供:
- RSAL 大致是對使用者說:「你自己用怎樣都可以,但不得用來對他人提供服務。」
- SSPL 則是對使用者說:「你可以自由使用,也可提供給他人使用,但只要讓第三方使用到功能(make the functionality of the Program or a modified version available to third parties),就必須開放所有源碼,包含資安模組、備份機制、管理介面、API 等相關組件,無論是否為 Redis 衍生部分。」
- 意想不到的是,Linux Foundation 隨即創建了一個名為 Valkey 的 fork,基於 Redis 7.2.4 的程式碼,繼續採用 BSD-3-Clause 授權發布。這是少見的情況,因為 Linux Foundation 一向以勸合不勸離見長,但此案中卻快速接手並主導分支的建立。
- Valkey 的出現確實對 Redis 帶來極大衝擊,經過一段時間後,AWS、Google、Oracle,甚至 Microsoft 都開始轉向使用 Valkey,取代 Redis。Redis 執行長 Rowan Trollope 近期在訪談中也坦言:「現有客戶對授權變動不太在意,但對潛在客戶影響卻非常大。」
- 綜合而言,由於 RSAL 和 SSPL 並未被列入 OSI 的開源授權名單,Redis 最終決定重新加入一項符合 OSD(Open Source Definition) 的授權方式 —— AGPL-3.0。
AGPL 是一種具有雲端約束力的開源授權條款,規定即使改作後用於雲端服務,仍須應使用者需求提供完整源碼。儘管此條款具有一定的擴散力,但它仍被 OSI 認定為開源,拘束性在合理範圍內。
Redis 採用 AGPLv3 的官方聲明:https://redis.io/blog/agplv3/
#redis #OSD #SSPL #RSAL #AGPL #Valkey