| 作者:徐九
| 轉載自:SegmentFault
|?編輯:賀鑫
| 責編:王皓月
8 月 16 日,ALC Beijing 的首次線下沙龍活動 —— 《開源到底有多難?》在微軟大廈如期舉行。本次沙龍主要是分享開源開發(fā)經(jīng)驗、探討如何讓開源項目更加茁壯成長,以及分享 ASF 管理和運作開源項目的成功之道。
Apache 軟件基金會成員、Apache 軟件基金孵化器導師、ALC Beijing 發(fā)起人姜寧;Apache Flink 社區(qū) PMC member 李鈺;Apache DolphinScheduler 項目負責人、易觀 CTO 郭煒;ASF Member、阿里巴巴 Tech Lead 孫金城(花名:金竹);Apache APISIX PMC member、深圳支流科技創(chuàng)始人溫銘;ALC Beijing member、開源布道師李建盛分別在本次活動中進行了分享與探討。
Apache DolphinScheduler 項目負責人、易觀 CTO 郭煒在活動中以《開源,不是天才的甜點,而是勤奮者的盛宴》為題進行了分享,以下為整理后的文字版本。
《開源,不是天才的甜點,而是勤奮者的盛宴》
我們的開源項目 Dolphin Scheduler 在去年的 8 月 29 日,正式加入的 Apache 孵化器。在加入的時候,中國一共有 16 個開源項目在 Apache 中,并且大部分都是 BAT 這樣級別的大廠或者清華之類的名校項目。
我們這樣一個以技術起家的中型公司是如何能夠把一個開源項目申請進 Apache 的呢?今天我們就來講一下這個“屢戰(zhàn)屢敗,屢敗屢戰(zhàn)”的故事。
Dolphin Scheduler 不是易觀第一個開源的項目。易觀第一個開源的項目叫 Backquarter,一個跨云的 Kafka 同步程序。
我們在完成了這個程序開源以后很得意,我還特意給它起了名字「Backquarter」—— 四分衛(wèi)。寓意就是這個工具就像是橄欖球賽場上的四分衛(wèi),可以搶到球快速帶著球穩(wěn)定的傳送給前鋒。
我還專門的為了它去各種技術大會大肆宣傳,“一頓宣傳猛如虎“啊。別說,還真有效果,在幾周時間帶來了 13 個贊,12 個 fork!
因此我們開始反思,一腔熱血、每行代碼都付出努力,并且還進行了開源,為什么沒人用呢?我也不知道問題出在哪,所以當時請教了無數(shù)的人。
有一次請幾個大咖邊吃火鍋邊探討,一個產(chǎn)品大咖指著火鍋和我說:
“你知道為什么火鍋可以流傳 1700 多年么?它就是一個產(chǎn)品,有自己的核心理念和調性,熱氣騰騰鍋子,精髓的羊肉、麻醬,還方便易做。而你這東西只是一爐子碳,不是一個產(chǎn)品。你的產(chǎn)品理念是什么?沒有明確的產(chǎn)品理念,誰會一直用你這個東西?雖然開源不付費,但是同樣需要別人付出努力來使用你的產(chǎn)品,沒有產(chǎn)品理念,你就用炭爐子烤個手就算啦。”
我恍然大悟:原來,開源不光是貢獻代碼,更需要具有產(chǎn)品的核心理念和“調性”。
GitHub 上有成千上萬個開源項目,大家可以看一下他們的最終更新時間,大部分都爛尾了。開源不只是把代碼放上去就可以了,開源要有產(chǎn)品的調性,才可以有生命力,像火鍋一樣有號召力。
就像 Clickhouse 社區(qū)的宣傳語“Clickhouse 引擎就是快”,或者是像 Apache Dolphin Scheduler 的“工具選得好,下班回家早;調度用的對,半夜安心睡“一樣,永遠有一個有明確的產(chǎn)品核心理念和“調性”,讓它可以一直傳播,才能召喚同道者加入你的陣營。
所以說,開源,產(chǎn)品才是基礎啊。汲取這次教訓之后,半年后我們基于自己的使用場景,精心打磨了一個 API-Gateway 開源組件 Kong-plus。它是基于 Kong 進行二次開發(fā),具有良好的功能和操作界面,可以幫助小白用戶迅速的建立起一套高并發(fā)的 API Gateway。
立意很明確吧?調性也是更貼近小白用戶,甚至連界面我們都專門找 UX 設計了一下。開源后我們也嘗試自己傳播了一下,但效果仍然很差。我很苦悶,用了公司這么多資源,什么都沒做出來。
后來我找我好朋友 Apache Kylin 創(chuàng)始人 Luke 聊天,他跟我分享了一個觀點:
“開源是什么?你沒有開發(fā)者,怎么能叫開源呢?開發(fā)者是土壤,開源代碼是小芽,沒有土壤,芽也會枯萎的。你的代碼別人是讀不懂的,你需要做好文檔,做好社群運營,有土壤了,你的芽長大了才可以長成參天大樹。“
我再一次頓悟了:“開源,不是代碼開源,真正的開源,是你找到你的第一個開發(fā)者。”
“Open Source Starts with your 1st Contributor“,這和 Apache 的宗旨“Community Over Code”一脈相承,代碼爛了可以重寫,而社區(qū)太差,再好代碼的也會付之東流。
但我們從來沒有運營過開發(fā)者,為了我們的芽有好的土壤,我開始帶著 6 個“羅漢”,搞各種社群各種 Meetup,Clickhouse、Presto、Hbase 等等圈里的小伙伴都覺得我瘋了,是不是要做個大數(shù)據(jù)峰會和業(yè)內的技術峰會分杯羹。
這一做就是3年,有些很成功,有些不成功。但我在一邊給社區(qū)貢獻的同時,也收獲了3個重要認知:
第一個就是社區(qū)貢獻。我們真的可以不懂代碼,但是要持續(xù)貢獻。以 Clickhouse 為例,我真的看不懂俄羅斯黑科技的 CPU 指令集中的那些代碼,但并不妨礙我作為 Clickhouse 中國社區(qū)組織者的和推進人。現(xiàn)在連 Linus 大神,都說他已經(jīng)不是程序猿而是激勵他人開發(fā)的鼓勵師了。
第二就是運營社區(qū)。你要尊重給你社區(qū)扔臭雞蛋的人,他們正是因為需要你,才會在社區(qū)里有不同的意見和聲音,愛和恨都是強烈的情感,而冷漠不是。開源社區(qū)最怕的是郵件列表和微信討論群沒有人說話,所有人都很冷漠。
第三,開源社區(qū)就像是土壤,需要產(chǎn)品經(jīng)理、開發(fā)者持續(xù)加料,持續(xù)的貢獻,開源的小樹苗才可以長成參天大樹,凝結出果實,讓更多的人可以分享。
有人說“在中國只有免費,沒有開源”。中國只有 16 個項目可以上 Apache,而且背后都是大廠在支撐的,民間沒有開源精神。很多人來了把樹就鋸走了而不去耕,所以,在中國做開源都只有“霧霾天”。
姜寧老師剛才分享了一張圖片,我國作為全球最大開源消費國,ASF 在國內有廣泛的群眾基礎,但全球的 300 多個項目中,只有 19 個項目來自中國。但他沒分享另一張圖,就是中國全球的貢獻者里,我們下載的最多的但貢獻是倒數(shù)的。
但“中國沒有開源”這個觀點我是不愿意相信的。我相信這一代年輕人,不僅僅是程序猿,而是越來越多的人,愿意參加到各行各業(yè)的非盈利團體當中去,貢獻自己的想法、代碼、知識,讓這個世界變得更加美好。
我相信哪怕我們這一代人看不到開源的春天,我們的下一代人也不應該再看到開源的“霧霾天”。于是我們就積攢了更多的力量,籌備了一年,把我們自己內部使用的一個產(chǎn)品 —— Dolphin Scheduler 進行了開源。
Dolphin Scheduler 是“分布式易擴展的可視化的 DAG 工作流調度系統(tǒng)”,它的目標很簡單,就是“高效、便捷、準確、可靠”的把這些數(shù)據(jù)和任務,直接到達它最終的目的地。我們自己的 slogan 叫做“工具用得好,下班回家早;調度用得對,半夜安心睡”。
它有很多很強大的功能,第一個功能可視化的 DAG 圖,如果做過大數(shù)據(jù)的小伙伴知道,如果你要做一條復雜的調度系統(tǒng)時,很頭疼的是怎么做這兩個之間的 Dolphin,而我們提供的是可視化的方式,讓你很容易的把這個依賴和觸發(fā)做起來。
第二個是調度的高可用。現(xiàn)在目前有很多的調度工具,但很少有分布式的調度,能保證某臺機器宕掉時不影響整個系統(tǒng)。現(xiàn)在大部分系統(tǒng)發(fā)生宕掉的情況時,半夜就會接到運維電話,然后起床去把東西修復好。所以我們的 slogan 里才提到了一句“安心睡”。
第三個,我們有各種各樣的語言類型,自定義查檢。第四個是任務自依賴。第五個是排錯機制。
總體來講,我們有八個比較大的功能。我們有全部的優(yōu)先級,還有局部的優(yōu)先級、參數(shù),都可以使用。對于“安心睡”,有依賴、監(jiān)控、報警這些功能。
做銷售的小伙伴,最頭疼的就是補數(shù)、重跑,我們也提供了各種各樣的補數(shù)規(guī)則,可以通過各種方式進行察看,直接在界面上就可以把實驗做好,操作也更方便,每天能支持非常多的數(shù)據(jù)量級的東西,穩(wěn)定的跑起來,這是 Apache(S)的功能。
我們的開源項目目前在國內用得蠻多,像 IBM、美團、360,銀行類的包括工行、平安、招行,也有各種各樣的互聯(lián)網(wǎng)公司在用,包括芒果TV、鳳凰、E代駕等等。
我們在國內也有非常多的用戶群,現(xiàn)在有 7 個微信群,三千多人,跟我們做互動,我們自己的貢獻者,也分布在各種各樣的公司里,有 BAT 的、有傳統(tǒng)公司的、也有專業(yè)公司的人,一起貢獻我們的代碼。
現(xiàn)在從 GitHub 上看,其實大家都是參與者、貢獻者,我們也歡迎在座的小伙伴加入到我們的Apache Dolphin Scheduler里面去。
關于未來的方向我們也做過一定的思考。未來 Apache Dolphin Scheduler 能夠做什么?
這其實又回到了開始,一個產(chǎn)品的調性是要做什么。未來的 Apache Dolphin Scheduler 是一個分布式易擴展、高效、便捷。此外我們也在做數(shù)據(jù)質量方面的事情,將我們原來的底層機制、分布式做得更加可靠,還有我們的 API 調用和一些分層的設計,這些大家可以到 GitHub 上詳細了解。
我們的目標還是原來最開始的初心,就是希望大家真的能夠晚上安心睡個覺。
回到最開始的故事,我想分享一下當時在這個項目里我印象最深刻的一天。
不知道大家是不是看過《美麗心靈》?電影中我印象特別深刻的有一個場景,當納什獲得諾貝爾獎的時候,在外面走廊里走著,有一個科學家請他走進了瑞典的皇家教堂,里面是全球頂級的科學家坐在那里,第一個科學家把自己的鋼筆拿出來放到他面前,說“歡迎”;第二個科學家把自己的鋼筆拿出來,說“歡迎”。
當時 Apache SkyWalking 的創(chuàng)始人吳晟老師把我們的 Proposal 放到到 Apache 討論的時候,我們也是不停的看到全球頂級的架構師,不停的回復著“+1”、“+1”,這種感覺會讓你覺得前面受了那么多苦、做了那么多開源項目,都值得了。
所以每當一個人加入到一個開源項目的時候,可能剛開始只是提一個小的 PR,到后面可能對這個開源項目提你的 Proposal。在這個過程中,你會發(fā)現(xiàn)這些無論是國內的還是國外的頂尖的架構師,在對你的 Proposal 回郵件最終“+1”的時候,你就是那個“納什”,這些人不停的在給你投票。
所以對于 Apache Dolphin Scheduler 來講,我們也算是撥開了一小片霧霾,見到了一小片藍天。
當我們回顧 Apache Dolphin Scheduler 屢戰(zhàn)屢敗、屢敗屢戰(zhàn)的故事時,有哪些收獲呢?
第一個,開源,產(chǎn)品是基礎,你要像火鍋一樣,自己來凝聚你的開發(fā)者。
第二個,做開源,社區(qū)優(yōu)先。
第三個,開源是一種精神,是一輩子的事兒,不需要你的靈光一現(xiàn),今天寫一個代碼進去。而是需要你不斷的堅持、不斷的努力。
所以回到今天的主題,開源本身就不是天才的甜點,今天你吃一口,感覺很好,明天不吃了,不是這樣的。它是一個勤奮者的盛宴,讓你不停的去努力,去加油。
當然了,在中國,開源的時代正在覺醒,需要每一位小伙伴不懈的努力,最終的讓開源精神在中國撥云見日,遍地生花。
DolphinScheduler 相關資源:
在線DEMO:?http://106.75.43.194:8888/
官網(wǎng):https://dolphinscheduler.apache.org/
開源地址:
https://github.com/apache/incubator-dolphinscheduler
相關閱讀:?活動回顧丨ALC Beijing 首場 Meetup:《開源到底有多難?》:
https://segmentfault.com/a/1190000023675512
活動中更多嘉賓的分享以及圓桌討論內容,近期會于 SegmentFault 社區(qū)以及 ALC Beijing 官方渠道陸續(xù)進行發(fā)布,敬請期待。
SegmentFault 作為本次活動以及 ALC Beijing 的媒體合作伙伴,一直非常重視開源文化以及開源生態(tài)的傳播與建設,并于今年 5 月份推出了「SFOSSP - 開源項目扶持計劃」,目前已經(jīng)助力數(shù)十余個開源項目進行宣傳推廣。
后續(xù)也將和 ALC Beijing 以及其他開源社區(qū)、開源項目團隊、開源從業(yè)者共同打造開源生態(tài),解決開源過程中的實際問題,敬請期待。