開源的成長(zhǎng)之痛:AWS們終成吸血鬼
數(shù)年前,在科技網(wǎng)站ZDnet的一篇文章中,作者提出了一個(gè)問題:開源是否增長(zhǎng)成為企業(yè)軟件默認(rèn)的全新業(yè)務(wù)模式。雖然僅過去了幾年時(shí)間,但現(xiàn)在回頭看來,這個(gè)問題似乎有點(diǎn)奇怪,因?yàn)镽edis、MongoDB與Confluent等公司正在蓬勃發(fā)展,沒有人再懷疑開源的價(jià)值。
但是,如今的開源中具有諸多的爭(zhēng)議,比如MariaDB CEO Michael Howard就批評(píng)這些云計(jì)算巨頭會(huì)通過“露天開采”來掠奪各種開源資源。無風(fēng)不起浪,最近一波爭(zhēng)議起于上周,引爆點(diǎn)便是AWS宣布它推出了增強(qiáng)的Elasticsearch開源發(fā)行版,正如ZDnet 記者 Steven J. Vaughan-Nichols 報(bào)道的那樣,在競(jìng)爭(zhēng)激烈的文字大戰(zhàn)中,Elastic和亞馬遜都試圖占據(jù)輿論制高點(diǎn)。
對(duì)于開源如何改變了軟件領(lǐng)域,我們不必在此進(jìn)行贅述。比如紐約,雖然憑借著華爾街,“大蘋果”一直被視為是一座“科技之城”,但在開源出現(xiàn)之前,由于技術(shù)的被封鎖,各家公司都必須去獨(dú)立開發(fā)包括從高性能的信息傳遞到計(jì)算網(wǎng)格與數(shù)據(jù)庫在內(nèi)的IT基礎(chǔ)設(shè)施及軟件,沒有人愿意與別人進(jìn)行互動(dòng)。
而后,華爾街公司們意識(shí)到必須要將開源放在首位,因?yàn)樗鼈儾幌胫匦略偃プ晕覄?chuàng)建各種獨(dú)立的系統(tǒng),尤其是在核心基礎(chǔ)設(shè)施軟件或機(jī)器學(xué)習(xí)算法方面,它們獨(dú)有的知識(shí)產(chǎn)權(quán)其實(shí)具有更高的價(jià)值。它們不再會(huì)失去那些使用開源軟件的優(yōu)秀人才,因?yàn)樗鼈兿M约旱募夹g(shù)能夠更加便于移植。至此,華爾街公司不再介意員工公開討論他們的開源見解,甚至鼓勵(lì)他們?nèi)?chuàng)造自己的開源項(xiàng)目:幾乎每晚該城市中都會(huì)舉辦各類聚會(huì),開源從業(yè)者們會(huì)在那里分享他們的創(chuàng)新成果。
但是,開源公司會(huì)發(fā)現(xiàn):他們的項(xiàng)目越受歡迎,自己就面臨著更多的“成長(zhǎng)煩惱”,就像MongoDB不會(huì)希望有人分走它獲得的3億美元投資。對(duì)于這些開源公司而言,別人的模仿可能是一種真正地學(xué)習(xí)與致敬,但這也是對(duì)它們未來收益的極大威脅。沒有哪個(gè)開源玩家希望自己成為別人的墊腳石或犧牲品。
這就是像MongoDB和Redis這樣的公司感到威脅的原因,因?yàn)樗鼈兊捻?xiàng)目吸引了大量的追隨者;而Cloudera這樣的公司則完全沒有這種感覺,因?yàn)樗鼈兊捻?xiàng)目吸引力較小。因此Cloudera會(huì)認(rèn)為AWS和Azure更像是合作伙伴,而不是吸血鬼。
Adobe開發(fā)者生態(tài)主管Matt Asay經(jīng)常對(duì)近期熱點(diǎn)事件進(jìn)行評(píng)論,在他最近的帖子中,他表示,大多數(shù)下載或使用開源的開發(fā)者都不會(huì)花時(shí)間搞亂代碼或者為它做貢獻(xiàn),因?yàn)樗麄円呀?jīng)有了日常工作。因此,許可證的變化 ,特別是那些禁止運(yùn)行第三方SaaS服務(wù)的許可證 , 對(duì)他們來說無關(guān)緊要。
在當(dāng)前的爭(zhēng)奪中,亞馬遜開辟了一條新的戰(zhàn)線,它與Netflix和Expedia等客戶共同為Elasticsearch項(xiàng)目開發(fā)了一個(gè)新的開放發(fā)行版,這將為這個(gè)開源項(xiàng)目貢獻(xiàn)所有的資源。它這樣做是基于它的論點(diǎn),即Elastic正在通過引入開放源代碼和專有代碼來混淆視聽。Elastic則堅(jiān)稱,它與亞馬遜存在分歧,而不是與所有云提供商都存在分歧。
從一開始,Elastics的商業(yè)模式就基于開源和專有軟件的結(jié)合。其核心的產(chǎn)品,包括Elasticsearch、Kibana、Logstash和Beats都是基于Apache 2.0開源許可的。爭(zhēng)論的焦點(diǎn)是以前稱之為X-Pack的Elastic Stack Features(擴(kuò)展或插件),這些功能負(fù)責(zé)處理安全、警報(bào)、監(jiān)視、報(bào)告、圖形分析和機(jī)器學(xué)習(xí)。在過去,它們會(huì)被被視為是封閉的專有軟件,最初的目的旨在使程序集成為一個(gè)經(jīng)典的開放核心產(chǎn)品,其中一些功能可以免費(fèi)獲得,而其他功能只能通過付費(fèi)訂閱獲得。而由于這些功能都是專有的,因此催生出了一個(gè)第三方生態(tài)系統(tǒng)來替代這些功能,這并不奇怪。
去年Elastic做出了一些改變,因?yàn)樗l(fā)現(xiàn)開放核心(Open Core)模式存在分歧。一年前,Elastic CEO Shay Banon在一篇博客文章中表示,如果將開放時(shí)間延長(zhǎng)一倍,那么明確有償與免費(fèi)的分界線將會(huì)破壞社區(qū)。他指出連接的斷開不僅會(huì)出現(xiàn)在在功能廣度上,也在測(cè)試中帶來不連貫性。他有一個(gè)觀點(diǎn) - 如果這些特征交織在一起,那么分割的代碼就像分開的城市一樣難以想象。
挑戰(zhàn)在于,通往混亂的道路是由良好的,或者更恰當(dāng)?shù)卣f,是高度理想主義的意圖鋪成的。Elastic的做法令人欽佩,它將Elastic特有的源代碼公開并提供下載,這限制了其他第三方將其作為商業(yè)SaaS服務(wù)提供的可能性。但是,正如AWS所主張的那樣,可下載文件夾中的文件混合了Apache 2.0和Elastic的許可代碼,這會(huì)讓事情變得很復(fù)雜。
Elastic堅(jiān)稱Elastic許可證和Apache許可證代碼位于不同的文件夾中,并且差異非常明顯。但在我們看來,差異是非常微妙的。而且,即使Elastic在Apache和Elastic授權(quán)代碼之間建立了一堵長(zhǎng)城以制造明顯差異,也不能保證亞馬遜會(huì)止步不前。
在此期間,MongoDB和Confluent也加緊實(shí)施自己的計(jì)劃。由于雙方無法達(dá)成一致意見,MongoDB退出了開源倡議,之后開始推進(jìn)SSPL,它涵蓋了4.0平臺(tái)的所有方面。 而Confluent正在推進(jìn)Confluent社區(qū)的許可,其中包括觸及(但不包括)Apache Kafka的組件:KSQL,Confluent連接器,REST代理,控制中心和其他幾個(gè)部分。
此外,Redis去年夏天發(fā)布了Redis Modules中的Commons Clause(不是數(shù)據(jù)庫本身),后來又在一個(gè)名為Redis Source Available License(RSAL)的新條款下對(duì)其放寬了限制。這里的好消息是,Redis直言不諱:它并沒有假裝宣稱RSAL是一個(gè)開源許可證。
這些都是開源玩家們面臨的挑戰(zhàn)。與傳統(tǒng)的專有軟件相比,開源軟件或項(xiàng)目拓寬了人們的目標(biāo)市場(chǎng)的寬度,并為構(gòu)建關(guān)鍵的大眾社區(qū)提供了***機(jī)會(huì),并使得用戶得以使用它建立安裝基礎(chǔ)。但是這把雙刃劍的另一面就是這些項(xiàng)目太受歡迎了。開源提供商面臨的永恒挑戰(zhàn)是如何保持競(jìng)爭(zhēng)優(yōu)勢(shì)。如果他們有一個(gè)更快的新版本發(fā)布通道,情況可能尚不糟糕,但但一旦競(jìng)爭(zhēng)對(duì)手趕上來,那就是另一回事了。例如,過去AWS在支持Hadoop版本方面常常滯后,但之后,在***的穩(wěn)定Apache版本發(fā)布30后,AWS就會(huì)采取行動(dòng)。這時(shí),時(shí)間不再會(huì)是開源供應(yīng)商的朋友。
另一個(gè)風(fēng)險(xiǎn)是分叉(forking),借助它,廠商要?jiǎng)澐殖瞿軌蚪o予自身項(xiàng)目支持的社區(qū)。對(duì)于那些非社區(qū)控制的開源項(xiàng)目特別是供應(yīng)商來說,這是一個(gè)很大的挑戰(zhàn),MongoDB就是***的例子。它會(huì)在***版本項(xiàng)目的基礎(chǔ)上構(gòu)建新功能,而Amazon和Percona等第三方會(huì)在不受SSPL約束的早期版本的基礎(chǔ)上開發(fā)新功能。代碼將會(huì)被分叉,問題是這是否會(huì)導(dǎo)致社區(qū)分裂。毫無疑問,Elastic的Banon所關(guān)心的正是如何將使用免費(fèi)開源版本的用戶與使用付費(fèi)企業(yè)版本的用戶隔離開來。
開源公司需要可用于防御的IP。不過,到目前為止,Red Hat(很快將成為IBM的一部分)仍然是一個(gè)例外,即純開源公司的產(chǎn)品基于社區(qū)主導(dǎo)的項(xiàng)目可以獲得成功。與此同時(shí),Cloudera也在尋求突破,成為另一個(gè)特例。
那么,對(duì)于生態(tài)系統(tǒng)的其他部分,新的變體開源許可證是解決方案嗎? 這里危險(xiǎn)之處在于,客戶一方的法律和合同履行人員可能會(huì)對(duì)許可證感到厭倦,因此可能會(huì)對(duì)許可證產(chǎn)生抵觸。
或許對(duì)于開源廠商來說,要做的就是不要做任何事情來使用戶對(duì)它們產(chǎn)生懷疑,并堅(jiān)持使用著名的開源許可證。之后圍繞它,開發(fā)獨(dú)特的內(nèi)容,為開源項(xiàng)目增加價(jià)值。同時(shí)保持增值組件的抽象也需要是獨(dú)特的,并針對(duì)開源內(nèi)容進(jìn)行了優(yōu)化。繼續(xù)發(fā)布有限制的專有代碼,但不要假裝它是開源的。當(dāng)然這不會(huì)是一件容易的事,畢竟開放核心模型太老了,也許它會(huì)再次進(jìn)行轉(zhuǎn)變與更新。