Milvus 向量搜索引擎已開源。歡迎你們在 Github 上關注咱們。git
雖然已經 2019 年,但仍是有很多人(甚至是大部分人),一提到「開源」,想到的就是「免費」與「我的開發的業餘(低水平)軟件」。然而事實偏偏相反,今天「開源」正是基礎軟件最好的生長模式。「開源」能對基礎軟件公司提供三方面的助力:技術/品牌推廣,用戶/開發者拓展,人才吸引。github
是否是言過其實?讓咱們一塊兒細細探究什麼是「開源」。數據庫
「開源」( Open Source )這個口號源於 1998 年的一次軟件黑客峯會。當時,自由軟件運動已經進行了 15 個年頭。編程
1969 年, Unix 操做系統誕生於貝爾實驗室(隸屬於 AT&T )。當時的 AT&T 由於反壟斷緣由,被限制不得進入計算機行業。所以 AT&T 最初對 Unix 的源碼進行免費分發。然而,1982 年針對 AT&T 不得進入計算機行業的禁令失效了。瀏覽器
1983 年, AT&T 發佈了大名鼎鼎的 Unix System V 。同時 AT&T 改變了 Unix 的受權模式,將其變成了收費的閉源商業軟件。AT&T 的行爲只是當時軟件行業的一個縮影,不少企業或我的都一改過去的源碼免費分發模式,而轉向閉源的商業軟件模式。由此催生了自由軟件運動(始於 1983 年)。發起人 Richard Matthew Stallman ,業界尊之爲 RMS 。(能被人用 3 個字母的縮寫指代的美國人,都不是通常人,好比 JFK 。)服務器
RMS 是學院派黑客的典型表明,他發起的自由軟件運動不只針對商業軟件,更關乎用戶自由使用軟件的權益。自由軟件運動雖然有過於理想化的問題,但它所表明的社區力量的覺醒早已深深影響了今天的軟件行業。網絡
通過不懈的努力與堅持,1990 年代自由軟件陣營終於迎來了重量級的成員(使用 GPL 許可證)—— Linux ( 1991 )和 MySQL ( 1995 )。既然自由軟件逐步走入正軌,爲何還要打出「開源」這樣一面新的旗幟呢?框架
1994 年,Netscape 公司成立。經過首創的 Javascript 編程語言和瀏覽器渲染引擎, Netscape 最風光的時候獨佔了瀏覽器市場 90% 以上的份額。Netscape 瀏覽器自己是收費的商業軟件,但用戶也能夠選擇下載免費的評估版。機器學習
然而,微軟也瞄準了網絡瀏覽器這個賽道。經過在 Windows 上內置 Internet Explorer 的方式,微軟快速蠶食着 Netscape 的市場份額。尤爲 1998 年,微軟發佈的 Windows 98 中內置的 Internet Explorer 4.0 從功能上也壓倒了 Netscape 的產品。朝不保夕的 Netscape 在賣身於 AOL 以前作了一個大膽的決定:公開 Netscape 網絡瀏覽器的源碼。(往後它將重生爲 Firefox ,與 IE 展開新的爭奪。)不過自由軟件過於理想化的理念,顯然與 Netscape 這樣的商業公司存在必定的差別。編程語言
正是在這樣的背景下,O'Reilly 召集了黑客社區中的重要成員: Linus ,三大腳本語言( Perl/Tcl/Python )的發明人, Netscape 公司表明, Apache 維護者等重量級人物一塊兒召開了一次討論會。討論的重要成果之一是明確了不管是自由軟件,仍是開源軟件,最重要的共性即是公開源碼。這也是「開源」這個口號的由來。另外一個開放式的話題則是,如何將開源背後的黑客文化與商業市場相結合。誰曾想 20 多年後的今天,咱們依舊在尋找這個問題的答案。
所以,開源項目不該該避諱談商業模式。由於從「開源」誕生的第一天,商業模式的探索就是其中重要的一環。能夠說開源理念是對自由軟件思想的延申,開源理念強調——共享與合做開發軟件源碼是有商業潛力的。
「開源」,生逢其時。 1997/1998 亞洲金融危機以後,一方面資金迴流美國,另外一方面美國的利率也處於較低水平。第一輪互聯網熱潮( dot-com bubble )愈加洶涌。
當時商業軟件與服務器過於昂貴。開發人員開始採用 PC 硬件和往後大名鼎鼎的 LAMP 開源技術棧來構建本身的網站。 LAMP ,即 Linux 操做系統, Apache 網絡服務器, MySQL 數據庫和 PHP 開發語言。不誇張的說,這些開源軟件就是互聯網早期的明燈( lamp )。
時至今日,Linux 和 MySQL 已是地球上任何數據中內心的標配。而 Apache ,更是成爲了巨無霸式的開源基金會,擁有 1.9 億行代碼。根據 COCOMO II 模型估算,這些代碼的開發成本超過 200 億美圓( 2019 年報)。可見本文一開始提到的兩個關於「開源」的偏見是多麼好笑。
開源軟件的基因中深深印刻着黑客社區的精英文化與創新精神。即使從自由軟件運動開始算起,「開源」的誕生也不過 30 多年。但「開源」已經對今天的軟件產業,甚至整個 IT 產業帶來了深入的啓發與影響。
若是回溯近 20 年的 IT 產業發展脈絡,如下幾個標誌應該是公認的:
整個互聯網行業引領了近 20 年的 IT 技術發展。始於 1990 年代的互聯網雖然是很是年輕的行業,但也是對 IT 技術最敏感的行業。開源 LAMP 技術棧爲互聯網行業的發展奠基了基礎,而互聯網行業的急速發展也幫助孕育了大量開源軟件。
最初當 SuSE 和 Red Hat 將 Linux 引入企業服務器市場時,開源軟件只是商業軟件的低成本替代品。 在至關長的一段時間裏,開源軟件都忙着去補齊相比商業軟件所缺失的能力。但即使是在那個階段,開源軟件也貢獻了很多創新的工具,組件和理念。其中最典型的一個例子, MySQL 數據庫將計算引擎與存儲引擎兩部分進行了獨立的模塊化設計(和今天說的雲環境下的計算與存儲分離不是一個概念)。 MySQL 容許用戶選擇本身須要的存儲引擎,甚至這個存儲引擎能夠是由另外一個公司開發的。(雖然如今 MySQL 和 InnoDB 都在 Oracle 手裏,但早先他們實際上是兩家公司。)Db2 和 Oracle 可沒這樣的操做。
及至最近十年,移動互聯網與雲計算大放異彩。 Redis , MongoDB , Spark , Docker ……這些帶來創新理念的基礎軟件,無一是按照傳統商業軟件的模式進行運做的。
大數據這個概念, 1990 年代就開始出現。早期對大數據價值的挖掘利用,主要是經過 EDW/BI (企業數據倉庫,商業智能)這樣的解決方案來實現。當時, Teradata 是數據倉庫中絕對的霸主。而 IBM 經過收購 Cognos 和 SPSS 在 BI 領域佔有重要的位置。這些商業解決方案當年主要服務於金融,電信,大型製造等行業。
大數據的特色之一是價值密度比較低( 2 倍的數據沒法帶來 2 倍的價值)。所以傳統的分析處理方式雖然在性能上也許依然能夠知足要求,但在成本上卻很難被用戶所接受。一直到 2005 年 Hadoop HDFS 的出現,數據處理的成本大幅降低。終於在開源軟件的推進下,企業級的大數據分析處理能力變得唾手可得。
2016年 DeepMind 研發的 AlphaGo 4:1 打敗李世乭。由此將人工智能的這一波浪潮推向了新的高度。這一輪人工智能還能走多遠?這個問題的答案見仁見智。但值得注意的是,各類主流的人工智能平臺框架( Tensor Flow , Caffe , Keras , PyTorch , Paddle Paddle 等等)都是開源的。甚至英偉達這樣的硬件廠商都推出了 RAPIDS 這樣的開源 AI 框架。
開源軟件的創新之處,不僅僅體如今技術上。更重要的是開源軟件背後的開放協做理念,以及對軟件價值的從新定義,完全改變了今天的軟件世界。
時間回到 2009 年,那正是商業軟件公司欣欣向榮的時代。那時筆者是 IBM 的一名軟件售前工程師。同事們熱烈討論着日暮西山的 SUN 究竟還有什麼出路。 有傳聞 IBM 會收購 SUN,不過這樣的收購恐怕過不了反壟斷調查。
誰曾想 Oracle 最終出手。這筆交易完成後, Oracle 成爲了與 IBM 同樣的集軟硬件,服務於一體的全棧型企業 IT 公司。 Oracle 與 IBM 之間的雙雄爭霸彷佛將會從數據庫領域拓展到企業 IT 的各個領域。
然而,咱們知道這樣的事情最終並無發生。 Oracle 與 IBM 雙雙迷失在這開源軟件大爆發的時代……
咱們都知道傳統商業軟件一般採用許可證( license )銷售模式。通常的流程是,軟件廠商會將用戶的硬件配置(好比 CPU 核數,存儲容量等等),代入他們的神奇公式(公式裏的各類常量大概都是上帝肯定的),最終計算出軟件許可證的金額。
那麼用戶支付許可證費用之後,就能愉快的使用軟件了嗎?對於軟件廠商來講,還有兩個問題:
所以除了一次性收取的許可證費用,軟件廠商又設計出了按年收取的軟件升級保護費用(一般是按比例從許可證費用折算而來)。 只要購買了升級保護,用戶之後就能夠一直使用最新的「版本」,而無需從新支付許可證費用。 Oracle 稱其爲許可證支持( license support ), IBM 稱其爲訂閱與支持( subscription & support )。
按照通常的直覺,人們會認爲商業軟件的核心是許可證費用,軟件升級保護只是許可證的附加產品(畢竟連計算方法都是跟着許可證走的)。但事實每每是反直覺的,請看 Oracle 2017 年財報:
2017 | |
---|---|
收入 | |
Total revenues | 37,728 |
New software licenses | 6,418 |
Software license updates and product support | 19,229 |
成本 | |
Total operating expenses | 25,018 |
Research and development | 6,159 |
單位:百萬美圓
原來,軟件升級保護收入超過總體收入的 50 % ,是新售軟件許可證收入的 3 倍,也是整個公司研發支出的 3 倍。真是了不得的成就!也正是依靠這個基本盤, Oracle 的轉型之路還算是比較從容。足見可持續性收入對於軟件公司有多麼的重要。
爲了保住 license support 的收入,2018 年開始 Oracle 甚至修改了自家數據庫的發佈週期與命名規範。既然 license support 是按年收取的,那麼每一年至少要發個「版本」,否則用戶這一年的升級保護不是白交了麼?但其實例如 Oracle 18c ,它並非新的數據庫「版本」。嚴格意義上講,它是 Oracle 12.2.0.2 ( Version.Release.Modification.Fixpack ),更像是一個 fixpack (或者按 IBM 的叫法是 function level )。
按照慣例, fixpack 升級原本也不須要購買升級保護……
Oracle 將來的「版本」發佈節奏
順便說一下,這裏爲何只給出 2017 年的數據呢?由於自 2018 財年第 4 季度開始, Oracle 再也不單獨列出軟件升級保護的收入金額,轉而將軟件升級保護收入與(老是達不到市場預期的)雲收入合併後一塊兒彙報。(這波操做厲害。反正都是按年收取的可持續性收入,合併也沒毛病。因此說 Oracle 是最牛的商業軟件公司。)
其實何止 Oracle , IBM 和微軟也開始採用淡化版本的方式進行軟件發佈了。這些商業軟件巨頭一個個學起了開源軟件的迭代模式,可見「開源」對軟件行業的影響多麼巨大。
目前比較常見的開源基礎軟件商業模式是這樣的:
坦白地說,目前開源軟件的商業設計比起傳統商業軟件仍是稚嫩了很多。甚至,開源軟件的訂閱模式與傳統的軟件升級保護,形式上看彷佛也沒有那麼大的區別。但爲何開源軟件能形成這麼大的影響呢?緣由在於,開源軟件的模式觸及了用戶心中長久以來的一個疑問:軟件到底是什麼?
傳統商業軟件公司將軟件以產品的形式賣給用戶。所以,用戶花錢買來的軟件許可證以及軟件升級保護是一種資產。什麼樣的資產呢?既不生息,也不能轉售,只會慢慢折舊的資產。這樣的資產放着有什麼用?誰又會喜歡這樣的資產呢?
而在開源模式下,軟件開發者向用戶提供的是一種服務。這種服務不單純只是軟件自己,還包括了軟件的前期開發過程,以及使用/試用反饋。但是,難道傳統商業軟件公司不從用戶那裏收集需求?不聽取用戶的意見來改進本身的產品?沒錯,這些他們都作了。但有多少用戶感覺到了呢(除了少數幾個特殊照顧的大客戶)?
其中的區別能夠用 SuSE 公司的口號來講明:「 We're the open open source company 」。「開源」背後的關鍵之一就是開放協做( open collaboration )。以開放的流程與心態,方便用戶參與到軟件的設計,研發,及反饋中。哪怕用戶不寫一行代碼,他也能夠參與其中。經過查閱公開的文檔與問題記錄,用戶能清楚的瞭解項目的進展,設計的思路,存在的問題及解決方法。這不只僅是「參與感」,用戶也能創建起對項目的控制感與信任。一個可參照的例子,華爲爲了贏得英國電信市場的信任,主動將通訊產品相關的源碼與開發流程交由英國監管機構審查。
更改版本命名規則,讓用戶以爲每一年的升級保護沒有白買,是一條容易的路。構建一個開放協做的環境,爲用戶提供軟件服務,是一條困難的路。
咱們,選擇那條能通往將來的路。