開源項目閉源了,我們怎么辦?
今天不談技術,我也來八卦一下。最近信息系統基礎設施國產化的浪潮興起,大量的國產化IT基礎設施廠商因此受益。不過也有一些不同的聲音,認為國產IT基礎設施大多數依賴于開源代碼,因此都是假國產。似乎只要不是從第一行代碼寫起的軟件,都說不上是國產。哪怕是大部分代碼都是自己寫的,也是抄襲,算不得什么。最近也經常聽到“如果開源項目閉源了,那么國產化就一地雞毛了”。用不用開源,利用開源項目算不算國產化,在之前我已經表達過自己的觀點了,這里不多做表述。每個人從自己的角度出發,對這個問題的看法也不同,這都很正常,很多事情本來就是需要用十幾年甚至幾十年時間才能看得清的,現在下結論還為時尚早。
目前國產IT基礎設施中大量使用開源代碼,這是事實。因為我們在這方面的起步較晚,一直處于追趕階段,如果再從頭開始,恐怕差距就更大了。所以選擇相對容易跟上大時代的方式可能是我們不得不采用的。大量使用開源既然不可避免,那么開源社區如果閉源了,我們該怎么辦呢?實際上,這個問題在多年前,我們的企業就已經遇到過了。南大通用的分布式數據倉庫系統GBASE 8A的存儲引擎中就使用了inforbright標準版的開源代碼,不過2015年左右inforbright修改了開源協議,產品變成閉源產品了。不過GBASE 8A這個產品并沒有消失,近些年發展的風生水起,在國產數倉領域的市場占有率也節節攀升。實際上南大通用也不是簡單的把inforbright的開源代碼拿來就能拼湊出一個分布式數據倉庫產品的。因為開源的inforbright是單機版的,并不支持集群。我想通過這些年的發展,南大通用已經基本上掌握了inforbright存儲引擎的關鍵代碼。
開源項目會改變開源協議,這些年我們遇到的已經不是inforbright這一家了,2019年的REDIS修改開源協議讓大家虛驚一場。后來發現只是一些高級組件改成了自己定義的RSAL許可證協議,核心的REDIS組件還是保留為APACHE V2,這家多次修改開源協議的企業其每次修改都是和融資之類的商業活動有一定關聯性的。實際上這些年MongoDB和ES的開源協議改為更為商業的協議,也都和融資上市等行為有關。并不是企業在收割用戶,而是企業的第一要務是為股東創造利潤,這種行為都是正常的商業行為。
因為開源協議是會被改變的,所以在選擇開源項目的時候也是要十分小心的。如果某個開源產品是一家主要的企業主導開發的,核心代碼都掌握在這家企業里,那么因為商業利益,企業修改開源協議的可能性就更大一些,而那些開源社區中沒有明顯的企業控制的開源項目,其風險就會小一些。
回頭來看看我們所關心的Linux,實際上連我都差點忘了,最著名的Linux開源發行版的全稱是GNU/Linux,這個發行版是現在大多數Linux發行版的源頭。有些朋友可能以為GNU代表了GPL開源,實際上不是的。GNU/Linux是兩部分軟件的組合,Linux是一個類UNIX的核心,其代碼量在Linux發行版中是極小的,而GNU是Linux核心外的整個操作系統。GNU也是最早的開源組織,GPL就是該組織的開源協議,Linux的核心與GNU結合后,替代了GNU中那個寫得不夠好的核心HURD,從此Linux核心也遵循GPL開源協議了。
到目前為止數萬個組織和個人都在參與Linux代碼的貢獻,每個貢獻者都可以獨立決定自己提供的這部分代碼的開源協議,只不過這些開源協議必須是和GPL兼容的,代碼才會被收錄。實際上目前我們使用的Linux發行版中,有不少代碼也不是遵循GPL開源協議的。從目前來看,想要改變GNU/Linux的整體開源協議,是一個極小概率的事件。某個組件要修改成與GPL不兼容的開源許可,開源社區立即會選擇其他的替代方案來進行替代。因此GNU/Linux閉源的可能性是極低的。
雖然暫時不存在GNU/Linux等關鍵開源項目閉源的可能性,我們的企業也不能躺在開源項目上賺錢。積極參與開源社區,貢獻高質量的原創代碼是每個利用開源項目發行商用版本的企業的責任,我們在開源社區貢獻越大,我們在開源社區的話語權也就越大。同時基于開源項目發行商用版本的企業也應該嚴格遵守開源協議,比如使用GNU/Linux代碼的企業,也應該繼續開源自己的代碼。除非你準備完全脫離開業社區,重構代碼,開發自己的閉源產品,否則必須嚴格遵守開源協議,否則必然存在被開源社區拉黑的可能性。
除此之外,目前大家對一些國產軟件廠商最大的不滿在于他們封裝開源代碼,并以此盈利,但是他們并沒有承擔一個產品原廠應有的服務職責。用戶遇到問題后基本上無法獲得任何售后服務。大家都知道,如果我們購買了紅帽的RHEL,那么遇到問題,到紅帽的官網上,大概率能找到解決問題的辦法,或者可以將問題提交上去,等待紅帽發補丁來解決。同樣都是依靠開源社區來發財的企業,紅帽能做到的,希望我們的國產軟件廠商也能做到。只有這樣,才能形成一個良好的生態,我們的國產軟件廠商才真正摘掉“套殼”的帽子。