成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

架構(gòu)迭代無法一蹴而就,做開源亦是如此

原創(chuàng) 精選
大數(shù)據(jù) 架構(gòu)
代立冬:做開源當(dāng)追求立足中國,貢獻(xiàn)世界

Apache DolphinScheduler是基于Apache開源社區(qū)理念打造的知名DataOps 領(lǐng)域開源項目。作為一個分布式去中心化,易擴(kuò)展的可視化工作流任務(wù)調(diào)度平臺,Apache DolphinScheduler目前已累計在1000多家公司生產(chǎn)環(huán)境中作為企業(yè)的核心調(diào)度系統(tǒng)。在近日的【T·Talk】系列技術(shù)分享活動中,Apache Member、Apache DolphinScheduler PMC Chair、白鯨開源聯(lián)合創(chuàng)始人代立冬老師詳細(xì)介紹了Apache DolphinScheduler架構(gòu)迭代中的經(jīng)驗與教訓(xùn),并分享了自己對開源的理解與思考。【T·Talk】也將本次分享的精彩內(nèi)容進(jìn)行了整理,希望大家喜歡。

?

Apache DolphinScheduler

Apache DolphinScheduler是一個云原生的分布式的工作流調(diào)度系統(tǒng),也是首個由國人主導(dǎo)并貢獻(xiàn)到Apache基金會的大數(shù)據(jù)工作流調(diào)度領(lǐng)域的頂級項目,擁有著每日支持千萬級任務(wù)調(diào)度的能力。據(jù)不完全統(tǒng)計,目前已有一千多家不同領(lǐng)域企業(yè)在生產(chǎn)環(huán)境上使用Apache DolphinScheduler。

圖片

能夠擁有如此多的用戶群體,主要由于Apache DolphinScheduler擁有著以下幾個關(guān)鍵優(yōu)勢:

  • 高可靠性:調(diào)度最重要的能力是可靠性。Apache DolphinScheduler在架構(gòu)上采用了去中心化的多Master和多Worker的設(shè)計。所有的Master Server都會同時工作,包括Worker也是無中心的。且在這樣的架構(gòu)下采用了任務(wù)隊列機(jī)制去避免過負(fù)載,這樣可以有效避免機(jī)器卡死。
  • 簡單易上手:ApacheDolphinScheduler的前身是EasyScheduler,Easy和Simple一直是我們的核心理念。ApacheDolphinScheduler擁有可視化的拖拉拽界面,所有的定義都是通過拖拉拽形成的,同時也有OpenAPI與第三方系統(tǒng)對接。有一些習(xí)慣于使用Python的小伙伴,也可以使用PY DolphinScheduler去創(chuàng)建工作流定義。
  • 使用場景豐富:ApacheDolphinScheduler能夠支持多租戶、權(quán)限管理以及超過20種的常用任務(wù)。這一能力是目前很多開源項目,包括一些商業(yè)調(diào)度系統(tǒng)所不具備的。ApacheDolphinScheduler設(shè)計之初的目標(biāo)就是超越一些商業(yè)公司的調(diào)度系統(tǒng)。如果開源項目有足夠的價值,足以代替一些商業(yè)公司產(chǎn)品。
  • 高擴(kuò)展性:我們希望ApacheDolphinScheduler支持自定義任務(wù)類型,目前已實現(xiàn)了SPI化,未來還會使其擁有更好的熱加載能力。Apache DolphinScheduler分布式調(diào)度的特性將得到強(qiáng)化,例如擁有更多K8S能力,隨著集群的能力而實現(xiàn)線性增長。擴(kuò)展性方面,應(yīng)當(dāng)具備彈性伸縮的能力,未來也會實現(xiàn)K8S的Operator,Serverless以加大Master的伸縮容。

當(dāng)然,作為一款開源項目,ApacheDolphinScheduler的每一步發(fā)展與成長都離不開社區(qū)的貢獻(xiàn),開源社區(qū)的力量是非常強(qiáng)大的。為了能夠讓大家更好地記住ApacheDolphinScheduler,這里也介紹一個社區(qū)所貢獻(xiàn)的slogan,那就是“工具選的好,下班回家早。調(diào)度用的對,半夜安心睡。"


