我們思考這樣一件事兒,開(kāi)源是云計算所依賴(lài)的重要技術(shù)來(lái)源,而云計算正在成為企業(yè)IT的重要甚至主導力量,那么,開(kāi)源軟件的前景如何呢?
幾乎任何AWS的新服務(wù)都會(huì )在全球范圍內產(chǎn)生巨大的連鎖反應,最近,AWS決定發(fā)布自己的開(kāi)源版Elasticsearch,Elasticsearch是做數據分析的開(kāi)源軟件,能用來(lái)搭建搜索引擎,常用于企業(yè)數據分析尤其是日志分析的場(chǎng)景。
https://www.elastic.co/
Elasticsearch由一家叫Elastic的上市公司維護,最近,AWS開(kāi)源專(zhuān)家Adrian Cockcroft把Open Distro for Elasticsearch描述為一個(gè)發(fā)行版,注意,不是一個(gè)分支而是發(fā)行版,這一動(dòng)作引起了Elastic的不滿(mǎn),這是開(kāi)源項目的公司與云服務(wù)摩擦的又一個(gè)典型事件。
2009年,Elasticsearch作為開(kāi)源項目發(fā)布,2012年,Elastic公司成立并推出基于Elasticsearch的商業(yè)服務(wù),如今市值約為6多億美元。
像Elastic這樣的開(kāi)源商業(yè)公司通??刻峁?zhuān)業(yè)服務(wù)而生存的,如果有企業(yè)想用Elasticsearch,但是企業(yè)自己人又不太會(huì )用這個(gè),雇人搞這個(gè)又不太劃算,總之就是沒(méi)辦法維護這個(gè)東西,要知道,把開(kāi)源的東西用在生產(chǎn)環(huán)境下其實(shí)很麻煩的,于是,Elastic這樣的公司就靠提供服務(wù)掙錢(qián),當然,也會(huì )有一些基于開(kāi)源項目的專(zhuān)有軟件,一般商業(yè)版都會(huì )更好用一些。
像AWS這樣的云計算公司提供的服務(wù)中其實(shí)有很多流行的開(kāi)源項目,而且,通常都是用戶(hù)需要的,也不違背開(kāi)源軟件的要求。2015年,AWS首次推出基于Elasticsearch的服務(wù),但有明眼人發(fā)現,去年開(kāi)始,Elastic開(kāi)始將專(zhuān)有代碼跟開(kāi)源代碼混在一起,一般用戶(hù)根本區分不出來(lái)。
AWS架構戰略副總裁Adrian Cockcroft指出,ElasticSearch的開(kāi)發(fā)文檔中根本沒(méi)說(shuō)清楚哪些是專(zhuān)有的,哪些是開(kāi)源的,企業(yè)開(kāi)發(fā)人員一不小心就用到或者修改了專(zhuān)有代碼。
這個(gè)問(wèn)題很?chē)乐?,因為,一旦像AWS這樣的云服務(wù)商托管了這樣的項目,可能就得吃官司罰錢(qián)了。另一方面,因為這些代碼是一家公司專(zhuān)有的,很難保證這些代碼會(huì )一直持續維護更新。
而且,因為Elastic植入的專(zhuān)有代碼覆蓋很多基本的功能,比如身份驗證,從技術(shù)方面來(lái)看,想以開(kāi)源的方式安全使用這個(gè)項目,那就必須得自己實(shí)現這些功能。
https://opendistro.github.io/for-elasticsearch/
于是,AWS與Expedia和Netflix一起,創(chuàng )建了一個(gè) Open Distro for Elasticsearch(開(kāi)放的Elasticsearch發(fā)行版),這是一個(gè)Apache授權的開(kāi)源發(fā)行版,AWS承諾會(huì )繼續給這個(gè)項目做貢獻。初始的版本主要就是補充一些Elasticsearch缺少的關(guān)鍵功能,比如安全、事件監控預警還有SQL語(yǔ)句的支持等等。
Elastic的CEO在自己的博客里寫(xiě)道,在此之前,AWS的人找到Elastic希望獲得一些優(yōu)惠待遇,但是被拒絕了,然后就自己搞了個(gè)版本,我們承諾對所有的開(kāi)發(fā)者一視同仁。
面對媒體的詢(xún)問(wèn),Elastic的人則表示,他們已經(jīng)說(shuō)清楚了Elasticsearch代碼的類(lèi)型,所有專(zhuān)有代碼都在“x-pack”目錄里,以防止混淆,每個(gè)源文件的開(kāi)頭都會(huì )寫(xiě)清楚,這個(gè)代碼是Apache 2.0授權的還是Elastic授權的。
很多人都在說(shuō),AWS的云服務(wù)有很多都建立在開(kāi)源項目之上,這些開(kāi)源項目可以輕松成為AWS的創(chuàng )收項目,但是又不用非得給開(kāi)源社區做貢獻,這收獲跟付出根本不成比例,于是,從去年開(kāi)始,一些公司改了開(kāi)源許可的條款,以阻止AWS這樣的云計算公司把開(kāi)源軟件變成云服務(wù)。
這些做法其實(shí)源于對AWS的恐懼,擔心不斷增長(cháng)的力量對云計算市場(chǎng)的控制力,確實(shí)有一些原來(lái)運行著(zhù)開(kāi)源的Elasticsearch的公司,原本也享受著(zhù)Elastic的服務(wù),而現在都跑在A(yíng)WS上了,而且,一旦用上云之后,用戶(hù)會(huì )發(fā)現AWS版用起來(lái)更簡(jiǎn)單。
不難理解為什么AWS想讓Elastic提供一些基本服務(wù),也不難理解為什么Elastic不想調整戰略以適應AWS。此前,Azure和GCP(谷歌云)都與Elastic有過(guò)相關(guān)商業(yè)合作,但AWS并沒(méi)有類(lèi)似的想法。
開(kāi)源企業(yè)軟件在過(guò)去十幾年為IT行業(yè)的繁榮鋪平了道路,許多新的公司能通過(guò)貢獻社區創(chuàng )建自己的技術(shù)架構,就不用重復造車(chē)了,每當有錢(qián)的大公司解決了技術(shù)難題后,別的許多公司都能從中受益。
很多人開(kāi)始擔心,云計算會(huì )不會(huì )讓我們重回專(zhuān)有軟件的世界?
但是,如果開(kāi)源開(kāi)發(fā)者不能組建獨立的公司來(lái)將代碼變成錢(qián),很快,很多流行的開(kāi)源項目都會(huì )變成云巨頭們的服務(wù),從歷史的走向來(lái)看,有些趨勢是不可避免的,開(kāi)源技術(shù)服務(wù)公司和云計算公司其實(shí)都是在顛覆傳統專(zhuān)有軟件和硬件廠(chǎng)商。
而現在,由于重要的開(kāi)源項目被企業(yè)把控,或者說(shuō)開(kāi)源項目服從于一些公司的發(fā)展規劃,最后可能會(huì )導致延續十多年來(lái)的企業(yè)技術(shù)創(chuàng )新步伐陷入停滯。大型公司也由于缺少競爭,滿(mǎn)足于現狀止步不前而遭到唾棄,初創(chuàng )公司生存的土壤也可能會(huì )被破壞殆盡。
工程管理暢銷(xiāo)書(shū)作者Camille Fournier寫(xiě)道:“我對那些在創(chuàng )始DNA中沒(méi)有開(kāi)源的公司能否長(cháng)期為社區做最好的事情持懷疑態(tài)度,我擔心云只會(huì )讓我們回到專(zhuān)有軟件的世界”。
歷史的車(chē)輪會(huì )倒退嗎?