程序媛成長紀:從 DBA 到研發工程師

作者:潘娟,京東金融高級 DBA,主要負責京東金融生產數據庫運維及數據庫平台、中間件開發工作。多次參與京東金融 6.18、11.11 大促活動的護航工作。

前言

作為程序媛可能獲得某些優待如(女生獨有的溝通優勢又能推動項目推廣、與啟榮老板暢談人生),但仍然要經歷無數的虐(P1 級故障、投訴、爭吵與被尊重)、無數的跨越式成長(數據庫、運維、分布式技術…),成功沒有捷徑。寫下這些故事,願與你產生共鳴,繼續戰鬥。

一、起於 DBA

1. 契機

誠實講,我一直不清楚自己想做什麼。於是,研究生臨近畢業,麻木遊離在各大公司的面試中。感謝和啟榮(劉啟榮,現京東金融運維副總監)的相遇,讓我開啟了 DBA 的航程。啟榮老大是個高情商、接地氣的老板。我是第一次遇到面試談人生問題,不告訴面試結果,一言不合就讓我來聽他講課的面試官。當時他講到的數據庫與 DBA 的世界,以及那種自由又充滿生機的互聯網交流氛圍,讓我意識到有些人是與眾不同的,有些地方是心之所向的。

2. 日常

DBA 的工作是嚴謹、有趣、辛苦的。一個初出茅廬的丫頭,突然闖入一個全新數據庫世界,又空降在京東這樣量級的平台上,所謂的數據庫技術、業務架構、系統的視野與互聯網的眼界,就像山呼海嘯一樣奔騰而來,以至於產生了一種真的扛不住的無力感。

但是,為我抉擇的負責,為大家給予我信任的回報,持有這樣心理的我,開始瘋狂地像海綿一樣吸收著這海洋般的知識,並不斷提升著自己的認知。一整年的周末都躲到公司無人的會議室啃著《MySQL 技術內幕:innodb 存儲引擎》、《高性能 MySQL》、工作筆記、Shell 編程技術,去培養自己的數據庫知識及運維技能。因為我知道,當一個人沒有足夠實力的時候,只有時間和努力才能讓她蛻變,以及獲得別人的尊重。

作為組里唯一的女生,感謝他們只是把我當漢子用,而不是當牲口用。很多夜間運維的活兒盡量不給我。不過我真心覺得,只有這些真刀真槍的工作才能見識真正的戰場,只有這樣的戰場才能讓戰士迅速成長。所以我投入了這無盡的戰鬥中,看到過凌晨 3 點的月亮,也哭訴過整夜遷移無盡頭的折磨和無奈。

而第一次失誤導致用戶收到亂碼短息、被投訴造成 P1 級別(最高 P0)故障時,也終於知道什麼叫電話被主管打爆。一個人自責地在冬天回龍觀的大街上嚎啕大哭,不知所措,著急地想抽自己兩嘴巴子!現在覺得,那場景非常類似電影里小姑娘被男朋友甩了的經典劇情。

不過那種疼到骨子里的自責確實讓我真切地感受到生產環境的重要性,以及 DBA 工作的極盡嚴謹,我輸入的一條命令背後是千千萬萬與業務緊密相關的數據,是無數用戶的使用與體驗。好吧,更是我甩給老板的鍋和整個部門戰友們的 KPI。感謝那一次次讓我頭破血流的南牆,因為它讓我知道了做事的深淺與尺度,讓我擁有了能夠面對更大挑戰的勇氣和力量。

3. 總結

這段時間讓我成長為一個合格的 DBA。除了掌握數據庫知識體系及周圍生態外,還積累了大規模數據庫運維經驗。此外,所謂的風險意識、快狠準和粗中有細的運維意識也開始慢慢建立。但我覺得有兩個能力非常重要,那就是:作為下屬對上級命令的絕對執行力,以及面對嚴苛環境的抗擊打能力。

二、承於 DevOps

1. 契機