架構(gòu)迭代中的經(jīng)驗與教訓(xùn) 

"優(yōu)秀的架構(gòu)不是設(shè)計出來的,而是迭代出來的。“這句話在ApacheDolphinScheduler中體現(xiàn)得淋漓盡致。以下是ApacheDolphinScheduler最新的架構(gòu)。最上端能夠直觀可感知的是UI,UI界面下面則承載著APIServer,如果通過OpenAPI去調(diào)ApacheDolphinScheduler,也是通過這樣一個服務(wù)接口來調(diào)起的。

圖片

在此之下還有數(shù)個對等的Master Server,Master Server會根據(jù)一些算法,例如隨機(jī)、輪詢或是基于CPU和內(nèi)存的線性加權(quán)等給Worker分任務(wù),WorkerServer則會在接收任務(wù)時響應(yīng),并在完成任務(wù)時回應(yīng)Response。大數(shù)據(jù)調(diào)度很重要的特點是很多任務(wù)是離線的,任務(wù)的運行時間較長,大部分任務(wù)都會超過30分鐘甚至幾個小時,所以需要分響應(yīng)和Response。Master Server和Worker Server都會注冊ZK集群,主要負(fù)責(zé)服務(wù)的注冊、監(jiān)聽。如果Master或Worker Server掛了,需要恢復(fù),包括一些容錯的機(jī)制,以及極個別情況下,會用到分布式鎖。去分布式鎖、減少數(shù)據(jù)庫輪詢是架構(gòu)改造的核心目標(biāo)之一。Master Server在工作時,先搶一把鎖,誰搶到鎖誰工作。這時ZK在充當(dāng)分布式鎖的過程中,性能是比較低的,對此我們做了去分布式鎖的優(yōu)化,大幅減少線程的使用。

1.3架構(gòu)與1.2架構(gòu)也存在一個明顯的區(qū)別,1.3架構(gòu)在1.2架構(gòu)的基礎(chǔ)上刪除了TaskQueue。之所以如此設(shè)計,是因為越來越多的用戶發(fā)現(xiàn),在任務(wù)較多的時候,Worker Server能夠到達(dá)上百臺。由于其用TaskQueue做了緩沖,因此會給數(shù)據(jù)庫造成極大的壓力,僅是維護(hù)一個數(shù)據(jù)庫連接池就有可能都會把數(shù)據(jù)庫的連接池耗盡。

圖片

無論是去分布式鎖還是去TaskQueue,其實都符合架構(gòu)發(fā)展的趨勢。寫代碼是一件很有趣的事情,有時你會發(fā)現(xiàn)我們能夠通過寫出新的代碼創(chuàng)造價值,但后來又發(fā)現(xiàn)一些不合理的地方,因此要將此前寫出的東西刪掉、優(yōu)化掉,這其實也是一種價值的體現(xiàn)。架構(gòu)的迭代、演進(jìn)亦是如此,是一個不斷做取舍的過程。

圖片

在做去分布式鎖時,我們的第一感覺是需要加一個Scheduler,用API去與Scheduler交互,Scheduler接到任務(wù)或定時任務(wù)后,去分發(fā)到每一個Master上。但隨后又考慮到,如果后續(xù)的任務(wù)較多,其一定會受限于當(dāng)前的Active的節(jié)點本身,例如CPU、內(nèi)存等一些硬件的設(shè)施,就像Hadoop的NameNode、Active的NameNode一樣,會有這樣的壓力。最終我們還是放棄了這樣的架構(gòu),雖然當(dāng)時已經(jīng)實現(xiàn)了代碼,但依然選擇了進(jìn)行改進(jìn)。對每一個Master去做編號,并使其按照哈希的方式獲取任務(wù),這是當(dāng)時最終選擇的方式,也是去分布式鎖當(dāng)前的實現(xiàn)方式。查詢到任務(wù),而后再去構(gòu)建有向無環(huán)圖,去生成任務(wù)實例,并進(jìn)行分配任務(wù)。

