開(kāi)源軟件受云服務(wù)商影響,共用條款終止開(kāi)源濫用現(xiàn)象
地平線上出現(xiàn)了一片烏云。亞馬遜等云基礎(chǔ)設(shè)施提供商的行為威脅到了開(kāi)源的生存。
我是一名風(fēng)險(xiǎn)投資者,在13年中先后投資了許多開(kāi)源項(xiàng)目背后的公司:
- Spring
- Mule
- Ruby Rails
- Groovy
- Grails
- Maven
- Gradle
- Redis
- SysDig
- Hazelcast
- Akka
- Scala
- Cassandra
- Spinnaker
- 以及其他公司
開(kāi)源已經(jīng)在為社會(huì)服務(wù),開(kāi)源商業(yè)模式已經(jīng)大獲成功、有利可圖。
亞馬遜的行為
我很欽佩亞馬遜的執(zhí)行力。在風(fēng)險(xiǎn)投資行業(yè),我們習(xí)慣于大型軟件公司(比如IBM、Oracle、惠普、Compuware、冠群、EMC、VMware和思杰等)主要成為龐大的銷(xiāo)售和分銷(xiāo)渠道,這需要獲得創(chuàng)新(即收購(gòu)初創(chuàng)公司)為渠道提供活力。亞馬遜則不然。2015年7月,《華爾街日?qǐng)?bào)》引述我的話說(shuō):“亞馬遜的執(zhí)行力太強(qiáng)了,幾乎就像一家初創(chuàng)公司。這對(duì)于生態(tài)系統(tǒng)的每個(gè)人來(lái)說(shuō)都很可怕。”那個(gè)月,我在投資者網(wǎng)站Seeking Alpha上撰寫(xiě)了《提防亞馬遜巨無(wú)霸》(https://seekingalpha.com/article/3333195-fear-the-amazon-juggernaut)。自我撰寫(xiě)那篇文章以來(lái),亞馬遜的股價(jià)已上漲了400%。(我間接持有亞馬遜的股份。)
但對(duì)于其客戶之外的任何人來(lái)說(shuō),亞馬遜可不是一家溫情脈脈的公司。好多文章詳述了其殘酷無(wú)情的企業(yè)文化。為什么它對(duì)開(kāi)源的使用會(huì)有何不同?
進(jìn)入到AWS,將鼠標(biāo)懸停在頂部的“產(chǎn)品”菜單上,你會(huì)看到亞馬遜并不創(chuàng)建,但是作為服務(wù)來(lái)運(yùn)行的無(wú)數(shù)開(kāi)源項(xiàng)目。這些項(xiàng)目每年為亞馬遜帶來(lái)了數(shù)十億美元的收入。
比如說(shuō),亞馬遜享用Redis(StackOverflow的開(kāi)發(fā)者調(diào)查中最受歡迎的數(shù)據(jù)庫(kù)),幾乎沒(méi)有回饋,將其作為服務(wù)來(lái)運(yùn)行,改頭換面后取名為AWS Elasticache。其他許多流行的開(kāi)源項(xiàng)目同樣被拿來(lái)后作為AWS產(chǎn)品來(lái)提供,包括Elasticsearch、Kafka、Postgres、MySQL、Docker、Hadoop和Spark等。
要說(shuō)明的一點(diǎn)是,這并不違法。但我們認(rèn)為這是錯(cuò)誤的,不利于可持續(xù)發(fā)展的開(kāi)源社區(qū)。
共用條款(Commons Clause)
2018年初,我召集了20多家大型開(kāi)源公司(其中一些已上市)的創(chuàng)始人、首席執(zhí)行官或首席顧問(wèn),暢談該如何是好。3月份,我向GeekWire介紹了這項(xiàng)工作。大家在經(jīng)過(guò)一番建設(shè)性的深入討論后一致認(rèn)定,我們應(yīng)制定一種禁止這種行為的簡(jiǎn)單條款,而不是拐彎抹角,混合搭配多種開(kāi)源許可證以阻止這種行為。我們邀請(qǐng)備受尊敬的開(kāi)源律師希瑟•米克(Heather Meeker)起草該條款。
2018年8月,Redis Labs宣布決定將這個(gè)名為共用條款(Commons Clause)的附加條款(即另增一段條文)添加到其針對(duì)某些附加模塊的自由開(kāi)源許可證。Redis仍然采用寬松的BSD許可證,Redis本身卻沒(méi)有任何變化!但是Redis Labs附加模塊將包括共用條款這個(gè)附加條款(它使源代碼具有可用性),但無(wú)法“出售”模塊,其中“出售”包括將它們作為商業(yè)服務(wù)來(lái)提供。目的是明確防止云基礎(chǔ)設(shè)施提供商的不良行為。
包括通用汽車(chē)(GM)或通用電氣(GE)在內(nèi)的其他所有公司仍可以對(duì)軟件做它們之前所做的一切,即使添加了共用條款。它們可以查看和修改源代碼,提交合并請(qǐng)求,以便將經(jīng)過(guò)修改的內(nèi)容添加到產(chǎn)品中。它們甚至可以在內(nèi)部將軟件作為服務(wù)提供給員工。共用條款阻止商業(yè)服務(wù)與別人的開(kāi)源軟件一起運(yùn)行,就像云基礎(chǔ)設(shè)施提供商所做的那樣。
不出所料,這則宣布在開(kāi)源社區(qū)引發(fā)了熱烈的反響,有點(diǎn)贊,也有炮轟。說(shuō)到過(guò)于簡(jiǎn)化的風(fēng)險(xiǎn):那些點(diǎn)贊的人認(rèn)為這是開(kāi)源許可道路上合理而積極的演變,讓開(kāi)源公司得以在投入于開(kāi)源項(xiàng)目的同時(shí)成功運(yùn)營(yíng)業(yè)務(wù)。Ansible的開(kāi)發(fā)者邁克爾•德哈恩(Michael DeHaan)在《為什么開(kāi)源需要新的許可證?》中特別清楚地闡述了一個(gè)方面:
我們看到運(yùn)營(yíng)開(kāi)源“基金會(huì)”和網(wǎng)站的一些人簡(jiǎn)直就是電視評(píng)論員,就“開(kāi)放源代碼促進(jìn)會(huì)”之類的組織所描述的“開(kāi)源”的定義發(fā)表政治論調(diào),該組織旗下的許多項(xiàng)目擁有一定的人氣或擁躉。他們?cè)噲D聲明源代碼免費(fèi)可用但使用場(chǎng)景有限的這種許可證“不是開(kāi)源”。遺憾的是,這艘船已啟航了。
那些持中立或反對(duì)態(tài)度的人指出,共用條款使得軟件不是開(kāi)源軟件,這很準(zhǔn)確;使代碼庫(kù)的一部分成為專有代碼違反開(kāi)源精神;Redis Labs準(zhǔn)是走到了絕路,很難賺錢(qián)。
首先,別為Redis Labs而操心。這家公司做得非常好。Redis比以往任何時(shí)候更強(qiáng)大、更受寵、更恪守BSD。
更重要的是,我們認(rèn)為現(xiàn)在是時(shí)候在當(dāng)今的環(huán)境下重新審視開(kāi)源的精神了。開(kāi)源變得流行時(shí),它旨在供從業(yè)人員拿來(lái)實(shí)驗(yàn)和改進(jìn),同時(shí)回饋開(kāi)源社區(qū)。當(dāng)時(shí)沒(méi)有一家公司將基礎(chǔ)設(shè)施作為服務(wù)來(lái)提供,也沒(méi)有一家公司拿來(lái)開(kāi)源項(xiàng)目后改頭換面另取名稱,將其作為服務(wù)來(lái)運(yùn)營(yíng),攫取利潤(rùn),但回饋甚少。
我們認(rèn)為,開(kāi)源軟件從來(lái)就沒(méi)有打算讓云基礎(chǔ)設(shè)施公司拿去后售賣(mài)。這不是最初的開(kāi)源精神。共用條款在重扛最初的開(kāi)源精神這面大旗。希望使用流行的開(kāi)源項(xiàng)目用于其應(yīng)用程序的組件的學(xué)者、業(yè)余愛(ài)好者或開(kāi)發(fā)人員仍可以這么做。但是如果你想拿來(lái)實(shí)際上別人開(kāi)發(fā)的同一軟件,將其作為服務(wù)來(lái)提供以牟取私利,那就不符合開(kāi)源社區(qū)的精神。
事實(shí)證明,以共用條款為例,這會(huì)使源代碼嚴(yán)格上來(lái)說(shuō)不是開(kāi)源的。但是為了捍衛(wèi)最初的開(kāi)源精神,這是我們必須忍受的。
Apache +共用條款
Redis Labs發(fā)布的某些附加模塊采用Apache +共用條款。Redis Labs明確表示,運(yùn)用共用條款讓這些模塊不是開(kāi)源產(chǎn)品,Redis本身仍然開(kāi)源和采用BSD許可證。
一些偏激的開(kāi)源人士指責(zé)Redis Labs試圖誘騙開(kāi)源社區(qū)認(rèn)為模塊是開(kāi)源的,因?yàn)樗鼈兪褂昧?ldquo;Apache”這個(gè)字眼。
沒(méi)有什么花招。共用條款是附加到任何寬松的開(kāi)源許可證的補(bǔ)充條款。由于各種開(kāi)源項(xiàng)目使用各種開(kāi)源許可證,因此使用共用條款發(fā)布軟件時(shí),必須指定共用條款附加到哪種寬松的底層開(kāi)源許可證。
為什么不用AGPL?
這種場(chǎng)景下不使用AGPL有兩大原因。AGPL是一種開(kāi)源許可證,表明你將采用AGPL許可證的代碼作為服務(wù)來(lái)運(yùn)行時(shí),必須向公眾發(fā)布所做的任何修改。
首先,AGPL只是讓云基礎(chǔ)設(shè)施提供商有上述的濫用行為很不方便,但阻止不子。它只是表明它們有這類行為時(shí)必須發(fā)布所做的任何修改。其次,AGPL含有的軟件專利方面的條文毫無(wú)必要,許多企業(yè)不喜歡。
我們投資的許多擁有AGPL項(xiàng)目的公司已接到了大企業(yè)的要求,要求轉(zhuǎn)而采用更寬松的許可證,因?yàn)槭褂肁GPL違反了它們公司的政策。
平衡之道
云基礎(chǔ)設(shè)施提供商不是什么壞人,也不是惡意行事。開(kāi)源始終是一種平衡之道。我們?cè)S多人信任客戶和同行查看我們的源代碼,進(jìn)行改進(jìn)和回饋。別人免費(fèi)分發(fā)其工作產(chǎn)品,并相信你能夠有所回饋始終是一種信任的飛躍。有時(shí)候?qū)τ谝恍╉?xiàng)目而言,無(wú)需太刻意的努力,就會(huì)自然平衡。但在其他時(shí)候,自然平衡并不出現(xiàn):我們從基礎(chǔ)設(shè)施開(kāi)源身上越來(lái)越多地看到這一幕,尤其是云基礎(chǔ)設(shè)施提供商試圖通過(guò)走向堆棧的上游:從大眾化計(jì)算和存儲(chǔ)走向更高級(jí)的基礎(chǔ)設(shè)施服務(wù),以此實(shí)現(xiàn)差異化。
修訂
截至本文發(fā)稿時(shí)的共用條款版本是1.0。將來(lái)會(huì)進(jìn)行修訂和調(diào)整,確保共用條款實(shí)現(xiàn)目標(biāo)。我們想聽(tīng)聽(tīng)你們的意見(jiàn)。
我們看到的迄今為止就共用條款所表達(dá)的不同觀念實(shí)際上是理念上的差異。許多批評(píng)來(lái)自并不屬于用軟件來(lái)賺錢(qián)這個(gè)行當(dāng)?shù)拈_(kāi)源人士。他們有不同的理念,但這不足為奇,因?yàn)樗麄兊墓ぷ魇浅蔀檎位顒?dòng)家,而不是為公司打造價(jià)值。
一些人誤以為共用條款阻止人們提供維護(hù)、支持或?qū)I(yè)服務(wù)。這是一種對(duì)該條款的誤讀。一些人聲稱,共用條款與AGPL有沖突。共用條款旨在與比AGPL更寬松的開(kāi)源許可證一起使用,因此不必使用AGPL!不過(guò),即便使用AGPL,也很少有使用作者開(kāi)發(fā)的軟件產(chǎn)品的人會(huì)認(rèn)為完全無(wú)視作者運(yùn)用共用條款的意向聲明是明智的。
保護(hù)開(kāi)源
一些開(kāi)源利益相關(guān)者感到困惑。他們應(yīng)該站在哪一邊?共用條款是新的,我們認(rèn)為有爭(zhēng)論實(shí)屬正常。支持這個(gè)倡議的人是鐵桿的開(kāi)源倡導(dǎo)者,我們的目的就是保護(hù)開(kāi)源、遠(yuǎn)離事關(guān)生存的威脅。我們希望其他人能團(tuán)結(jié)起來(lái)、支持共用條款,那樣開(kāi)源公司能賺錢(qián),開(kāi)源能存活下來(lái),開(kāi)源開(kāi)發(fā)者能為他們的貢獻(xiàn)得到報(bào)酬。
作者:貝恩資本風(fēng)險(xiǎn)投資公司的常務(wù)董事Salil Deshpande