人工運維以及腳本運維已經無法滿足激增的業務發展,對數據庫運維要求出現多元化、多維度的需求。同時運維的邊際效益日益凸顯,於是整個運維部門開始向 DevOps 轉變。而當時負責數據庫工單系統自動化平台建設的前輩突然被借調,於是該項目基本停滯。

那時,我心里小惡魔非常想讓我主動請纓負責這個項目,但當時的我並沒有多少項目開發經驗,人微言輕。可是,依據當時部門發展風向,自動化是大勢所趨,只有順勢而為,才能有機會獲得大家的認可和肯定,此時若主動出擊,便有可能危中求機。

再靜心分析,前期積累的大規模數據庫運維經驗,可以讓我理解這個項目的核心需求和期望,而曾經和研發及運維同事的交往基礎、女生獨有的溝通優勢又能推動項目推廣。

於是在得到歡哥(周歡,現網聯數據庫負責人)鼓勵和授權後,開始動手!正如那句話所說:並不是所有的比賽,都能允許你做好十足的準備。面對危機,有時候嘗試放手一搏,可能會帶來希望和轉機。

2. 日常

沒有 Python 經驗,我就死啃 Python 開發,並換工位到組里 Python 大神旁邊,方便隨時請教。大半年的時間基本處於封閉開發狀態,實行小步迭代的敏捷開發方針。在地鐵上分析需求、設計方案、構思代碼。在公司跟老板明確需求、開發功能、解決 Bug。

周末則利用業務低谷,進行上線測試。此外,還要跨部門合作和推廣。剛開始的時候,工作推動很難有進展。因為別人根本不聽你說什麼,任你焦急、憤怒,全都無濟於事。越是想著如何說服對方,越只能得到升級版的爭吵。後來漸漸意識到,不要嘗試與他人爭對錯,因為根本沒有對錯。如何通過協商、退讓達到雙方共贏、雙方滿意的目的才是王道。

同時,啟榮哥告訴我互聯網的三不要精神:不要錢、不要臉、不要命,我覺得很有道理。在一次次的溝通和打臉後,信任逐漸被建立起來了。對方尊重你,是尊重你的付出,尊重你的能力,尊重雙方的利益。最終,數據庫工單平均執行效率提高 70%、非法工單攔截率為 30%、工單正確執行率保持在 99.99% 的報告終於為這大半年的付出畫上圓滿的句號。

3. 總結

這個階段依據部門風向,從運維 DBA 轉向數據庫運維開發 DBA,積累了項目開發經驗,未卜先知的情況下,竟為後續轉行打下基礎。此外,跨部門溝通合作、推廣也讓我懂得了要學會選擇和衡量、共贏與合作,並保持樂觀平和的心態。

三、轉於 JAVA

1. 契機

數據庫自動化工單平台已取代人肉工單操作,發展趨於平穩,同時深感自己的圈子和視界太狹隘。就在這樣渾水摸魚的時候,啟榮老板給我介紹了新的男神:張亮,原當當架構部負責人,熱愛開源,懷揣著將 Sharding-Sphere 打造為業界一流的金融級開源分布式數據庫中間件的夢想加入了京東金融。

可能考慮到我 DBA 的知識積累和研究生英語水平,當然最重要的是我不要臉的人美心善。所以,讓我協助亮哥將 Sharding-Sphere 官檔翻譯成英文。開源、數據庫中間件、微服務、分布式事務、數據庫治理。一大堆新鮮的名詞沖進我貧困的大腦,打開了更廣闊世界的天窗,並對我產生強大吸引力。

此外,當時平滑的成長曲線讓我迫切想打開自己狹隘視野的枷鎖。於是,我開始仔細分析現狀:開源、分布式、微服務、Java 開發等對我來說又是個全新領域,轉行可能將拋棄部分積累的數據庫行業積淀。不過,這些數據庫運維經驗,對全是 Java 開發以及架構出身的團隊來講,未嘗不是一種互補的優勢。