圖片?

云原生時代調(diào)度的發(fā)展方向其實還有很多,我們希望調(diào)度能夠Serverless化、能夠更加容器化、更加彈性化。在架構(gòu)方面,要去ZK,使其更加穩(wěn)定、更加健壯。包括支持多云的能力,現(xiàn)在已經(jīng)有越來越多的公司使用不止一朵云,因此Apache DolphinScheduler也需要有跨云、多云的能力,這方面后續(xù)會有更多的支持。彈性的伸縮,任務(wù)的隔離性等,都是需要考慮的能力。


如何做一個開源項目 

做開源項目的第一要素,是要考慮定位。首先需要了解目前是否有競品或可參考的項目,明確想要做的項目能否解決現(xiàn)有產(chǎn)品沒有解決的痛點。其次是產(chǎn)品定位,這將直接決定項目的天花板。最后,一定要有創(chuàng)新,而不是重復(fù)造個輪子。很多用戶以及貢獻(xiàn)者是會去對同類型項目進(jìn)行比較選擇的,沒有創(chuàng)新將很難得到支持。

圖片

第二點,做項目時也要從用戶角度考慮。一定要明確你要解決什么樣的用戶痛點,以及它與其他開源項目有何不同,將這些問題想清楚再動手是不遲的,不走彎路即是快。此外,也需要考慮這一領(lǐng)域的商業(yè)公司,我們能否通過開源的方式超越這些商業(yè)公司,對方用戶的替換代價有多大,為什么要從其他項目替換到你的項目,這都是需要考慮的。

第三點,一個開源項目有持久的生命力這一點非常重要,簡單來說就是能否解決貢獻(xiàn)者吃飯的問題。目前已經(jīng)有越來越多的企業(yè)將ApacheDolphinScheduler寫在招聘需求中,例如熟悉ApacheDolphinScheduler者優(yōu)先、貢獻(xiàn)者優(yōu)先等,這些都是能夠給貢獻(xiàn)者的加分項。貢獻(xiàn)者也是要吃飯的,也有各種各樣訴求,能夠讓貢獻(xiàn)者通過參與開源獲得收益,這非常重要。

當(dāng)項目初步完成后,則需要去尋找種子用戶,讓用戶作出評價,再去改進(jìn),千萬不要閉門造車。在ApacheDolphinScheduler發(fā)展的早期,我們真的會手把手教用戶操作,能去企業(yè)拜訪就去拜訪,不能拜訪就遠(yuǎn)程教學(xué),這樣才找到了第一批種子用戶,大家才愿意去“吃這只螃蟹”。有了種子用戶,才能夠形成口碑,口碑傳播雖然是一個極慢的過程,但卻十分有效。

堅持,也是做開源過程中非常重要的一件事。很多開源項目做不過兩年,這與它的項目作者、創(chuàng)始團(tuán)隊有很大的關(guān)系,但凡有一些雜念,沒有堅持下去,都是非常可惜的。如果你覺得自己的項目很好,一定要堅持下去,在中國做開源很難,要花大量的業(yè)余時間與精力在項目上,所需要付出的努力甚至?xí)哂谝恍┥虡I(yè)項目。最后一點,酒香也怕巷子深。大多數(shù)開源項目都是開發(fā)者做起來的,但很多開發(fā)者其實并不是很愿意去宣傳自己的項目,也有一些可能由于表達(dá)能力弱一些,不擅長分享。對此的建議是一定要抓住一切機(jī)會去推廣、宣傳自己的項目。例如在群中分享,或與別的項目聯(lián)合舉辦meetup、去公司試講。這些宣傳與推廣能幫助你的項目收獲更多的用戶與貢獻(xiàn)者。


如何參與一個開源項目 

