為什麼有些公司(Airbnb、redhat、Google)鍾愛開源自己研發的軟體?

如連接所示,airbnb開源了很多bi領域的軟體,Airbnb Engineering Data Science

。這種商業模式是如何運轉的,難道是自己不賺錢(賣軟體),讓別人也無錢可賺(商業軟體公司)。


目的有很多:

  1. 讓開源世界做自己的小白鼠,什麼新功能新想法讓這個試驗場檢驗一下;
  2. 擴大公司影響力,貢獻了開源軟體至少好招人啊;
  3. 公司內部某些員工也熱衷於開源軟體,這樣可以提高他們自己的名望。


開源軟體完整的叫法是「開放源代碼軟體」,為什麼有這麼多公司開源軟體?因為 開源 本身就是一種商業模式。

個人可能會為了情懷追求開源,比如Linux之父 linus,比如GNU發起人Richard Stallman。

但商業公司參與開源都是精打細算過的,如果不是,這樣的公司也不會長久存在的(我沒有暗指SUN公司哦)。

Redhat開源紅帽系統源碼,更多企業使用,才有更多機會收取技術服務費;

移動互聯網出現後,Google的爬蟲無法爬取蘋果App數據,Google推出開源Android;

百度開源其 阿波羅 自動駕駛框架......

三大主流開源協議

各種衍生開源協議非常多,但最廣泛被使用也最具有代表性的主要有三種:GPL、Apache和MIT,了解主流開源軟體協議的內涵,有助於更好理解這個問題。

開源協議的選擇

選擇不同開源的協議都是為商業目的服務的!

安卓採用Apache協議(kernel是GPL),Google既想讓android盡量被廣泛使用,形成規模效應,同時又不至於生態失控。

Linux採用GPL協議,因為開源極客芬蘭人Linus,他是個人,他足夠有情懷。當然Linux的成功也可以歸功到GPL協議。

MIT協議和BSD協議類似,有一類軟體它非常非常基礎,比如openssl(就是老羅捐款的那個),是構建所有信息系統都需要用到的,這類軟體如果使用GPL協議,那就沒有人敢使用它了(所有項目都得開源),所以這類軟體一般會選擇最為寬鬆的協議,這類軟體包括:C基礎庫、C/C++工具鏈等等;

近年全球各互聯網巨頭公司,颳起了一股開源風,不排除各家有秀肌肉的成分,但個人認為他們還是會有明確目的,比如獲得技術影響力。

最後,留一個課後作業,你們猜猜百度 阿波羅(Apollo)項目選擇的是什麼開源協議嗎?


我小時候看到美國人說的一句話,大概是這樣說的:

他們的孩子看我們的動畫片,年輕人聽我們的流行歌曲看我們的電影,遲早有一天他們會認同我們的文化,成為我們的市場。

開源,在某種程度上就是一種文化輸出、軟實力入侵。


有個現象不能忽略,大多數愛開源的公司都是以技術驅動為公司文化。所以這個問題的核心是裡面的主導者程序員的訴求是什麼。

和很多行業從業者一樣,程序員也是要靠作品說話,代碼是程序員最好的作品,這個和論文對於學者、電影對於演員沒有質的區別。

從程序員的角度出發,作品影響力越大越好。當你在公司里幹活,就算做的再好,知道的人還是少,可交流的也少,畢竟從事類似問題的組不會有很多人。但開源不一樣,全世界有很多人會遇到和你類似的問題,如果這個開源項目運營的號,你的解決方案、代碼水平,可以和業界頂級同行PK。對於靠技術作品吃飯的來講,得到行業的認可,是最大的榮耀。更實際的,將來去面試,甩出作品就行。

對公司來講,程序員開心了,很重要。人其實是一種難以量化的資產,開心和不開心在主觀能動性上差很多。很多公司不遺餘力的取搞公司文化,很大程度都是喜歡發揮員工的主觀能動性。開源後,業界影響力上去了,招人也會變得更容易。同時,還會有很多同行為你的開源項目做貢獻。最後,真正好的開源項目,能變成行業標準,也是很賺錢的。


本身這些公司的商業模式就不是賣軟體,Google 賣廣告、紅帽賣服務、愛彼迎賣房子。開源讓大家參與進來開發還省人力,萬一火了大家都來學,招人也方便。


因為賣軟體不是他們的主營業務,而開源還能有益於他們的主營(或次主營)業務


因為他們發現靠市值更賺

市值是什麼,說白了就是影響力

走別人的路,讓別人無路可走


開源這種東西是有套路的。很多點子你想做的,其他人也同時想到了,就先看誰搞出來,搞出影響力來。也就是,我不搞,遲早要被別人搞。所以我如果有這個時間精力去搞,那我肯定要爭取先搞出來,建立影響力,否則就總是要被別人佔據主動。


1 - 一項技術用的人多了對公司有好處,有戰略意義的軟體,開源做成行業標準直接影響行業格局甚至改變遊戲規則。典型的比如kubernetes,強推一波利用開源綁定了紅帽等企業,做成准標準,直接拉平了gcp與aws的很多差距:我跑不過你了,我再劃條線,咱們大夥從這條線出發重跑。

2 - 有的開源技術可以通過維護、培訓等長期變現,這事紅帽玩得最好。

3 - 在業內樹立公司的高大形象,吸引人才;開源社區本身也是重要的人才來源地。樹立形象的同時還可以引領研究潮流,邀請全世界最聰明的大腦都來研究一個與自家戰略方向一致的靈域,並保證自家在這個靈域的領先地位。

4 - 控制成本,一項技術在戰略意義上不是公司核心競爭力,沒有必要獨佔或不可能獨佔,開發又成本太高,開源,後續的開發交給開源社區。實際上不少有分量的開源項目的主要開發者都來自幾家相關大企業,相當於聯合開發並邀請世界參與。

5 - 員工推動。

6 - 因為用的現有開源軟體作為基礎,迫於協議,被迫開源。

一個項目往往有以上幾點的綜合考量。開源是王道,要有心胸氣魄才玩得好。正面成功的例子很多,比如Google,紅帽,還有近些年的微軟;反面例子最典型的比如Oracle,還有react協議危機時的Facebook,好在Facebook關鍵時刻沒繼續犯糊塗。


很多公司從賣軟體轉型成為賣服務。如果將其中一些基礎設備開源,憑藉自身強大的號召力能吸引很多開發者來使用,進而反向回饋大公司本身。所以這種百利幾乎無一害的事情,為什麼不做呢?


推薦閱讀:

TAG:Airbnb愛彼迎 | 開源 | 谷歌Google | 紅帽RedHat |