同時,前期數據庫自動化工單平台項目也能幫我做跨行的平滑過渡。思及此時,我終於跟啟榮探討了人生問題和情感問題,並轉向了金融級開源分布式數據庫中間件 Sharding-Sphere 的開發。

2. 日常

前期對官檔的翻譯工作,讓我對 Sharding-Sphere 的核心功能,產品定位有了比較全面的理論層面認識。於是開始從源碼層面入手,修改小的 Bug,編寫測試用例,到後來負責一整塊的內核功能。在亮哥的指導下不斷深入 Sharding-Sphere,並對編碼又了新的理解。

它絕對不是故步自封,隨心所欲地編寫,而是存在規則和邏輯的簡潔優雅編碼之道以及重構迭代的價值意義。函數與函數之間的空行、段首多少空格、變量名字命名這些在常人眼里無足輕重的事情都會被亮哥格外重視,他對設計和代碼 120% 的要求讓我對細節有了 100% 的注重。

從 GitHub 代碼提交記錄可以看出整個變化的步伐,從平緩的小步改造,到後期的模塊開發(見下圖)。坐在工位上看似發呆地進行思考設計、邏輯整理。獲得對整套業務邏輯的深刻理解,便覺得酣暢淋漓;通過 DBA 視覺和亮哥交流需求,得到新的啟示和想法,便覺得頗有意義;

而更多時候是一個人進入所謂的」心流」,將腦子里勾畫出架構用代碼去漸漸做到,那種忘記周遭,沉迷於代碼與音樂世界,又讓人感覺時光飛逝。當真正想做一件事情、對其充滿興趣的時候,才會知道什麼叫樂此不疲。

此外,也開始逐漸走向台前,對外分享,建立影響力。通過認識大牛,同樣開闊了自己的眼界並培養行業靈敏度。京東在線平台的分享擴大了 Sharding-Sphere 內部影響力;參加火幣、餓了麼、貝殼金服的交流分享了解大家對數據庫中間件的認識和需求;

擔任 2018ODF 數據庫大會的主持,重新看到數據庫的行業發展;擔任 ServiceComb 交流活動的主持,則能感受到開源的力量。一次次活動經驗,也是一次次小小的積淀,慢慢讓自己懂得了分享的價值,並建立對外影響力。感謝各位大牛的提攜之恩,也感謝啟榮總,亮哥給予的一次次分享交流的機會。其實,每個人都有自己獨特的優勢,多多分析總結,因地制宜,合理運用,才有可能百尺竿頭更進一步。

3. 總結

這一階段對內低頭磨煉開發之道以及學習架構重構,並了解開源、分布式、中間件的架構體系。對外積極交流分享,培養行業影響力,鍛煉表達能力。對時間自由掌控,對事情要求極致。

四、合於?

當下,仍需不斷對所在行業的寬度、深度進行積累。在數據庫中間件、 DataBaseMesh、開源方面投入主要精力。在亮哥帶領下將 Sharding-Sphere 做到理想高度。同時,也希望自己多思考,多磨礪下品性,把控前進方向,明確目標。

然而現實很骨幹,淺薄的我還在探索之中。對於未來,如果你的高度不足以支撐你當下的選擇,不如借鑒下大牛和前輩的思考,站的在那個高度的他們的指點或許會給你打開新的天窗。

一路成長,總結其原因,我覺得主要有三大點:

第一,感謝我上面提到的各位老板能給予我機會、能放權讓我去做事情、能寬容我的傲慢與偏見;

第二,感謝京東的大平台,能讓我結識到這些大牛前輩,能讓我看到不斷變化進步的世界,並推動我不得不去自我提升;

第三,則是感謝自己,懂得思考並及時按照發展調節方向,唯有全力以赴、放手一搏才能危中求機。