參與開源項目首先是一個很好的提升技術(shù)能力的方式,越是頂級的、知名的開源項目,參與的高手越多。通過參與開源我們能夠快速得到技術(shù)能力的提升,通過與高手的交流,也能夠收獲更多的技術(shù)經(jīng)驗。

圖片

第二點,參與開源,一旦你的代碼被使用,它就會運行在成千上萬的服務(wù)器之上,被不同的人、不同的企業(yè)使用,這是一件非常令人驕傲的事,會很直接地提升你的自信心與獲得感。

第三點,大家會認(rèn)可你的貢獻(xiàn),開源中的一條規(guī)則就是"英雄不問出處"。無論你的職位高低、資歷深淺,貢獻(xiàn)多的人,就會被社區(qū)認(rèn)可,就會有影響力,你的聲望就會比較大。

第四點,豐富閱歷。中國是世界上唯一能夠把參與開源寫進(jìn)簡歷并且會在招聘中作為一個加分項的國家。中國的很多企業(yè)為開源人提供了這樣的機(jī)會,例如你研究了某一個項目的源碼、對其熟悉,或認(rèn)識一些項目的貢獻(xiàn)者,遇到問題能夠聯(lián)系他們尋求幫助,這會非常有用,這些經(jīng)歷能夠為你的簡歷加分。

第五點,結(jié)交高手。公司畢竟還是一個小圈子,你能夠在公司中認(rèn)識的人是比較有限的,但是通過開源,你能夠認(rèn)識全世界的高手。無論對技術(shù)發(fā)展還是職業(yè)發(fā)展,這都是有幫助的。

第六點,收獲創(chuàng)新性。參與一些新型的開源項目,能夠了解到目前這一領(lǐng)域可能的創(chuàng)新機(jī)會及思路。開源是可以通過創(chuàng)新等力量打破壟斷的,這是已經(jīng)多次得到過驗證的道理。

關(guān)于如何找到一個適合自己的開源項目,很多情況是工作需要,另外個人興趣也是很重要的一點。開源項目的評價標(biāo)準(zhǔn)有很多,但是比較直觀的參考因素就是社區(qū)的活躍度。Apache的理念中有一條是“社區(qū)大于代碼”,獨行者快,眾行者遠(yuǎn),社區(qū)的活躍度代表了這個開源項目到底能走多遠(yuǎn)。對開源感興趣的同學(xué),首先可以通過郵件列表訂閱user,若是貢獻(xiàn)者則可以訂閱DEV。做一些非技術(shù)性的討論,參加一些meetup,都是參與開源的機(jī)會。通過這些渠道你能夠充分了解到這個項目的各個方面信息,也可以確定這個項目是否靠譜。

圖片?

第二點,先在本地使用開源項目,例如SeaTunnel這樣的項目,它是一個Apache基金會孵化的項目,其貢獻(xiàn)者群體也是非常活躍的,這就是一個比較優(yōu)質(zhì)的項目。我們?nèi)⑴c其中時,應(yīng)該先把它先運轉(zhuǎn)起來、運行起來,去直觀地感受項目的用途以及功能。

第三點,不要憋大招。尤其是在做第一次貢獻(xiàn)的時候,good first issue都是比較簡單的,大家可以通過這個練手。找一些小的issue去fix,然后再慢慢從提交小PR到提交大PR。對于不了解流程的同學(xué),可以去學(xué)習(xí)貢獻(xiàn)規(guī)范,尤其像Apache中的項目,都有非常詳細(xì)的指導(dǎo)貢獻(xiàn)的流程文檔。此外,貢獻(xiàn)新生項目,更容易成為Committer,這也是很多小伙伴會去考慮的一點。如果你的目標(biāo)是成為一個項目的Committer,那么參與一個新的開源的項目,實現(xiàn)這個目標(biāo)的難度會小很多。例如像SeaTunnel這樣的云原生做數(shù)據(jù)遷移、數(shù)據(jù)備份、數(shù)據(jù)集成的項目,貢獻(xiàn)幾種數(shù)據(jù)源,成為一個Committer也是有可能的。


