內存數據庫供應商redis近日在開源界砸下了一塊“巨石”。
Redis即將轉向雙許可模式,并實施更為嚴格的許可條款。官方對此次變更的公告直截了當:
從Redis 7.4版本開始,Redis將在Redis源可用許可(RSALv2)和服務器端公共許可(SSPLv1)下采用雙重許可。
截圖來自:https://redis.com/legal/licenses/
在此之前,Redis的源代碼是在BSD 3條款許可下提供的,這是一個允許開發者無需付費即可進行商業用途的寬松許可。
雖然官方強調“Redis源代碼將繼續通過Redis社區版免費提供給開發人員、客戶和合作伙伴”,但收緊開源許可的舉措依然引發了絕大多數人的不滿。
1.不是第一次變更,替代方案已經就緒
這不是Redis首次更改其許可條款。早在2018年,它就對其部分模塊的許可進行了調整,當時這種調整就令不少開源界知名人士感到不滿。
在那之后不久,另一家大型NoSQL數據庫供應商MongoDB也改變了其許可,試圖減少其代碼被商業利用的情況。MongoDB創建了一個名為服務器端公共許可(SSPL)的新許可,該許可并不受到一些開源社區成員的歡迎。即便如此,幾年后,Elasticsearch也采用了SSPL,再次引發了某些開源純粹主義者的失望。
現在,引起爭議的SSPL正是Redis在其雙許可策略下采納的兩個許可之一,另一個則是自2018年起用于部分模塊的同款RSALv2許可。
這一變更將從Redis 7.4版本開始生效,業內人士預計多個linux發行版將會從它們的代碼庫中移除Redis。關于此問題的討論已經在openSUSE和Fedora郵件列表上開始了。
然而,預料中的影響可能是溫和且暫時的,因為已經存在替代方案,例如仍然采用BSD許可的分支KeyDB。此外還有微軟的Ga.NET,盡管其缺點在于它是用C#編寫的。
另一個Redis替代品Dragonfly不太可能成為主流選擇,因為它遵循BSL許可,這是HashiCorp最近所采用的許可模式。
對于Redis的決定,可以預見的一種回應類似于HashiCorp的Terraform所經歷的情況:Terraform的代碼被分叉并形成了OpenTF,后來更名為OpenTofu。
2.本欲“制裁”云廠商,但幾乎所有人都感覺“被背叛”
Redis官方顯然也預見到了這一變更會引起的爭議。因此在官方聲明中,盡可能地解釋變更后主要的影響對象實際是——托管 Redis 產品的云服務提供商,并旗幟鮮明地指出:
“Redis 的大部分商業銷售都是通過最大的云服務提供商進行的,這些提供商將 Redis 的投資及其開源社區商品化。盡管我們努力支持社區主導的治理模式,并且我們希望維護 BSD 許可證,但同時交付多個軟件發行版——跨開源、源代碼可用以及針對不同本地和云平臺優化的商業軟件——與我們成功推動 Redis 走向未來的能力不一致。”
“根據新許可證,托管 Redis 產品的云服務提供商將不再被允許免費使用 Redis 的源代碼。例如,云服務提供商只有在與Redis代碼的維護者Redis同意許可條款后才能交付Redis 7.4。這些協議將支持現有的集成解決方案,并提供對即將到來的 Redis 創新的完全訪問。”
在常見問題解答中,也強調了三個“沒有變化”。
1.“對于使用 Redis 開源版本的 Redis 和使用雙許可證供其內部或個人使用的新版本的最終用戶,沒有變化。”
2.“對于使用 Redis 構建客戶端庫或其他集成的集成合作伙伴,沒有變化。”
3.“對于 Redis 的商業客戶,沒有變化。這些客戶根據單獨協商的許可條款獲得我們的技術。”
但實際上,并沒有多少人對此買賬。畢竟連Redis自己也不得不承認:“這一變化意味著 Redis 不再是 OSI 定義下的開源。”
截圖來源:https://redis.com/blog/redis-adopts-dual-source-avAIlab
3.Redis也許在“自掘墳墓”,大多數人會轉向分叉版本
在相關事件的評論下,有網友一針見血地指出:最終受到傷害的不會是大型企業團隊,而是廣大用戶。
“個人認為要么保持代碼專有,要么堅持采用‘Apache 或 MIT’許可……這種半途改變許可協議的做法真的很糟糕,看起來注定會適得其反。無論喜歡與否,Redis一直是一個采用寬松許可的開源項目,這也是它取得成功的原因。改變這一點就意味著在這個層面上改變了游戲規則,并預示著未來所有相關人員都將面臨不良后果。”
此外,還有人提到Redis此舉頗有“自掘墳墓”的味道。
“在我看來,這一舉動可能會像Hashicorp面臨的困境一樣重創Redis Labs,并且無法阻止任何人剽竊Redis Labs的成果,真正受苦的其實是那些只想無拘無束地使用Redis緩存的小型創業公司。而對于AWS來說,分叉Redis完全可行,他們甚至可以將分叉后的版本采用更寬松的許可協議,這樣一來,Redis Labs突然間就在許可方面變成了較差的選擇。”
當然,也有人表示理解,但理解并不等于認同。
“我能理解他們為什么這樣做,只是不同意這種方式能長期有效。大多數Redis用戶,包括我在內,從未向Redis背后的公司支付過分毫。因此,我能理解他們這么做是為了賺取一些利潤。但是,這并不會改變我的行為;我會轉而使用分叉版本。就像絕大多數其他的Redis用戶、外部Redis貢獻者、當前所有提供商業Redis服務的云服務商一樣,估計到這一過程結束時,許多現有的Redis員工也會加入其中……要點在于,這件事最終只會有一個結果:那就是出現一個Redis分叉版本,被當前絕大多數Redis用戶所采用。”