開源如何在雲上存活?
在過去十年中,從 Linux 和 MySQL 到 Kubernetes、Spark、Presto 和 MongoDB,開源一直是雲的創新支柱。但最近的一些事態發展為開源背後的商業模式帶來了陰霾,業界現在必須採取行動,以避免扼殺其最大的創新來源之一。
作為 Apache Hive 專案的共同創始人和前負責人,我知道激勵對於開源生態系統的蓬勃發展至關重要。獨立開發者需要激勵他們為開源專案貢獻自己的時間和技能,而那些具有創業思維的人需要激勵他們圍繞這些專案建立公司以幫助它們蓬勃發展。
公有云可能會破壞這些激勵因素,因為它改變了開源的形態。大型雲服務商很容易將開源專案拿來,並將其作為託管服務提供個客戶。如果它是在沒有回饋社群的情況下這樣做的,它就是從別人的工作中獲得不公平的利潤,從而破壞了開源所需要的蓬勃發展的動力。
我們在圍繞 AWS 的當前討論中已經看到了這一點,AWS 被指責 將開源專案作為服務而提供,並對這些開源專案進行品牌重塑,卻不總是回饋這些開源社群。這促使包括 Confluent、 Redis Labs 和 MongoDB 在內的開源軟體供應商使用了新的許可證,以阻止大型商業雲服務商將其程式碼作為託管服務提供。
我不認為這是一種正確的方法。這些新的許可證尚未得到開源推進組織(OSI)的認可,並且它們有可能會混淆開源軟體的使用權。正如軟體自由保護協會主席 Bradley M. Kuhn 所說,軟體自由應該“對所有人來說都是平等的,無論他們是否是商業行為者。”開源之所以蓬勃發展,是因為這個原則一直受到尊重,任何模糊不清的地方都可能會阻止人們加入社群。
我同情那些尋求保護其業務的開源公司。儘管獨立開發人員付出了很多的努力,但開源專案需要公司的資源和管理工作才能被視為足夠穩定,才足以供企業廣泛使用。Linux 在企業領域中起飛,是因為 Red Hat 和 IBM 全力支援它。Kubernetes 的發展是如此的快,也是因為它得到了谷歌的支援。當然也有例外,但如果一個開源專案背後有一家公司,那麼這個開源專案更有可能在大型企業中取得成功。
我需要說明一下我的利益相關立場。我的公司提供了一個基於雲的資料分析平臺,該平臺嚴重依賴 Spark、Presto 和 Hive 等開源元件。與此同時,我們通過兩個專案回饋社群,成為優秀的開源公民:Sparklens,一個提高 Spark 應用程式效能的框架;以及 RubiX,一個提升 Presto 和 Spark 效能的快取框架。
在雲中提供開源軟體有助於這些專案吸引更多使用者和開發人員。但是,如果商業雲服務商獲利不公平,則會對下一代企業家程式設計師們構建開源公司和投資者支援他們產生抑制作用。
因此,如果新的許可證不是解決方案,那麼什麼是呢?
部分要靠大型雲服務商的公平競爭。我不認為 AWS 是“邪惡的”,他們的行為是他們認為最符合他們商業利益的行為。但他們需要認識到,從長遠來看,破壞開源對他們的傷害會像對其它人的傷害一樣。開源倡導者應該繼續提高對這個問題的認識,並對雲服務商施加公眾壓力,以便讓他們採取負責任的行動。我們已經看到證據表明這種壓力可行。
我們還需要一個開源的“道德規範”,由社群(貢獻者、專案負責人)和開源組織(如 OSI 和 Apache)建立。一個企業的行為即便是 100% 符合開源許可證,但仍然能夠以損害社群的方式行事。這個道德規範能夠指出一個廣泛認可的道德準則,列出了不可接受的做法,這將使公司和個人對他們的行為負責。
最終的推動力來自於競爭。確實,大型雲服務商在吸引客戶方面具有優勢;它們被 CIO 們視為“簡單”和“安全”之選。但客戶也可以選擇最好的軟體和支援。如果開源公司能夠為他們自己的釋出版本提供更好的功能和更好的支援,他們可以說服客戶選擇他們自己的產品。
我已經概述了社群可以採取的改善這種情況的行動,但我們每個人也都可以以個人身份採取行動。通過讓雲服務商瞭解我們的擔憂,我們能夠對市場產生一定的影響。要求他們通過反饋表和產品論壇向社群提供特定功能,這是讓你發出自己的聲音的一種方式。這些雲服務商的開發人員也在開源論壇中閒逛,並希望成為開源社群的一員;讓這些要求引起他們的注意會促使這種改變。
我們所面臨的這個挑戰並沒有簡單的解決方案,但我們需要認真對待。開源模式並不脆弱,不會在一夜之間崩壞。但是,如果商業雲服務商繼續利用開源專案而不給予回饋,那麼他們就會削弱幫助開源成功的激勵措施。殺死產下金蛋的雞並不符合他們的利益,這肯定也不符合開發者和客戶的利益。
via: https://venturebeat.com/2019/04/14/how-open-source-can-survive-the-cloud/
作者:Ashish Thusoo 譯者:wxy 校對:wxy
相關文章
- 如何在ubuntu上設定清華源Ubuntu
- redhat開源版本(如centos)oracle安裝事宜RedhatCentOSOracle
- 如何在Linux上安裝一個開源VPN伺服器Linux伺服器
- 從工具到實踐:如何在GitHub上保障開源專案安全?Github
- 如openGauss、PolarDB、OceanBase等選擇開源
- 3 分鐘教你如何在 github 上精確的找開源專案?Github
- 如何在 Ubuntu Linux 16.04上安裝開源的 Discourse 論壇UbuntuLinux
- 如何在 Fedora 上開始 Java 開發Java
- 華為雲中國行2018·武漢站 AI上如畫江城AI
- 恆訊科技分析:如何在伺服器上安裝pfSense開源防火牆?伺服器防火牆
- 如何在SAP雲平臺上使用MongoDB服務MongoDB
- 如何在蘋果Mac上開啟AirDrop?蘋果MacAI
- KusionStack 開源有感|歷時兩年,打破 “隔行如隔山” 困境
- 如何在滴滴雲 DC2 上搭建 MySQL 服務MySql
- 如何在阿里雲上構建高可用應用阿里
- 如何在電腦上多開微信?(windows)Windows
- 小白觀察:開源專案如何在雲端生存
- 如何在開源世界打造自己的明星 Project?Project
- 如何在滴滴雲 DC2 上搭建 ETCD 叢集
- 如何在滴滴雲 DC2 上搭建 ProxySQL 中介軟體SQL
- 4 種開源雲安全工具
- 開源也上雲?在Azure上執行紅帽企業Linux變身“超級引擎”Linux
- 在iOS上將Chrome開源!iOSChrome
- 開源 高效能 雲原生!時序資料庫 TDengine 上線亞馬遜Marketplace資料庫亞馬遜
- 阿里開源雲原生混部系統Koordinator正式開源阿里
- 如何在阿里雲上執行SAP UI5應用阿里UI
- 如何在滴滴雲 DC2 上搭建高可用 MySQL 叢集MySql
- 如何在獨立遊戲與小遊戲戰場存活並獲得更好的價值釋放?遊戲
- 【開源力量】雲原生架構概述架構
- 如何在 docker for win 上搭建 Laravel 開發環境DockerLaravel開發環境
- 如何在Windows上使用Python進行開發WindowsPython
- 如何在Windows上安裝JAVA開發環境WindowsJava開發環境
- 如何在遺留程式碼基礎上開發
- 如何在Github打造你的爆款開源專案Github
- Github 上的 iOS 開源專案GithubiOS
- swift在github上開源的地址SwiftGithub
- .net上的開源工作流
- 如何在Windows 11系統中將任意檔案(如bat/log等)固定在開始選單?WindowsBAT