互聯網IT技術發展至今,流傳廣泛的架構圖可謂成千上萬,但真正稱得上整個互聯網的底層基石的,或許只有唯一的“LAMP架構”——Linux操作系統、Apache服務器、MySQL數據庫、PHP/Perl/Python等編程語言。
這個架構的特征是——開源。開源技術吞噬了閉源軟件,又成為了商業軟件的基石,以此衍生的開源社區更是縮短了世界的邊界、開發的邊界,促進了全球化的軟件研發與創新。隨著近年來開源技術的快速發展,越來越多的企業、組織與開發者參與到開源之中。與此同時,開源治理逐漸進入人們的視野,成為開源領域的一大熱點話題。
12 月 18 日,騰訊云 TVP 與騰源會聯合主辦的 TVP 開源閉門會正式召開,本期主題聚焦開源的對內修煉:開源治理,通過三場開源分享與一場圓桌尖峰對話,為行業內的你我探索開源的“內功心法”。
內部開源國內外大廠實踐
會議伊始,我們請出了開放原子開源基金會TOC副主席、騰訊云TVP、騰源會導師 譚中意老師為大家帶來了題為《內部開源(InnerSoure)國內外大企業實踐》的主題演講,為與會者從內部開源的定義;起源、好處和難點;國內外情況;大廠實踐等維度出發,深入淺出地解構了內部開源的前世今生。
什么是內部開源?
譚老師表示,內部開源,是指從開源社區的軟件研發中吸取經驗,并將其應用于公司內部軟件研發團隊的一種軟件開放模式。簡單來說,就是在內部開放代碼,并接受外部門的貢獻,用國際內源基金會主席的說法,就是在內部實踐“Apache Way”。譚老師用一個淺顯易懂的例子解釋了內部開源的發生場景:
Team A使用了Team B的一個API服務,現在A有新需求 Team B做了排期,但不符合Team A的預期 現在Team A有如下幾個選項:
1.等待
2.自己做
3.找上級領導協調
4.內部開源
在這樣的場景下,內部開源無疑成為了一種最理想化的選擇。
內部開源的起源
事實上,內部開源并不是一個新鮮的事物,早在2000年,便有了最初形態的探索。世界知名的開源活動家Tim O’Reilly在1999年創立了咨詢公司CollabNet,給很多傳統企業提供開源的工具和咨詢,其中一個最典型的案例就是給HP做內部開源咨詢,將分散在HP多個部門的 120個打印機驅動軟件通過內部開源的方式,最后縮減到由10個。這是內部開源的緣起之時,但由于當時整個開源社區都還沒有興盛起來,內部開源慢慢歸為沉寂。
時至2015年,另一位開源專家Danese Cooper的出現,讓內部開源走向了復興。2015年,Danese Cooper受雇于PayPal,負責公司整體開源事務,她推行了很多開源的措施,其中一項就是內部開源。后來她還牽頭成立了InnerSource Commons開源社區,后來成為國際內部開源基金會,專門去推動內部開源的普及,到今年已經有7年的時間。
2021的當下,內部開源正當時!無論是國際上的微軟、谷歌、IBM、NASA等企業/組織,還是國內以騰訊、華為、百度為代表的一線大廠,都在發力內部開源。
具體而言,內部開源的好處有:
1.提升代碼質量
2.提高人員能力
3.提升員工滿意度
4.打破部門墻
5.減少重復造輪子
6.激勵創新
除此之外,在很多企業中,內部開源也成為了外部開源的孵化器,同時也能與DevOps文化相互促進,打造更開放、透明、協作的研發文化。
雖然內部開源很美好,但其也存在各種各樣的難題,譚老師總結了以下幾個亟待解決的問題:
1.對變化的普遍恐懼
2.“not invented here”恐懼癥
3.認為外團隊的技能不夠
4.不愿意做導師或缺乏做導師的知識
5.中層管理的沖突
國內外大廠內部開源實踐
分享最后,譚老師為我們介紹了包括微軟、谷歌、Bosch、華為、騰訊、百度等在內的大廠內部開源實踐。每家企業的內部開源實踐出發點各不相同,推進的步驟也各有差異,但都通過內部開源打造了良性的研發文化,推動了產品和技術的創新,減少了重復造輪子,提升了效率。
譚老師最后總結道,推進內部開源,首先要獲取CTO級別的領導支持,同時要去爭取內部工程師社區的支持,然后從單一項目發展到一個BU/BG,最后形成一個全面的內部開源文化。只有這樣,才能真正讓內部開源的文化沉淀下來,延續下去。
騰訊開源治理實踐
騰訊開源辦公室執行總監、騰訊技術委員會委員、騰源會導師 許勇老師,帶來了題為《騰訊開源治理實踐》的主題演講,系統性地介紹了騰訊在開源治理方面的體系化思考與全方位實踐。
推動開源創新發展的三股力量
許老師首先分析了開源創新發展的時代背景,這背后的推手來自于三股力量:政府、開源組織與企業。
1.政府,在頂層設計上,為開源創新的生態發展制定政策法規,以及指導和牽引;
2.開源組織,一類是開源基金會例如Apache、Linux基金會;一類是匯聚大部分開源項目托管而形成的開源社區,例如GitHub;
3.企業,無論是創新的開源技術的出現,還是在業務中的大規模應用和不斷進步都離不開企業。其中一類是科技公司例如Google,騰訊,華為等是開源最大的受益者也是貢獻者;另外一類是以開源項目為核心提供服務為商業模式的開源軟件廠商,典型的如紅帽。
而在這其中,企業的作用至關重要。許老師以云計算產業的蓬勃發展為例,剖析了這背后的原因。
隨著云計算和云原生的發展,在眾多科技公司、開源軟件廠商、基金會博弈過程中逐漸形成了下圖中展示的云開源生態,并且隨著時間推移還會繼續演進和變化。
可以看到,從底層操作系統,到IaaS、PaaS再到云原生,每個細分領域都衍生出了眾多的頭部開源項目,隨著被科技企業和軟件廠商的大量使用、迅速推廣,并通過自身的不斷迭代進步形成了事實上的行業標準,比如Hadoop、K8s。與此同時,企業也成為了開源軟件的重要貢獻者,很多開源項目最早就誕生于企業內部,比如Hadoop源自Yahoo,K8s來源于Google。企業不僅是開源技術最大的使用者,同時也是開源技術最大的貢獻者。
騰訊開源發展歷程
許老師向與會者梳理了騰訊在開源領域的十年發展歷程。從2010年至今,騰訊的業務發展受益于開源技術,也回饋了開源社區。這其中的關鍵節點是2018年騰訊“930”變革,把開源協同作寫進了變革戰略,讓開源創新在騰訊變得越發關鍵。此后,騰訊技術委員會的成立,“開源,協同,云上生長”的新代碼文化的誕生,騰訊對外開源管理辦公室的設立等等,都讓騰訊開源在公司內外部引發高度關注。
截至目前,騰訊已經成為全球開源貢獻前十的企業,覆蓋了包括AI、大數據、云原生、移動開發、Web開發等五大技術領域,GitHub官方賬號下收獲超33.5萬Star,貢獻110余個開源項目,開源貢獻者人數超2000人,并在多個主流的國內外開源基金會中承擔重要角色。
騰訊開源的新變化
許老師表示,2021年騰訊開源有四個非常明顯的變化:
1.開源協同常態化
2.開源技術核心化
3.開源貢獻多元化
4.開源人才年輕化
許老師分析道,騰訊開源的成績,可以歸因于930變革以來有了頂層設計和自上而下的推動,使得騰訊開源的治理形成由內到外和由外到內的雙向流動,內部開源和對外開源相輔相成的良性循環。
1.內部開源內循環,通過內部代碼開源、開源協同的方式,減少重復投入、提升研發效率、降低運營成本。通過“開源內循環”,孵化出的新秀項目以及畢業優秀的開源項目,然后可以輸送至外部開源社區。
2.外部開源外循環,是以產品、社區、商業的形式進一步創造社會價值及商業價值、促進技術發展及科技創新、提高研發質量和降本增效。通過“開源外循環”,引入外部優秀的開源項目,通過外部的新鮮血液促進內部技術持續的創新。
在這個過程中,形成了騰訊開源治理在組織、工程、文化、合規四個方面的深度實踐,匯聚的點滴力量也積水成河最終讓騰訊開源實現了從量變到質變的歷史性轉身,開始注重社區的治理和生態的建設。
在騰訊“科技向善“的使命和愿景激勵下,騰訊開源也在探索和嘗試更大的社會價值和意義,例如在2020年的全球抗疫過程中,騰訊開源也參與其中,貢獻了開源的力量。今年,騰訊開源還在開源人才培養方面有了一些探索和實踐。
Apache基金會項目從孵化到頂級畢業
Apache軟件基金會Member、ASF IPMC Member、騰訊云TVP、騰源會導師 郭煒老師帶來了題為《Apache基金會項目從孵化到頂級畢業》的主題演講,從開源軟件基金會的視角為參會者帶來了不一樣的體驗。
開源項目的初心和初衷
郭老師表示,初心和初衷在對待開源上,其實是一個態度和第一步的問題?;仡欉^去的軟件開發模式,無論是瀑布式開發還是敏捷開發,都是從需求出發,到產品定義到技術開發再回到用戶需求的模式。而開源是下一代軟件開發的核心,從社區出發,用戶既可以是需求的提出者,也可以是需求的實踐者,同時還能幫助更多的人用上,打破了軟件開發的邊界。基于這個視角,郭老師指出,開源的初心就是讓大家在全球范圍內不去重復造輪子,凝聚全球頂級智慧,打破技術的邊界,把全球科技拉到同一平面。
然而開源畢竟不是慈善,初心決定能走多遠;初衷決定你能不能啟動起來,盡管結果可能與初衷會不相同。郭老師總結道,做開源的初衷無非以下幾種:
1.炫技
2.獲得感
3.聯合解決問題
4.技術影響力
5.技術品牌
6.商業
7.KPI
“只要初心足夠高遠,初衷是什么并沒有關系,因為你把項目啟動以后,就會要不停地打磨。無論哪一種方式,只要你愿意擁抱開源,我覺得都值得鼓勵。”
如何定義優秀的開源項目
郭老師總結了定義優秀開源項目的四個關鍵因素:
1.定位:一句話說明你開源項目是什么,痛點明確,邊界清晰;
2.產品:產品需要有自己的調性,要像“火鍋”一樣做開源;
3.團隊:核心團隊驅動,吸納社區成員,保持團隊開源理解力和韌性;
4.技術:重點關注架構設計,不要癡迷于性能,專注于創新和社區。
由此引發對開源創新來源的探討,郭老師表示創新來源于很多方面,有的人認為技術大牛會是最重要的出口,但實際上用戶反饋、社區內開發者、社區外專家都是創新的源泉,開源,發動的是群策群力的力量。更進一步,中高級的社區用戶和貢獻者的力量遠遠大于1-2個技術大牛,否則根社區自身都會陷入不穩定狀況中。
因而,一個健康的開源生態尤為關鍵。開源基金會為開源項目提供了很多支持,首先就是足夠且專業的導師幫你梳理開源項目,其次是第三方中立的姿態幫助你的開源項目真正地全球化,第三是給予生態內的合作與聯系,比如多個項目之間會聯合Meetup,相互支持,相互發現和幫助。
進入Apache孵化器的流程
Apache基金會的孵化流程看似簡單,從Proposal到Discussion到Voting不過三步,項目畢業的時候也是提出Discussion,全球的Apache Member來投票決定畢業與否。然而這看似簡單的流程背后,每一步都可能是很多開源項目最難跨過的檻。
郭老師指出,進入孵化器最重要的3件事情分別是:
1.開源項目(定位、調性、團隊、技術)
2.軟件所有權(包括公司SGA,代碼情況)
3.Apache 的Mentor和Champion
而這其中又重點涉及到了Apache導師們如何看待你的開源項目的問題。這背后的整體邏輯和投資人邏輯類似,導師們投入的不是金錢而是時間,個人喜好不同,資源不同,可能依據也各不一樣。郭老師以自己的判斷舉例,他個人最看重這幾個方面:
1.團隊
2.產品本身定位,當前的狀態
3.對于開源的初心和初衷
一個具備潛力的開源項目,要進入Apache孵化器也面臨諸多的難點,首先要解決的是找到足夠的Apache Member背書;其次是要厘清軟件的歸屬權,到底歸個人還是公司;第三,是否獲得組織長期的支持(CCLA);最后,項目的名字要求全球唯一。
向頂級項目進軍——Apache Way
“Community over code”,社區重于代碼是最為人所知的Apache Way。但其實除此之外,Apache Way還有六大關鍵特征:
1.精英治理
2.同儕社區
3.共識決策
4.開放溝通
5.責任監督
6.廠商中立
很多開源項目普遍都有“用戶運營”的角色或者職能存在,而郭老師個人認為優秀的開源產品不需要運營,只需要布道就足夠了。布道的方式也可以歸納為兩種,一種是以 DolphinScheduler 為代表的“農村包圍城市”模式,另一種是以ClickHouse為代表的“城市輻射農村”模式。
對于開源項目而言,針對開發者的“運營”工作尤為重要。首先你需要讓外部開發者成為你的產品用戶,才能慢慢將其轉化為你產品的開發者。
最后,郭老師指出向Apache頂級項目進軍最重要的事情是——堅持,堅持,堅持!一般一個孵化器項目畢業在1.5年-2年,期間會經歷很多事情:現實和初衷不一致;團隊KPI拿到之后;公司不支持了;社區分裂了…...只有牢記自己開源的初心,這條路才能走得更長、更遠。
分享最后,郭老師以SeaTunnel和DolphinScheduler為例,解析了一個開源項目在Apache基金會中孵化所遇到的各種問題與挑戰,最終成為頂級項目的完整歷程。
“整體來講,開源不是你贏我輸的零和博弈,而更像一個無限的游戲。開源會吸引越來越多的人加入,只要有一個人在里面不停地玩,它就一定可以進行下去。”
圓桌對話丨社區重于代碼:如何建立繁榮的社區生態
本場圓桌對話聚焦于如何建立繁榮的社區生態,由中國電子技術標準化研究院木蘭開源社區運營負責人、騰訊云TVP、騰源會導師 耿航老師主持,邀請了開源社理事&聯合創始人、Apache基金會Member、騰訊云TVP、騰源會導師 劉天棟;騰訊開源聯盟主席、騰源會導師 單致豪;支流科技CEO、Apache基金會Member、騰訊云TVP、騰源會導師 溫銘。
劉天棟:什么是好社區,如何建立好社區?
從我個人觀點出發,我認為可以歸納總結為以下幾個方面:
1.人:以人為本,凝聚成社區
2.道:社區擁有共同的愿景和使命感
3.法:具備良好的治理原則
4.術:與時俱進,不斷優化組織流程與服務
5.器:所有社區都要有價值的產出
如果一個開源社區能夠深入思考以上所說的人、道、法、術、器幾個方面,那么具備了這些原則的社區就有機會成為一個好的社區。
對于社區生態從0到1的建設,我有三點建議:一是多看多學,借鑒成功社區的方式,找到自己的方式。二是多多參與其他開源社區,在貢獻和參與中學習,這是更快更有效地建立社區的方式。三是社區跟代碼是一樣的,不要一開始就追求完美,憋大招,而是要快速更新迭代,用最小可行方案的方式來建立它,同時避免獨裁者的社區治理模式,敢于授權和放手。只有不完美的代碼和項目才有可能成為一個不斷成長和進步的社區。自己當英雄和代碼英雄不重要,幫助更多的人成為英雄,這個社區才可以持續。
單致豪:國內開源現狀與機遇、挑戰
基本上今年Apache基金會孵化的項目都來自中國,國內的開源項目已經在往國際化方向走。GitHub上中國開發者的數量已經達到全球第二的規模,包括中國企業的貢獻在世界范圍內也開始排到前列。整體而言中國開源從以前的學習和使用,到現在參與創新,已經是處于一個快速發展的階段。
面臨的挑戰也有很多,比如很多開源項目在捐贈時遇到的開源許可證的問題,知識產權的風險等。另外在開源的過程中,包括在個人發展中都存在導師專業指導的缺位,同時也得不到一些資金和資源的支持,陷入單打獨斗的局面,競爭力不足。這個背景也是騰訊成立騰源會的初衷,承擔橋梁的作用幫助開源項目,為開源愛好者和作者提供學習交流、孵化指導的平臺。在未來,騰源會承擔一個拍檔的角色,借助資金、云資源等,為開源項目提供各類支持。
溫銘:開源運營經驗談
早年間我們覺得Apache運營的模式在海外已經得到了很好的驗證,我們想能不能在中國的開源項目上有自己的軟件基金會,通過自己親身參與,從零搭建一個軟件基金會去更好地熟悉整個軟件基金會從募資、慈善到整個治理結構的全流程。我們希望自己能親身參與進去建立一個中國自己的軟件基金會,但受困于當時國內相關政策條款的不完善,最終我們選擇在中國香港做相應的嘗試。
我們在一年多的時間里,向香港稅務局遞交了各種資料,類似于我們要進Apache孵化器的時候,要寫一個說明,我為什么要成立這個基金會,我的宗旨理念,我的計劃是什么等等。最終成立以后相對運行還比較順利,反而最難的是老羅給我們捐贈的100萬怎么接收的問題,前前后后也跑了一年左右的時間。這個過程就是讓你對國內及中國香港的各種慈善、稅務的條款非常清晰的一種體驗,這是我們在港建立開源公益基金會的經驗。
關于在APISIX社區運營中踩的坑,我個人覺得最大的坑是發展得太快了,很多的PMC并沒有完整參與過整個孵化的過程,導致很多人還沒完全理解Apache Way的時候,項目就已經畢業了。對商業化公司而言也是如此,我會發現成立公司以后跑得太快了。在這個時候一定要回頭補足落下的東西,我現在做的很多事都是在填補以前的坑。
開源社區與商業化
劉天棟:我個人對開源的理解在于,開源是一種社會生產力進化的模式,一種區別于其他主導模式之外的自下而上、去中心化、開放共享與協作、以人為本的社會生產力解放的模式。這種模式跟其他的主導模式可以形成相輔相成的完美互補。開源社區就是開源生產力落地實踐的共同體,因此,開源社區與開源商業化完全可以相輔相成。
我個人認為這背后還有很多工作要去解決,讓商業化跟開源社區能夠做到相濡以沫,而非因 KPI 而結合,因了解而分離,最后相忘于江湖。
單致豪:開源和商業化的結合其實是非常緊密的,大家可以關注目前國內開源初創企業的融資情況,就可以看到資本對開源項目的重視度是很高的,這本身就體現了開源項目的商業價值所在。另一方面,大家也可以發現,很多開源基金會自身也處在一個入不敷出的狀態,這說明做開源這件事也是需要燒錢的。
這背后我們重點要關注的,是開源與商業化結合的模式,如何去通過商業模式實現盈利,如何提供服務的模式,如何通過PaaS的模式做出商業化產品,如何招募人才、尋找資源、搭建技術架構等等,都是需要關注的重點。
溫銘:我個人覺得目前國內很多開源創業從現狀來看,不管是開源項目還是資本投入都會有一點過熱的感覺。商業公司最終的目的一定是要盈利,而資本也許并不能給開源創業公司太久的等待時間。
我個人認為開源其實并不是一種商業模式,開源只是說我能夠用最低的成本快速吸引開發者的注意力與使用,但如何將這些貢獻者的使用吸引到付費的版本上去,這就是商業上需要考慮的問題。如何組建銷售團隊、產品團隊、SaaS服務等等。我們還在一個剛開始探索的階段,前途光明,但道路曲折。
圓桌交流結束后,本場主持人耿航老師感慨頗深,他總結道:其實無論是社區還是基金會,都需要不斷地持續迭代、不斷地完善自身,才能最終成為一個相對比較理想的平臺。而在前面提到的方方面面中,最核心的還是人。開源項目在前期選人的環節非常重要,因為總會有一些一時頭腦發熱想要參與,或者因為各種不純粹的目的想要分一杯羹,但最終沒有堅持下來,這樣對開源項目的影響也非常大。
寫在最后
開源不是一場認真的消遣,也不是一個人的狂歡,它既可以是一個開放投放、協作共享的崇高理念,也可以是一個八方來賀、資源重組的商業契機。
國內的開發者對開源的認知正在迅速革新,從產品使用到代碼貢獻再到社區維護,這套開發者為本的發展路徑也在被逐漸接受。當開源文化、社區文化在各大企業、高校得到廣泛的傳播,本土開發者參與開源的人群也會越來越龐大,未來每一天對中國開源而言可能都是新的一天。
TVP 自成立之初,便希望能夠“用科技影響世界”,讓技術普惠大家,踐行科技向善的初心與本心,這何嘗不是另一種意義上的“開源”呢?
TVP,即騰訊云最具價值專家(Tencent Cloud Valuable Professional),是騰訊云授予云計算領域技術專家的一個獎項。TVP 致力打造與行業技術專家的交流平臺,促進騰訊云與技術專家和用戶之間的有效溝通,從而構建云計算技術生態,實現 " 用科技影響世界 " 的美好愿景。