作為Apache頂級項目、Apache基金會首個數據庫中間件,Apache ShardingSphere無論在國內還是在國際都有著十分廣泛的影響力。不久前,在【T·TALK】全年系列直播活動的第四期中,我們邀請到了Apache ShardingSphere的核心初創成員、Apache ShardingSphere PMC、SphereEx聯合創始人兼CTO潘娟老師,為我們講述Apache頂級項目ShardingSphere開源之路背后的故事。【T·TALK】也將本次直播的核心內容進行了整理:
(關注B站,觀看往期直播回顧)
ShardingSphere的Apache之旅
提到Apache ShardingSphere,關注全球數據庫應用領域的同學應該對它比較熟悉。ShardingSphere是一套開源的分布式數據庫解決方案組成的靈活生態圈,我們所倡導的理念是Database Plus,也就是在Database之上構建一套全新的能夠為數據庫提供增強服務的生態層,我們希望ShardingSphere在這層生態中可以做任何事情,這也是一直以來我們所努力的方向。
另一方面,作為一款開源項目,ShardingSphere在開源之路上也已走過了六年時間。時至今日,ShardingSphere在GitHub上的star數已經超過了15K,并擁有超過300人的貢獻者群體。
在ShardingSphere的開源歷程中,最具里程碑意義的事件,大概就是2018至2020年期間,ShardingSphere進入了Apache基金會,并在歷經了17個月的孵化器之旅后順利畢業,成為了Apache的頂級項目。也正是這段經歷,讓ShardingSphere和我都得到了許多的歷練與成長。
起初,我們捐贈ShardingSphere進Apache基金會的時候很困難,當時國內有資格能夠帶領項目進行捐贈的導師并不多,我們摸索了很久,直到遇到了姜寧老師與SkyWalking的吳晟老師,他們給了我們很多指導與建議,并幫助ShardingSphere通過了層層審核,最終成功進入了Apache基金會。我也是從那個時候開始加入到Apache基金會去做相關的事情。
(潘娟、張亮與姜寧、吳晟一起)
當項目成功進入孵化器后,作為“家長”,接下來要面臨的就是如何讓這個“Baby”長大,這時需要做的便不再只是貢獻代碼這一件事,還需要承擔起社區的建設與運營工作。幫助社區提高知名度,吸納更多的小伙伴,這也是推進項目發展中非常重要的事情,只有大家一起去做貢獻,項目才能變得越來越好。
但社區運營這項工作其實遠比寫代碼更復雜,需要我們在代碼層面之外考慮更多方面。當時ShardingSphere 社區就曾遇到過這方面問題,我和另一位創始人張亮,很愛這個項目,想把它做好,因此我們對代碼的質量要求非常嚴格,但這種嚴格卻阻礙了很多新人的加入,當時有很長的一段時間,ShardingSphere的進展都是靠我和張亮老師去支撐。
為了緩解這種尷尬,我們也做了很多嘗試與調整,包括去做清晰的代碼指導意見,加快回復速度,把一些參與流程類的文檔放到最顯眼的位置,甚至有時候要降低門檻,去布置更多新手任務,讓想要加入進來的人能夠進行過渡。
今天,大家可以看到ShardingSphere無論代碼還是文檔都是非常優雅完善的,這都是我們過去五六年積累下來的東西。當然,除內功外,做meetup、做布道等外功也是必不可少的。特別是對國內來說,早些年大家對開源往往都是“用代碼,不要指望我去無償貢獻”、“你是在剽竊我的勞動成果嗎?”等態度和想法,我們只有通過在代碼之外去做更多的理念、技術布道來扭轉這些負面的意識和聲音,才能使更多人正確地認識開源并愿意參與其中。
總之,無論是寫代碼,還是做community的事情,其實都是賦予項目生命力的過程,這個過程會給你帶來收獲。最開始參與開源的時候,我真的完全是因為興趣參與進來,但后來慢慢成為了習慣。在這個過程中,我能夠清晰地感覺到自己技能和視野的提升,這段經歷無論對項目還是對我自身來說都是意義非凡的。
再后來,當項目已經發展的較為成熟后,要考慮的就是畢業了。和在學校一樣,項目畢業同樣也會面臨各種考核,包括在孵化期間,項目是否正常的按照法律法規進行 release;社區是否已具備了自治能力以及積極的可持續發展能力;項目的版權、brand 有沒有符合規范等。如果沒有問題,就可以向基金會提出畢業,但如果上述某些地方沒有做好,就會被打回,然后重做,再提。當然,在項目畢業之后,你依然要持續地去讓社區發光發熱,為大家去提供價值。這大概就是 ShardingSphere 當年所走過的一條開源之路。
SphereEx的商業化實踐
在此之后,隨著ShardingSphere的持續發展與社區的不斷壯大,越來越多的新想法被注入到項目之中。但與此同時,越來越多的研發資源需求也逐漸成為了ShardingSphere發展道路上的一道無形障礙。2021年,為了打破這樣的阻礙,繼續把ShardingSphere做得更好,我和張亮老師以ShardingSphere為基礎創辦了SphereEx公司,我們希望借助商業化的力量去支持ShardingSphere的持續發展,通過SphereEx為ShardingSphere注入更多新的活力。
由于ShardingSphere項目本身足夠成熟,因此我們將所有的基礎框架、功能都放在開源里,我本身是一個熱愛開源的人,我從開源中受益,所以我希望盡自己所能地去讓社區的其他同學受益,這也是SphereEx對待開源的態度。而面向商業客戶的部分,我們會選擇提供一些在相對特殊的場景下的面向小眾企業用戶的功能,包括我們會給用戶提供除了核心ShardingSphere之外,更多高級功能和一些全套的解決方案,這是SphereEx對開源與商業的不同部署。
SphereEx的創始成員,包括我們所招聘的同學,許多都是來自于ShardingSphere的開源社區。我在進行邀請的時候,會很直接地說,你已經熟悉了開源社區的玩法,如果你想換一份工作,以開源工程師作為你的下一個職業選擇,我很歡迎,我希望你能加入到SphereEx,我會付全款讓你去做部分開源、部分商業。我也希望通過這種方式,能夠讓更多熱愛開源的小伙伴有機會全身心地投入其中,去做更有趣、更有價值的事情。
對于身邊的同學,我們會盡量幫助大家提高綜合素質,我會推薦研發同學去寫技術博客,去conference或meetup上做一些分享。讓運營的同學幫助技術同學做二次編輯、審稿。
在SphereEx,每天的工作內容、接觸到的人、完成的目標、工作的氛圍,都和很多傳統大廠有所不同。我們更愿意花時間去打造技術本身,而不是要趕著上線。即使你今天沒寫代碼,就思考了一個方案,就寫了一篇文章,就做了一個分享,我都覺得沒有問題,這些都是很有意義的事情。
未來,SphereEx還會繼續探索開源商業化的道路,我們也將嘗試和云廠商合作,在云上提供我們的產品,包括海外的一些Cloud行為,這些都會在今后以SphereEx的身份去持續輸出。SphereEx也會繼續在Apache ShardingSphere背后去做支撐,去贊助社區的一些活動,舉辦更多更有價值的meetup。我也真誠地希望,有了這個公司的支撐,ShardingSphere社區能夠變得更好。
“娟”to“娟神”的成長之路
最后一個話題,拋開PMC、創始人、CTO這些title,我還想以個人的身份講一些小秘密,也算是對我成長經驗的一些總結和分享。熟悉我的同學可能知道,我是DBA出身,做DBA、做運維其實是一件很辛苦的事,而且從晉升的渠道來說,相比于其他崗位,DBA也不太容易出彩,晉升的機會和概率都不算多。這也是為什么大多數人,尤其是女生不愿意選擇這個崗位的原因。
我做DBA時也是一樣,可以說那時才知道什么叫痛苦。記得初入職場的時候,當時有一個業務,要從凌晨一點遷到早晨五點,期間是沒法休息的。又因為當時我跟業務同學配合得不是很好,遷移過程出了問題,可能需要回滾,相當于今天和之前的很多努力都白廢了。當時真的非常崩潰,加上一天沒有合過眼,三點多的時候真的堅持不住,我直接哭了,坐在那說了很多如”這事我不干了,簡直不是人干的事,一點價值也沒有”等等情緒類的話。
但是埋怨歸埋怨,第二天起來后你面臨的還是同樣的局面,還是要去上班,依然要自己去面對這個業務,依然要完成沒做好的工作。這件事給我上了很重要的一課,既然你在最開始就已經確定好要做這個行業,有些事就不是你有資格去做選擇的,你必須去面對一些挑戰,去承擔你該承擔的工作,不做就是不負責任的表現,并且在做所有事之前,充分的準備都是必要的。自此之后,對待任何事,我都會始終保持謹慎的態度,做任何操作前,也都會與負責同事進行反復確認。這件事無論對我個人還是對我的職業生涯都有非常重要的影響。
也正是在這件事之后,我的抗壓能力、做事情的能力有了非常大的提升。當時我是團隊里唯一的女生,一開始大家都叫我“娟”,后來DBA做得比較好了,叫我“娟姐”,再后來慢慢變成“娟爺”,直到有一天又變成“娟神”。其實我對title并不是很在意,有些可能就是大家互相之間出于客氣為了表示尊重叫的,有些則算是開個玩笑,這些都沒問題。但稱號的改變其實也能說明很多東西,至少說明你在一步步成長,一步步把自己的事情做得更好。我不在乎title,但我重視這個過程,這個經歷。我認為有的時候成長、經歷是比結果更重要的。
我在創業的時候,有時需要去做布道,去海外做演講,我會發現五六十人的分享者名單中,很難看到華人身影,有時只有我一個人。當然這可能是因為語言、跨領域等緣故。但我覺得如今國內開源已經發展得如此火熱了,我們的技術在海外也得到了大家的認可,我們應該去做更多的嘗試,去將我們好的東西呈現到世界的舞臺之上。只有這樣,才能證明我們的成長,證明我們可以去做更多的事。同時,這些同學也將有機會聯合起來,一起做更偉大的事情,這將會形成推動整個行業發展的力量。
最后,我也真誠地希望開源領域的工作者、貢獻者,以及即將踏入這一領域的同學能夠在未來共同努力,堅持我們的信仰,為這個領域,這個行業去創造更多的價值,加油!
嘉賓介紹
潘娟,SphereEx 聯合創始人 & CTO, Apache Member & Incubator mentor, Apache ShardingSphere PMC, AWS Data Hero, 中國木蘭開源社區導師,騰訊TVP。曾負責京東數科數據庫智能平臺的設計與研發,現專注于分布式數據庫 & 中間件生態及開源領域。被評為《2020 中國開源先鋒人物》,2021 OSCAR 尖峰開源人物。
會議推薦
在即將于5月14日-15日在北京舉辦的WOT全球技術創新大會2022中,潘娟老師也將作為演講嘉賓蒞臨大會“架構設計與架構實踐”專場。屆時,潘娟老師將圍繞Database Plus的理念,為大家進一步介紹Apache ShardingSphere的架構設計理念與設計哲學。
此外,快狗打車運維效能總監唐斌斌、轉轉架構部負責人杜云杰、騰訊云產品架構師崔凱三位業界資深技術專家,也將在這一專題中為大家帶來精彩的技術分享。感興趣的同學可掃描下圖二維碼了解更多參會信息。