我與DolphinScheduler社區的故事
我叫黃立,是長安汽車云平臺開發部負責車聯網資料平臺的工程師,也是一名DolphinScheduler的Committer,我參與到DS社區應該剛好一年,是非常典型的從開源用戶到了解社區最后參與社區的路線,
初識EasyScheduler:四天上生產
時間回退到2019年8月,公司成為了Cloudera的客戶,準備基于EDH構建車聯網資料平臺,
在調度系統選型的時候,初步定了3個組件:Zeus,Azkaban,Airflow,從系統是否開源,二開難度和易用性上最終選型了Azkaban,接下來就是開始對Azkaban測驗,Azkaban使用command的方式來描述任務關系,描述方式比較麻煩,不夠直觀,于是我開始繼續尋找大資料批處理調度系統,發現了這個新聞:
分布式作業流任務調度系統Easy Scheduler正式開源
嗯?可視化拖拉拽?支持shell?HA?易觀投產兩年?java系?
我:琦鵬(EDH實施的小哥),要不咱們整下這個easyscheduler?
琦鵬:哥, 咱這個還一周要上線啊,你現在測?
我:我看網上寫得挺不錯的,搞搞看?部署應該不復雜的,不行還有Azkaban嘛
琦鵬:,,,,,,,,,
于是我花了4天的時間將easyscheduler從測驗環境部署到預生產的POC全部做完,向領導匯報后,得到的反饋是,可以投產,現在,5個節點的ds系統承接了車聯網資料平臺的所有批處理任務,已經穩定運行了一年四個月,

接觸社區:2019年12月8日 DolphinScheduler MeetUp
2019年9月17日,ds進入apache范訓器,開始了第一個apache版本的發版作業,我也開始了這個分支的升級測驗作業,因為當時1.2.0支持了一個非常重要的功能:跨專案依賴,由于對ds的了解程度不高,開發環境升級之后,之前做好的定時的任務一直無法調起來,我決定在12月8日到北京去參加Apache DolphinScheduler的MeetUp,目的是找到ds的開發者幫我解決系統升級的問題,這里要感謝一下我的領導,支持我到北京出差參加社區活動,這是當時meetup的照片,也是我第一次參加線下的meetup,有一種程式員開大會的感覺,最后一個topic,各位大佬進行了如何加入Apache社區并成為Committer的圓桌討論,我了解到了Apache專案的運作方式,有哪些角色,參與到開源專案中的方式,
重點是,會后我拿出電腦讓ds的開發者李崗幫我查組件升級的問題,最后發現是包名的升級兼容性問題,現在想起來都覺得很神奇,從重慶到北京,就處理了一個ds的升級問題,

回到重慶之后,我決定開始參與到ds社區中,于是整理對ds的改造點,提了第一個pr,是關于Spark組件支持多版本的功能,PR的日期是2019年12月17日,參加12月8日meetup的決定,讓我真正開始動起手來,參與開源,劃重點:參加Meetup!!!

參與社區:從細節做起,不光是代碼
參與開源專案,貢獻社區不單是只有提交代碼這一種方式,任何形式參與社區:貢獻檔案,提交翻譯,參與討論,在郵件串列或issue中回答社區用戶的提問,都會被社區記錄和認可,期間我發現有部分用戶,在參與開源專案的時候,喜歡一來就整個“大Feature”,關于一個Feature,其設計和實作并未經過社區討論,一個pr就更改了100多個檔案,提交上萬行代碼,這樣的pr其review壓力巨大,很難得到社區認可,
在開源貢獻的層面來說,所做的作業給社區帶來微小而美好的改變就是值得的,個人而言,我參與社區的方式比較綜合:
- 貢獻代碼
在issue串列中,尋找自己感興趣的issue,做力所能及的bug fix和實作feature,
-
報告bug,參與討論

-
貢獻檔案
提到檔案貢獻就非常有意思了,在2020年初的時候,DolphinScheduler社區建立了海豚調度的公眾號,我貢獻給社區的第一篇檔案是如何在 CDH5.16.2 中部署 Apache Dolphin Scheduler 1.2.0,后續得到的反饋是有不少用戶根據這篇檔案,成功部署DS,開始成為小海豚的用戶,我感到非常非常高興,**所以,參與社區,真的不一定需要寫代碼,**之后,我又陸續向社區貢獻檔案,涉及版本升級指南,部署引數分析和故障處理,
社區識訓
參與社區是要花費一定的休息時間和精力的,在參與社區這件事上,付出和識訓一定是成正比的,
引入重要的Bug Fix
最最最重要的是,通過社區用戶的實踐,我們可以提前發現一些重要的bug,比如在1.3.4中修復的任務卡死問題,如果對社區熟悉就可以在內部的代碼中cherry-pick對應的pr,不用等到社區發版,保證生產系統的穩定性,
內部開發保持與社區一致
參考Hbase社區張鐸老師的PPT,參與開源,將內部的feature回饋給社區,參與社區開發,可以保證自研代碼和社區代碼的步調一致,享受到社區最新的功能

寫在最后
我一直覺得,做任何事情,學習任何一項技能,都要經歷一個:不會到會,會到會用,用到用好,用好到用成自己的,四個階段,目前,我們正處于將ds用好的一個階段,個人也會繼續參與到開源中,在社區中貢獻,識訓,
主人翁簡介
姓名:黃立
長安汽車-云平臺開發部-大資料工程師,負責車聯網資料基礎平臺建設作業,DolphinScheduler Committer,目前專注于物聯網資料存盤和計算領域,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/242355.html
標籤:其他
