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