開源就是不斷的奉獻(xiàn)自己,除非它將你的業(yè)務(wù)先毀掉。但是,有太多的人先入為主,將各種偏見灌輸給你,諸如:開源有“毒”,開源根本無(wú)法賺錢之類的。這個(gè)時(shí)候,你只需要默默的,轉(zhuǎn)身看看那些成功的利用開源的公司即可。
互聯(lián)網(wǎng)的巨頭,即使如 LinkenIn,也是開源的“專家”,讓我們先過一遍 LinkedIn 的 GitHub 賬戶, 竟然是一家發(fā)布了 75 個(gè)開源項(xiàng)目的公司。而且其中有一些已經(jīng)是獲得巨大成功的項(xiàng)目了,有眾多的開發(fā)者和公司參與開發(fā)和使用。是的,沒錯(cuò),這就是 LinkedIn,外表光鮮的互聯(lián)網(wǎng)公司,主營(yíng)的業(yè)務(wù)是招聘,標(biāo)榜自己是“將全世界的專家聯(lián)系起來(lái),讓他們更具生產(chǎn)力,并變得更加的成功。”
最近被各大公司釋放開源項(xiàng)目的新聞刷屏,Google 剛剛開源了人工智能項(xiàng)目、FaceBook 開源機(jī)器學(xué)習(xí)項(xiàng)目 等等,幾乎每周都有這些 IT “大鱷”們發(fā)布新的開源項(xiàng)目,令人目接不暇。 LinkedIn 也不甘示弱,近期又開源了其旗下項(xiàng)目 Amdry ,這是一款對(duì)象存儲(chǔ)系統(tǒng)。其實(shí),LinkedIn 已經(jīng)悄然建立了一個(gè)世界級(jí)的開發(fā)者團(tuán)隊(duì),和開源社區(qū)緊密聯(lián)系,從開源中獲益、也反饋給社區(qū)。近來(lái) LinkedIn 的工程副總裁 Igor Perisic 接受了 InfoWorld 的 Matt Asay 的采訪。讓我們來(lái)了解下 LinkedIn 是如何讓開源在公司中成功運(yùn)轉(zhuǎn)的。
將代碼開放僅僅是個(gè)開始
任何人都可以將自己的代碼開放,事實(shí)上,類似 Sourceforge 上的很多項(xiàng)目經(jīng)年累月的都是只有很少的開發(fā)者,(80%的項(xiàng)目只有兩個(gè)人或更少的開發(fā)者)若是有人加入的話,那真是讓人興奮不已。即使是某個(gè)項(xiàng)目有多個(gè)貢獻(xiàn)者,但是絕大多數(shù)的項(xiàng)目有超過6個(gè)月的時(shí)間沒有更新。
事實(shí)上,僅僅從 LinkedIn 開源了75個(gè)項(xiàng)目這個(gè)角度來(lái)說,并沒有多大的意義,因?yàn)橐粋€(gè)開源項(xiàng)目的意義在于能夠在多大程度上引起社區(qū)的興趣來(lái),而這也是 LinkedIn 的開源故事的魅力所在。
正如 Perisic 所說:“數(shù)字通常只是表面的、虛的標(biāo)桿,我們認(rèn)為社區(qū)采用量才是成功的關(guān)鍵指標(biāo)。” 舉例來(lái)說,Pinot和 REST.li,前者是一個(gè)實(shí)時(shí)的分布式的 OLAP 數(shù)據(jù)存儲(chǔ),LinkedIn 用來(lái)交付可擴(kuò)展的實(shí)時(shí)分析,后者是一 REST 的框架,在 GitHub 上都是超過一千個(gè) Star 和 Fork 超過 200 的項(xiàng)目。
另外,一個(gè)開源項(xiàng)目最好的健康指標(biāo)就是代碼倉(cāng)庫(kù)的貢獻(xiàn)者數(shù)量和最后的更新時(shí)間,這兩個(gè)指標(biāo)隨著時(shí)間的推移,也會(huì)為項(xiàng)目帶來(lái)更多的貢獻(xiàn)者以及更加頻繁的更新,形成一個(gè)正循環(huán)。但是對(duì)于社區(qū)來(lái)說,這還不夠。能夠得到業(yè)界標(biāo)準(zhǔn)的承認(rèn),才是 LinkedIn 的開源工作所取得的成績(jī),比如得到 Apache 基金會(huì)的承認(rèn)。
LinkedIn 有多個(gè)項(xiàng)目被 Apache 基金會(huì)當(dāng)選為其頂級(jí)項(xiàng)目,諸如Kafka、Samza、 以及 Helix 。還有其它項(xiàng)目,如分布式鍵值存儲(chǔ)系統(tǒng)-Voldemort 正在變得流行起來(lái)。REST.li 就不用說了,已經(jīng)是非常受歡迎的開發(fā)框架了??傮w而言,LinkenIn 通過在開源的努力已經(jīng)在開源項(xiàng)目上贏得了開發(fā)者的認(rèn)同。
開源現(xiàn)在已經(jīng)是一個(gè)被濫用的詞匯了,舉例來(lái)說,太多的公司所發(fā)布的代碼是對(duì)自己有用的,然后希望出現(xiàn)大規(guī)模的社區(qū)圍繞著它來(lái)進(jìn)行,然后希望這個(gè)項(xiàng)目對(duì)自己的公司更加的有用處。其實(shí),開源基金會(huì)也是遵循著同樣的如此的以自我為中心的邏輯,所謂的開放治理其實(shí)是一種偽裝,不過依然是由單一的廠商控制最終的產(chǎn)出罷了。
當(dāng)然,LinkedIn 也不是第一天就明白成為開源社區(qū)的典范的美德的。正如 Perisic 所描述的那樣:“從早期的失敗中,我們學(xué)到的重要的一課就是你不可以將一個(gè)項(xiàng)目扔給社區(qū),然后就不再創(chuàng)新了。還有另外重要的就是,一個(gè)開源項(xiàng)目的成功與否取決于你如何參與到社區(qū)中來(lái)。”
Perisic 進(jìn)一步解釋,這也就是意味著,最為艱難的工作是在將剛剛將代碼開源后的那一段時(shí)間,舉個(gè)例子來(lái)說,LinkedIn 現(xiàn)在所總結(jié)的獲得社區(qū)的反饋非常的重要,以及確保項(xiàng)目的目標(biāo)是容易理解的。這都是經(jīng)歷了很多才學(xué)到的。不過,只為重要的還是團(tuán)隊(duì)的決定,如果你沒有準(zhǔn)備好將正在進(jìn)行的工作開源的話,最好是先不要將之開源了。
何苦呢?
這里就有很多人提出了疑問了,既然開放代碼已經(jīng)困難重重了,再加上來(lái)自社區(qū)增長(zhǎng)的壓力,何必這么折騰了呢?Perisic 進(jìn)一步點(diǎn)出了其中的奧義,雖然開源對(duì)于 LinkedIn 來(lái)說有讓價(jià)值在外部流動(dòng)的好處,但是最重要的一個(gè)緣由還是開源社區(qū)能夠影響到工程師。