導讀
剛剛過去的5月,字節跳動在內部郵件中正式官宣了“開源委員會”的成立。其實,針對開源成立專門的組織機構,對國內的大廠來說已不是什么稀奇事,比如阿里巴巴早在2015年之前就成立了開源委員會,騰訊在2019年正式成立開源管理辦公室,其他巨頭如華為、百度同樣早就成立了“開源辦公室”。
至于國外的互聯網巨頭,他們在設立“開源辦公室”(Open Source Program Office,簡稱 OSPO)上,比上面提到的國內大廠還要早,比如,早在 2004 年,谷歌就已經成立了自己的OSPO,這也是最早成立的一批OSPO。
跟這些大廠相比,字節的開源委員會的到來顯得有點“晚”。
越來越多的公司成立OSPO表明,企業對開源越來越重視。而且,OSPO正在從IT公司向國外的大學、政府和民間機構進行外溢,OSPO在國外逐漸成為一種潮流。
但是,大部分人對OSPO認識卻又少之又少。根據The New Stack、linux Foundation Reasearch和TODO(Linux基金會名下一個專門致力于普及OSPO的工作組)在去年9月發布的一項調查,沒有成立OSPO的企業中,有35%的企業表示沒有考慮過這件事,有28%的企業表示他們沒看到成立OSPO所帶來的商業價值,更有19%的企業表示他們從未聽說過OSPO這個概念。
所以,我們有必要先弄清楚國內大廠設立OSPO的前因后果,才能對OSPO在我國的發展,有更客觀深入的認識。
大廠為何紛紛成立“開源辦公室”?
開源運動興起之初,眾多科技巨頭采取了堅決抵制的態度,比如,據說當初微軟曾禁止員工參與和閱讀開源代碼。究其原因,是大型科技公司與開源社區之間有著商業價值觀層面的差別和沖突。開源倡導開放、共享的模式,對商業軟件授權的盈利模式構成了挑戰:畢竟,傳統軟件公司的成功在于閉源,而開源的軟件是賣不出價錢的。
但隨著IT界逐漸步入ABC(A指的是人工智能AI,B指的是大數據Big data,C指的是云Cloud)時代,IT公司的商業模式也發生了變化,不再像以前那樣單純依靠賣知識產權或者是軟件,賣服務逐漸成為重要的營收來源。賣服務這種模式牽涉的范圍更廣,這就促使IT公司在標準上要更有主動權。
當前的IT界,已經不是像過去一樣由很多公司一起成立一個標準規范,而是誰先做出來的開源項目被廣泛采用,誰就在標準上更有話語權。
在51CTO的技術群里,一位名為“紫竹”的網友也持有這個觀點。他認為,企業開源是為了成為事實上的標準,掌握了標準話語權,就掌握了市場主動權、主導權。他還舉了一個例子來說明這一點:谷歌自定義了一個格式KML,谷歌投資加入了GIS行業的OGC(開放地理空間信息聯盟Open Geospatial Consortium的簡稱,是一個非盈利的國際標準組織,它制定了數據和服務的一系列標準,GIS廠商按照這個標準進行開發可保證空間數據的互操作)以后,KML成為了OGC的標準之一,以后的GIS產品幾乎都要實現對KML格式的支持。如果KML不是OGC的標準之一,那就只有谷歌自己支持這個標準,谷歌地圖、谷歌地球等產品就得不到其他廠商、開發者的支持。
在國內,企業開源還能獲得其他好處。51CTO技術群里,一位名為“任霏”的網友指出,開源項目可以免費使用倉庫、CI/CD、安全掃描、IDE工具等服務,非開源項目就需要花錢。
這是IT巨頭從反對開源到擁抱開源,態度發生180度大轉彎的一個重要原因。
更何況,就算企業自己不做開源,也不能真的阻止員工接觸開源。開發者參與開源,不光是基于開放、共享的“情懷”,還有一個相當重要的因素,就是他們能在開源中學到東西。
國外一個名叫“Macrae”的網友說,他在參與開源以前,從未寫過PHP或HTML/JavaScript,不知道SVN和后來的Git是什么。
阿里巴巴的技術副總裁賈揚清也認為,開源是一個很好的練兵場,開發者可以通過參與開源鍛煉自己的技術能力,并且清楚知道自己的能力在什么樣的層次上;另一方面,開源社區也會幫助開發者提高代碼編寫水平、設計能力和系統開發能力,這是一個雙向促進的過程。
雖說企業做開源可以依靠工程師的個人興趣來驅動,比如阿里巴巴早期的Dubbo、Fastjson、Druid、Sea.js、Arale開源項目,字節的Rcproxy、Modern.js、CloudWeGo、BytePS、Fedleaner等開源項目,都是靠內部員工自發推動的,但僅憑工程師的興趣和熱情是不夠的,不加以規范和約束往往會造成問題。
去年10月,抖音前端團隊宣布開源其設計系統和UI庫Semi Design,隨后有網友指出Semi Design的代碼中出現了友商同類產品的痕跡,項目陷入“抄襲風波”。雖然抖音前端團隊工程師很快發表了致歉聲明,但事件已經在開源社區引發熱烈討論。接著到了12月,2021年12 月,抖音的海外版TikTok因為違規使用 OBS等源代碼,也被推上了輿論的風口浪尖。
一系列的事件這讓字節意識到,做開源需要引入公司級的策略、規范和流程機制,全面地推進開源合規流程,才能避免重蹈覆轍。
另外,隨著公司的規模越來越大,在有更多項目開源或計劃開源的情況下,如何更有效地投入資源、更好地支持開源項目的發展,這也是開源委員會要達成的目標。
其他大廠成立OSPO的初心也差不多,比如騰訊內部成立了開源管理辦公室,下設項目管理委員會、騰訊開源聯盟和開源合規組三大組織,旨在自上而下地傳遞騰訊開源策略,自下而上地落地開源技術生態,同時,通過開放的開源評審平臺,孵化和培育優秀的自主開源項目。
有了OSPO,開源就萬事大吉了嗎?
大廠成立OSPO,初心是希望建立一套成熟的方法論幫助開發者更多地參與開源,貢獻開源,并從組織上提供一系列支持與保障,但這不意味著有了OSPO,企業的開源之路就能順順當當地、自然而然地走下去。
就拿國內比較早成立OSPO來說,其在成立了OSPO后相當長的一段時間里,開源之路進展緩慢甚至停滯:阿里的第一個開源項目Dubbo,甚至從2014年之后,兩三年時間都沒再更新過。這主要是因為,在這前后,阿里巴巴集團于紐約證券交易所正式掛牌上市,股票代碼“ BABA ”。隨后,阿里全力發力移動互聯網,各項業務進入全面發展階段,同時阿里也進進行了組織架構的調整,以便內部開發者能將更多精力投入到業務研發中。
直到2017年,阿里才正式宣布將開源提升到集團戰略高度。阿里之所以重新開始重視開源。很重要的一個原因是——客戶的需要。2017年開始,阿里云的表現強勢,阿里云的一些客戶在上云之前習慣了使用Dubbo,希望能在使用阿里云之后能繼續保持,這才讓阿里巴巴在開源層面的聲音越來越多。
從阿里的這個案例中,我們可以看到,只有企業的利益和開源有很大的交集,企業才會有動力持續推進開源項目。
如果只是出于應激反應,只是模糊地覺得開源是未來軟件發展的趨勢,哪怕成立了OSPO,建立了一套規范和流程機制,也不能確保公司的開源不會流于表面。紅帽公司將那些僅僅將代碼公開到一個公共倉庫的開源方式戲稱為 “把代碼砸到墻上(throwing code over the wall)”。
當然,如果把開源僅僅理解為做技術宣傳,以吸引人才加入或者搶占市場,也有問題。
也許,云原生計算基金會首席運營官和Twitter前開源項目負責人Chris Aniszczyk曾說過的一句話,才是對企業開源的最好注解:“你絕不希望是自己開源項目的唯一貢獻者。你是期望讓公司以外的人為你的開源項目做出貢獻的。歸根結底,你永遠沒辦法雇傭世界上的所有頂尖人才。”
換句話說,與外界人才保持溝通才是開源的精髓所在。