對於未來,現在的我也同樣沒有答案。只是,曾經一步步紮紮實實的探索確實讓我有了更堅強的意志和勇氣去面對必須要面對的現實。願這一路的小小故事,能給正在閱讀的你一些思考和想法,並引起你的共鳴。我相信每個人都有自己的故事,只要不斷學習精進,每個人都是獨特的你!


今日精品課推薦

GitChat 達人課《PostgreSQL 優化器入門》,我們邀請到了超過 13 年從業經驗的 Pivotal 資深開發工程師、數據庫內核專家張樹傑老師手把手帶領大家從 0 開始,直至熟練掌握 PostgreSQL 查詢優化器做到全流程。

課程亮點

  • 數據庫內核專家通俗解讀 PostgreSQL 優化器

  • 無需閱讀分析 PostgreSQL 源碼即可快速掌握

  • 分析優化器經典做到/數據庫從業人員的核心技能

掃碼免費試讀學習

本課程從一個 SQL 語句的執行開始,逐步分析優化器中涉及的各種優化原則,從參數、系統表、執行計劃開始說明,逐步由表及里、由外及內,把 PostgreSQL 優化器背後隱藏的優化思想一一列舉出來,最終幫助你透徹掌握 PostgreSQL 優化器的做到。點擊閱讀原文,免費試讀了解!

分享到Facebook

 


不知道如何找適合的對象?歡迎加官方LINE → Line ID:@shesay
戀愛小秘書免費一對一諮詢!
✔追蹤我的YouTube:https://www.youtube.com/@datenami
✔追蹤我的TikTok:https://www.tiktok.com/@datnami

 

配對成功的關鍵:參加實體交友活動

erose主題派對與戀愛小秘書創辦人娜米表示:「透過各種有趣的實體活動,不僅能親眼真實見到異性,也能在活動進行中讓大家很輕鬆自然的認識彼此、聊天互動,能更快速的找到適合的對象。」

結合大數據用心篩選 + 客製化條件配對

戀愛小秘書團隊已經成功替4000位以上的未婚男女配對成功,這個驚人成果背後的秘密在於「高度客製化服務」,跟每位客戶深度訪談,瞭解客戶真正的特質及需求,從「契合度」提高速配率。

訪談結果結合專屬的人格分析測驗與數據配對分析,精緻化的操作,締造高速配率!

除此之外,戀愛小秘書團隊還會定期追蹤客戶的後續狀況,目的是希望協助客戶發展長期且穩定的伴侶關係。

實名認證防造假!隱私保護最安心!

採用「實名認證」的制度,不僅是把關顧客的身份,避免已婚人士或動機不單純者的加入,更對客戶資料嚴格保密,讓客戶們能在安全且有隱私的狀況下認識另一半。

多元有趣的主題活動,豐富你的社交生活

戀愛小秘書團隊每個月都會規劃豐富多元的實體活動,從戶外踏青、娛樂遊戲、手作、料理課程到桌遊活動,希望客戶們能從歡樂的氣氛中認識彼此。

透過實體活動讓大家先有初步的接觸,然後再為會員們做「客製化」的約會安排。

另外針對想提升自身魅力的客戶,也有投資理財、形象穿搭等講座可供選擇。

追求脫單,先勇敢跨出你的第一步

許多單身者為了心中理想的對象條件,在還沒認識新朋友時,就先限制了自己。建議以認識新朋友的心態,積極參與活動,並適當的設限,才能真正為自己帶來戀愛的機會!勇敢跨出第一步吧!

♡ 現在就和戀愛小秘書娜米聊聊吧Line ID:@shesay

♡ 追蹤娜米的臉書粉絲團

她來報好康

 

SheSay 專注在 兩性、愛情等領域
建立專屬女生觀點的品牌形象
堅持「在第一時間掌握男女的時事議題」
將時下最流行的話題網羅、呈現。

馬上測算你的戀愛密碼

戀愛小秘書-娜米

單身很久?一直被分手?
從生日就看出你的戀愛疑難雜症!
娜米的戀愛數字密碼來幫你了。