| 作者:徐九
| 轉(zhuǎn)載自:SegmentFault
|?編輯:賀鑫
| 責(zé)編:王皓月
8 月 16 日,ALC Beijing 的首次線下沙龍活動(dòng) —— 《開源到底有多難护戳?》在微軟大廈如期舉行翎冲。本次沙龍主要是分享開源開發(fā)經(jīng)驗(yàn)、探討如何讓開源項(xiàng)目更加茁壯成長(zhǎng)媳荒,以及分享 ASF 管理和運(yùn)作開源項(xiàng)目的成功之道抗悍。
Apache 軟件基金會(huì)成員、Apache 軟件基金孵化器導(dǎo)師肺樟、ALC Beijing 發(fā)起人姜寧檐春;Apache Flink 社區(qū) PMC member 李鈺;Apache DolphinScheduler 項(xiàng)目負(fù)責(zé)人么伯、易觀 CTO 郭煒疟暖;ASF Member、阿里巴巴 Tech Lead 孫金城(花名:金竹)田柔;Apache APISIX PMC member俐巴、深圳支流科技創(chuàng)始人溫銘;ALC Beijing member硬爆、開源布道師李建盛分別在本次活動(dòng)中進(jìn)行了分享與探討欣舵。
Apache DolphinScheduler 項(xiàng)目負(fù)責(zé)人、易觀 CTO 郭煒在活動(dòng)中以《開源缀磕,不是天才的甜點(diǎn)缘圈,而是勤奮者的盛宴》為題進(jìn)行了分享,以下為整理后的文字版本袜蚕。
《開源糟把,不是天才的甜點(diǎn),而是勤奮者的盛宴》
我們的開源項(xiàng)目 Dolphin Scheduler 在去年的 8 月 29 日牲剃,正式加入的 Apache 孵化器遣疯。在加入的時(shí)候,中國(guó)一共有 16 個(gè)開源項(xiàng)目在 Apache 中凿傅,并且大部分都是 BAT 這樣級(jí)別的大廠或者清華之類的名校項(xiàng)目缠犀。
我們這樣一個(gè)以技術(shù)起家的中型公司是如何能夠把一個(gè)開源項(xiàng)目申請(qǐng)進(jìn) Apache 的呢?今天我們就來講一下這個(gè)“屢戰(zhàn)屢敗聪舒,屢敗屢戰(zhàn)”的故事辨液。
Dolphin Scheduler 不是易觀第一個(gè)開源的項(xiàng)目。易觀第一個(gè)開源的項(xiàng)目叫 Backquarter箱残,一個(gè)跨云的 Kafka 同步程序滔迈。
我們?cè)谕瓿闪诉@個(gè)程序開源以后很得意,我還特意給它起了名字「Backquarter」—— 四分衛(wèi)。寓意就是這個(gè)工具就像是橄欖球賽場(chǎng)上的四分衛(wèi)亡鼠,可以搶到球快速帶著球穩(wěn)定的傳送給前鋒。
我還專門的為了它去各種技術(shù)大會(huì)大肆宣傳敷待,“一頓宣傳猛如虎“啊间涵。別說,還真有效果榜揖,在幾周時(shí)間帶來了 13 個(gè)贊勾哩,12 個(gè) fork!
因此我們開始反思举哟,一腔熱血思劳、每行代碼都付出努力,并且還進(jìn)行了開源妨猩,為什么沒人用呢潜叛?我也不知道問題出在哪,所以當(dāng)時(shí)請(qǐng)教了無數(shù)的人壶硅。
有一次請(qǐng)幾個(gè)大咖邊吃火鍋邊探討威兜,一個(gè)產(chǎn)品大咖指著火鍋和我說:
“你知道為什么火鍋可以流傳 1700 多年么?它就是一個(gè)產(chǎn)品庐椒,有自己的核心理念和調(diào)性椒舵,熱氣騰騰鍋?zhàn)樱璧难蛉庠继浮⒙獒u笔宿,還方便易做。而你這東西只是一爐子碳棱诱,不是一個(gè)產(chǎn)品泼橘。你的產(chǎn)品理念是什么?沒有明確的產(chǎn)品理念军俊,誰會(huì)一直用你這個(gè)東西侥加?雖然開源不付費(fèi),但是同樣需要?jiǎng)e人付出努力來使用你的產(chǎn)品粪躬,沒有產(chǎn)品理念担败,你就用炭爐子烤個(gè)手就算啦×伲”
我恍然大悟:原來提前,開源不光是貢獻(xiàn)代碼,更需要具有產(chǎn)品的核心理念和“調(diào)性”泳唠。
GitHub 上有成千上萬個(gè)開源項(xiàng)目狈网,大家可以看一下他們的最終更新時(shí)間,大部分都爛尾了。開源不只是把代碼放上去就可以了拓哺,開源要有產(chǎn)品的調(diào)性勇垛,才可以有生命力,像火鍋一樣有號(hào)召力士鸥。
就像 Clickhouse 社區(qū)的宣傳語“Clickhouse 引擎就是快”闲孤,或者是像 Apache Dolphin Scheduler 的“工具選得好,下班回家早烤礁;調(diào)度用的對(duì)讼积,半夜安心睡“一樣,永遠(yuǎn)有一個(gè)有明確的產(chǎn)品核心理念和“調(diào)性”脚仔,讓它可以一直傳播勤众,才能召喚同道者加入你的陣營(yíng)。
所以說鲤脏,開源们颜,產(chǎn)品才是基礎(chǔ)啊。汲取這次教訓(xùn)之后猎醇,半年后我們基于自己的使用場(chǎng)景掌桩,精心打磨了一個(gè) API-Gateway 開源組件 Kong-plus。它是基于 Kong 進(jìn)行二次開發(fā)姑食,具有良好的功能和操作界面波岛,可以幫助小白用戶迅速的建立起一套高并發(fā)的 API Gateway。
立意很明確吧音半?調(diào)性也是更貼近小白用戶则拷,甚至連界面我們都專門找 UX 設(shè)計(jì)了一下。開源后我們也嘗試自己傳播了一下曹鸠,但效果仍然很差煌茬。我很苦悶,用了公司這么多資源彻桃,什么都沒做出來坛善。
后來我找我好朋友 Apache Kylin 創(chuàng)始人 Luke 聊天,他跟我分享了一個(gè)觀點(diǎn):
“開源是什么邻眷?你沒有開發(fā)者眠屎,怎么能叫開源呢?開發(fā)者是土壤肆饶,開源代碼是小芽改衩,沒有土壤,芽也會(huì)枯萎的驯镊。你的代碼別人是讀不懂的葫督,你需要做好文檔竭鞍,做好社群運(yùn)營(yíng),有土壤了橄镜,你的芽長(zhǎng)大了才可以長(zhǎng)成參天大樹偎快。“
我再一次頓悟了:“開源洽胶,不是代碼開源滨砍,真正的開源它褪,是你找到你的第一個(gè)開發(fā)者瘩例。”
“Open Source Starts with your 1st Contributor“楞泼,這和 Apache 的宗旨“Community Over Code”一脈相承,代碼爛了可以重寫他膳,而社區(qū)太差,再好代碼的也會(huì)付之東流绒窑。
但我們從來沒有運(yùn)營(yíng)過開發(fā)者棕孙,為了我們的芽有好的土壤,我開始帶著 6 個(gè)“羅漢”些膨,搞各種社群各種 Meetup蟀俊,Clickhouse、Presto订雾、Hbase 等等圈里的小伙伴都覺得我瘋了肢预,是不是要做個(gè)大數(shù)據(jù)峰會(huì)和業(yè)內(nèi)的技術(shù)峰會(huì)分杯羹。
這一做就是3年烫映,有些很成功噩峦,有些不成功。但我在一邊給社區(qū)貢獻(xiàn)的同時(shí)识补,也收獲了3個(gè)重要認(rèn)知:
第一個(gè)就是社區(qū)貢獻(xiàn)族淮。我們真的可以不懂代碼,但是要持續(xù)貢獻(xiàn)祝辣。以 Clickhouse 為例切油,我真的看不懂俄羅斯黑科技的 CPU 指令集中的那些代碼较幌,但并不妨礙我作為 Clickhouse 中國(guó)社區(qū)組織者的和推進(jìn)人。現(xiàn)在連 Linus 大神白翻,都說他已經(jīng)不是程序猿而是激勵(lì)他人開發(fā)的鼓勵(lì)師了乍炉。
第二就是運(yùn)營(yíng)社區(qū)。你要尊重給你社區(qū)扔臭雞蛋的人底循,他們正是因?yàn)樾枰慊比穑艜?huì)在社區(qū)里有不同的意見和聲音,愛和恨都是強(qiáng)烈的情感祠挫,而冷漠不是。開源社區(qū)最怕的是郵件列表和微信討論群沒有人說話等舔,所有人都很冷漠糟趾。
第三,開源社區(qū)就像是土壤蝶柿,需要產(chǎn)品經(jīng)理非驮、開發(fā)者持續(xù)加料,持續(xù)的貢獻(xiàn)蜻展,開源的小樹苗才可以長(zhǎng)成參天大樹邀摆,凝結(jié)出果實(shí)栋盹,讓更多的人可以分享施逾。
有人說“在中國(guó)只有免費(fèi)汉额,沒有開源”榨汤。中國(guó)只有 16 個(gè)項(xiàng)目可以上 Apache,而且背后都是大廠在支撐的妓灌,民間沒有開源精神。很多人來了把樹就鋸走了而不去耕虫埂,所以掉伏,在中國(guó)做開源都只有“霧霾天”。
姜寧老師剛才分享了一張圖片斧散,我國(guó)作為全球最大開源消費(fèi)國(guó)鸡捐,ASF 在國(guó)內(nèi)有廣泛的群眾基礎(chǔ),但全球的 300 多個(gè)項(xiàng)目中,只有 19 個(gè)項(xiàng)目來自中國(guó)悲立。但他沒分享另一張圖薪夕,就是中國(guó)全球的貢獻(xiàn)者里,我們下載的最多的但貢獻(xiàn)是倒數(shù)的原献。
但“中國(guó)沒有開源”這個(gè)觀點(diǎn)我是不愿意相信的姑隅。我相信這一代年輕人,不僅僅是程序猿慕趴,而是越來越多的人鄙陡,愿意參加到各行各業(yè)的非盈利團(tuán)體當(dāng)中去,貢獻(xiàn)自己的想法耙册、代碼毫捣、知識(shí)帝际,讓這個(gè)世界變得更加美好溪厘。
我相信哪怕我們這一代人看不到開源的春天畸悬,我們的下一代人也不應(yīng)該再看到開源的“霧霾天”。于是我們就積攢了更多的力量披粟,籌備了一年冷冗,把我們自己內(nèi)部使用的一個(gè)產(chǎn)品 —— Dolphin Scheduler 進(jìn)行了開源。
Dolphin Scheduler 是“分布式易擴(kuò)展的可視化的 DAG 工作流調(diào)度系統(tǒng)”拇泛,它的目標(biāo)很簡(jiǎn)單思灌,就是“高效、便捷熄守、準(zhǔn)確耗跛、可靠”的把這些數(shù)據(jù)和任務(wù),直接到達(dá)它最終的目的地晋南。我們自己的 slogan 叫做“工具用得好羔砾,下班回家早蜒茄;調(diào)度用得對(duì),半夜安心睡”玩祟。
它有很多很強(qiáng)大的功能屿聋,第一個(gè)功能可視化的 DAG 圖,如果做過大數(shù)據(jù)的小伙伴知道转锈,如果你要做一條復(fù)雜的調(diào)度系統(tǒng)時(shí)撮慨,很頭疼的是怎么做這兩個(gè)之間的 Dolphin,而我們提供的是可視化的方式砌溺,讓你很容易的把這個(gè)依賴和觸發(fā)做起來规伐。
第二個(gè)是調(diào)度的高可用。現(xiàn)在目前有很多的調(diào)度工具鲜棠,但很少有分布式的調(diào)度培慌,能保證某臺(tái)機(jī)器宕掉時(shí)不影響整個(gè)系統(tǒng)。現(xiàn)在大部分系統(tǒng)發(fā)生宕掉的情況時(shí)献联,半夜就會(huì)接到運(yùn)維電話何址,然后起床去把東西修復(fù)好用爪。所以我們的 slogan 里才提到了一句“安心睡”胁镐。
第三個(gè),我們有各種各樣的語言類型颇玷,自定義查檢就缆。第四個(gè)是任務(wù)自依賴。第五個(gè)是排錯(cuò)機(jī)制空郊。
總體來講,我們有八個(gè)比較大的功能锁摔。我們有全部的優(yōu)先級(jí)哼审,還有局部的優(yōu)先級(jí)、參數(shù)棺蛛,都可以使用。對(duì)于“安心睡”桦踊,有依賴终畅、監(jiān)控离福、報(bào)警這些功能。
做銷售的小伙伴,最頭疼的就是補(bǔ)數(shù)絮识、重跑次舌,我們也提供了各種各樣的補(bǔ)數(shù)規(guī)則,可以通過各種方式進(jìn)行察看挪圾,直接在界面上就可以把實(shí)驗(yàn)做好逐沙,操作也更方便,每天能支持非常多的數(shù)據(jù)量級(jí)的東西棚赔,穩(wěn)定的跑起來,這是 Apache(S)的功能己儒。
我們的開源項(xiàng)目目前在國(guó)內(nèi)用得蠻多捆毫,像 IBM绩卤、美團(tuán)、360何暇,銀行類的包括工行凛驮、平安、招行宏胯,也有各種各樣的互聯(lián)網(wǎng)公司在用本姥,包括芒果TV、鳳凰氛赐、E代駕等等艰管。
我們?cè)趪?guó)內(nèi)也有非常多的用戶群密浑,現(xiàn)在有 7 個(gè)微信群粗井,三千多人浇衬,跟我們做互動(dòng),我們自己的貢獻(xiàn)者耘擂,也分布在各種各樣的公司里,有 BAT 的秩霍、有傳統(tǒng)公司的铃绒、也有專業(yè)公司的人,一起貢獻(xiàn)我們的代碼矮燎。
現(xiàn)在從 GitHub 上看赔癌,其實(shí)大家都是參與者灾票、貢獻(xiàn)者,我們也歡迎在座的小伙伴加入到我們的Apache Dolphin Scheduler里面去刊苍。
關(guān)于未來的方向我們也做過一定的思考班缰。未來 Apache Dolphin Scheduler 能夠做什么?
這其實(shí)又回到了開始脾拆,一個(gè)產(chǎn)品的調(diào)性是要做什么莹妒。未來的 Apache Dolphin Scheduler 是一個(gè)分布式易擴(kuò)展旨怠、高效、便捷迷扇。此外我們也在做數(shù)據(jù)質(zhì)量方面的事情爽哎,將我們?cè)瓉淼牡讓訖C(jī)制课锌、分布式做得更加可靠,還有我們的 API 調(diào)用和一些分層的設(shè)計(jì)雏胃,這些大家可以到 GitHub 上詳細(xì)了解。
我們的目標(biāo)還是原來最開始的初心获印,就是希望大家真的能夠晚上安心睡個(gè)覺街州。
回到最開始的故事,我想分享一下當(dāng)時(shí)在這個(gè)項(xiàng)目里我印象最深刻的一天鳍征。
不知道大家是不是看過《美麗心靈》艳丛?電影中我印象特別深刻的有一個(gè)場(chǎng)景趟紊,當(dāng)納什獲得諾貝爾獎(jiǎng)的時(shí)候,在外面走廊里走著戴差,有一個(gè)科學(xué)家請(qǐng)他走進(jìn)了瑞典的皇家教堂暖释,里面是全球頂級(jí)的科學(xué)家坐在那里墨吓,第一個(gè)科學(xué)家把自己的鋼筆拿出來放到他面前,說“歡迎”亮曹;第二個(gè)科學(xué)家把自己的鋼筆拿出來秘症,說“歡迎”。
當(dāng)時(shí) Apache SkyWalking 的創(chuàng)始人吳晟老師把我們的 Proposal 放到到 Apache 討論的時(shí)候窄瘟,我們也是不停的看到全球頂級(jí)的架構(gòu)師趟卸,不停的回復(fù)著“+1”、“+1”图云,這種感覺會(huì)讓你覺得前面受了那么多苦竣况、做了那么多開源項(xiàng)目筒严,都值得了。
所以每當(dāng)一個(gè)人加入到一個(gè)開源項(xiàng)目的時(shí)候摹恨,可能剛開始只是提一個(gè)小的 PR晒哄,到后面可能對(duì)這個(gè)開源項(xiàng)目提你的 Proposal肪获。在這個(gè)過程中,你會(huì)發(fā)現(xiàn)這些無論是國(guó)內(nèi)的還是國(guó)外的頂尖的架構(gòu)師较木,在對(duì)你的 Proposal 回郵件最終“+1”的時(shí)候青柄,你就是那個(gè)“納什”刹前,這些人不停的在給你投票。
所以對(duì)于 Apache Dolphin Scheduler 來講祖今,我們也算是撥開了一小片霧霾拣技,見到了一小片藍(lán)天膏斤。
當(dāng)我們回顧 Apache Dolphin Scheduler 屢戰(zhàn)屢敗、屢敗屢戰(zhàn)的故事時(shí)傲茄,有哪些收獲呢盘榨?
第一個(gè),開源守呜,產(chǎn)品是基礎(chǔ)山憨,你要像火鍋一樣郁竟,自己來凝聚你的開發(fā)者。
第二個(gè)憔晒,做開源蔑舞,社區(qū)優(yōu)先攻询。
第三個(gè),開源是一種精神低零,是一輩子的事兒掏婶,不需要你的靈光一現(xiàn)潭陪,今天寫一個(gè)代碼進(jìn)去。而是需要你不斷的堅(jiān)持老厌、不斷的努力枝秤。
所以回到今天的主題慷嗜,開源本身就不是天才的甜點(diǎn),今天你吃一口雀费,感覺很好痊焊,明天不吃了忿峻,不是這樣的逛尚。它是一個(gè)勤奮者的盛宴,讓你不停的去努力到逊,去加油觉壶。
當(dāng)然了件缸,在中國(guó)他炊,開源的時(shí)代正在覺醒,需要每一位小伙伴不懈的努力蚕苇,最終的讓開源精神在中國(guó)撥云見日凿叠,遍地生花幔嫂。
DolphinScheduler 相關(guān)資源:
在線DEMO:?http://106.75.43.194:8888/
官網(wǎng):https://dolphinscheduler.apache.org/
開源地址:
https://github.com/apache/incubator-dolphinscheduler
相關(guān)閱讀:?活動(dòng)回顧丨ALC Beijing 首場(chǎng) Meetup:《開源到底有多難?》:
https://segmentfault.com/a/1190000023675512
活動(dòng)中更多嘉賓的分享以及圓桌討論內(nèi)容,近期會(huì)于 SegmentFault 社區(qū)以及 ALC Beijing 官方渠道陸續(xù)進(jìn)行發(fā)布飒筑,敬請(qǐng)期待。
SegmentFault 作為本次活動(dòng)以及 ALC Beijing 的媒體合作伙伴俏脊,一直非常重視開源文化以及開源生態(tài)的傳播與建設(shè)爷贫,并于今年 5 月份推出了「SFOSSP - 開源項(xiàng)目扶持計(jì)劃」补憾,目前已經(jīng)助力數(shù)十余個(gè)開源項(xiàng)目進(jìn)行宣傳推廣盈匾。
后續(xù)也將和 ALC Beijing 以及其他開源社區(qū)腾务、開源項(xiàng)目團(tuán)隊(duì)、開源從業(yè)者共同打造開源生態(tài)削饵,解決開源過程中的實(shí)際問題岩瘦,敬請(qǐng)期待。