如何打造出全球化開源項目
【Tech Talk】由京東技術學院主辦,該項目是面向京東集團全體技術人員開設的最高端的交流分享平台,我們會定期邀請內部技術高管、外部行業專家,為京東技術人員分享最前沿的技術趨勢、最優秀的行業實踐,以拓寬員工視野、增強技術文化氛圍、助力技術轉型戰略落地。
8月22日下午3:00-6:00,京東技術學院【Tech Talk】項目邀請了吳晟(Apache SkyWalking創始人)進京東,為京東工程師們做了關於」如何打造出全球化開源項目」主題的分享,大家學習熱情高漲,現場針對分享內容討論熱烈,掌聲陣陣,線下+線上參訓人數達到了1000多人。
(吳晟,Apache SkyWalking創始人)
Apache,作為全球最為著名的基金會之一,孵化出大批的全球頂尖開源項目,從常見的Tomcat, log4j,到整套大數據生態Hadoop, HBase, Spark,Impala,以及知名的容器管理平台Mesos。中國開源項目,起步晚,全球化更是難。少數的幾個Apache項目都是在公司內部長時間孵化成熟。SkyWalking是第一個,也是目前唯一一個由個人項目起步走進Apache的中國項目,吳晟老師作為SkyWalking的創始人,給京東小夥伴分享,SkyWalking是如何一步步發展起來,靠中國開源社區支持初現規模,並走進Apache基金會。
吳晟講到:「目前來自中國的apache頂級項目,除了skywalking之外,基本都是頂級公司所貢獻的。也許大家有誤解,認為只有頂級公司的項目才能進入apache嗎?其實不然,個人的項目也能走到這一步。
skywalking項目走上開源之路的開始是沒有大公司作為背書的,它非常注重和其他項目的合作,除了apache之外,也被划到了cncf的landsacpe中,和zipkin社區一直在保持合作的關係。
個人開源項目,走向apache,需要做到以下3點:
1.推廣:開源項目最初推廣是非常重要的工作,在推廣之初,需要主動去影響周圍的人,讓他們嘗試去用,看看有什麼問題是需要解決的,從技術,設計,以及對事情本質的理解上來說,是非常重要的反饋。因此,在github上的前100 star是很重要的,如果有一兩個人給你正向的反饋,則說明這個項目是有一定的價值,否則就需要去思考,自己的開源項目是否有其他的同質項目。
2.找尋貢獻者:項目在github上初具規模時,需要找到第一個貢獻者,這證明項目對其他人來講師有一定吸引力的。
3.得到支持者:項目進一步的發展就是需要有公司以及社區作為支持者。對於skywalking來講,最初支持的公司就是oneapm,社區則是opentracing。在進行了國際化交流之後,可以收到更多的反饋,同時也會收到更多的來自於社區的驅動,比如issue列表等。issue多了之後,開源者需要決定項目的發展路徑,需要取捨,skywalking的做法是盡量調整內核,讓他支持更多的第三方貢獻。
項目成熟度的標誌就是社區驅動,這也是apache項目的主要參考。
skywalking在2017年12月份進入apache的孵化器,核心的要求是多元化社區,很多issue是由社區的貢獻者提供的。有更多時間參與項目的人,會組成提交者或PMC成員,是否有足夠的人構成提交者的team,並且這些team成員是否足夠多元化,是很關鍵的,另外就是要培養用戶定位問題和提交問題的能力,培養社區依賴力量貢獻的可能。
多語言和自動探針是skywalking的核心價值,大量的探針是由社區的成員共同完成的,不是個人或者幾個PMC就能解決的。
github的stars數是大家比較關注的指標,開源項目基本都是一個倒弧線,隨著每一次案例的分享,版本的release,都會帶來stars的提升。
目前的skywalking會和envoy,istio來集成,skywalking6.0可以直接從istio中獲取metric。skywalking漸漸的被推向了雲原生應用的舞台。
關於程序員做開源項目的動機,吳晟還講到:「linux基金會提供了一項調查數據,開源的程序員能更加容易找到適合自己的技術組織,因為參與開源的程序員更加主動,並且具有更加有效的設計和社交能力。在西方,開源項目參與者最終產出價值會高於一般的工程師」
當然,開發者參與開源項目,並不僅僅為了錢,它還可以獲得開拓的全球化視野、高效語言溝通能力、技術的成就感等,而這些能力的提升最終可以轉化為價值。
最後,吳晟和大家分享了,京東內部的開源項目sharding-sphere,他主要在裡面負責多元化社區的貢獻,希望有更多的人參與這件事情。sharding-sphere與skywalking相比,更加容易參與,數據分片比apm會更加容易理解。
skywalking一直在為sharding-sphere做apm的相關事情,為它提供observabilities的能力。observabilities提供可見性,讓應用在雲原生的環境下提供更加清晰的拓撲和tracing的相關信息。


TAG:咚咚小報 |