思考與前瞻

"社區(qū)是一群為了共同利益而聚集到一起的人,做著有意義的事情。"這是《用戶共創(chuàng)》的作者喬諾給大家分享的。開源最佳狀態(tài)其實是邊用邊貢獻(xiàn)邊吐槽,這是參與開源的最佳狀態(tài)。大家用的過程中吐吐槽,然后再提一個PR,發(fā)現(xiàn)項目中不好的地方,再把它fix一下,這才是開源最佳的狀態(tài)。

目前有大量的企業(yè)都在使用開源,未來很多的基礎(chǔ)軟件,包括一些中間件,都會以開源的形態(tài)存在,因此也希望大家能夠更多地參與開源。思考在開源之中自己能夠做哪些事情,是否能夠做更多的貢獻(xiàn)。將開源當(dāng)成自己職業(yè)生涯、自己青春的一部分,去豐富自己的閱歷,為中國的開源軟件事業(yè)做出一些貢獻(xiàn),這是當(dāng)代青年尤其是程序員應(yīng)該追求的事情。我們共同的目標(biāo)應(yīng)當(dāng)是立足中國、貢獻(xiàn)全球。

責(zé)任編輯:徐杰承 來源: 51CTO技術(shù)棧
相關(guān)推薦

2022-11-24 14:55:25

2023-01-17 13:48:54

2017-05-05 09:35:59

NB-IoT運營商TD-LTE

2016-11-29 13:44:17

網(wǎng)絡(luò)建設(shè)VoLTE運營商

2010-06-01 15:29:15

IPv6網(wǎng)絡(luò)環(huán)境

2022-03-31 06:23:43

自動化響應(yīng)網(wǎng)絡(luò)安全

2015-06-25 14:59:32

提速降費運營商

2025-03-17 12:18:42

2022-08-03 14:40:55

數(shù)字化轉(zhuǎn)型數(shù)字經(jīng)濟(jì)銀行

2016-09-23 09:55:56

網(wǎng)關(guān)架構(gòu)移動端

2013-03-26 10:48:22

創(chuàng)業(yè)降級論

2009-07-30 14:58:26

BSM落地北塔

2025-04-18 04:05:00

2021-06-17 16:24:49

云計算軟件開發(fā)

2019-03-11 14:17:07

Oracle NetS轉(zhuǎn)型內(nèi)核

2021-09-10 10:24:33

數(shù)字化

2021-03-03 08:29:54

MySQL查詢優(yōu)化

2025-04-08 09:33:19

2016-07-08 23:05:31

醫(yī)療安全

2024-10-22 09:40:00

飛輪數(shù)據(jù)計算
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产欧美一区二区三区在线播放 | 日本aa毛片a级毛片免费观看 | 自拍偷拍在线视频 | 中文字幕人成乱码在线观看 | 亚洲国产aⅴ精品一区二区 免费观看av | 欧美激情精品久久久久久变态 | 天天碰日日操 | 亚洲精品99| 久久精品亚洲欧美日韩久久 | 精品久久香蕉国产线看观看亚洲 | 91一区二区三区在线观看 | 逼逼视频 | 国产精品国产a | 天堂影院av | 亚洲精品第一页 | 精品国产久| www国产精品| 成人影院网站ww555久久精品 | 午夜小影院 | 日韩亚洲视频 | 欧美aaa一级片 | 黄色网址在线播放 | 国产黄色精品 | 欧美色人 | 欧美一区视频在线 | 国产成人a亚洲精品 | 国产精品 亚洲一区 | 日本天天色 | 国产精品亚洲视频 | 国产精品视频导航 | 亚洲精品电影 | 一区二区成人 | 国产在线小视频 | 久久黄网 | 亚洲视频自拍 | 日韩美女一区二区三区在线观看 | 欧美午夜一区二区三区免费大片 | 一区二区三区视频在线观看 | 激情五月婷婷综合 | 国产人久久人人人人爽 | 亚洲成人网在线播放 |