程式媛成長紀:從DBA到研發工程師
轉自公眾號 | 技術瑣話,作者+右軍,螞蟻金服資深技術專家。興趣方向 高可用架構、研發管理和內建質量,與曲健、陳斌等專家經營公眾號:技術瑣話。微訊號:TheoryPractice
編者按 | 某日於X信偶遇張亮兄弟,已經跳槽到某東了。且開源專案Sharding-Sphere風聲水起。開源這件事,做一年不難,難得的是持續投入和品質,包括生態的養成。為了表達對於開源專案的支援,收錄張亮兄弟女弟子潘娟投稿一篇,作為程式媛可能獲得某些優待如( 妹子獨有的溝通優勢又能推動專案推廣、與啟榮老闆暢談人生 ),但仍然要經歷無數的虐( P1級故障、投訴、爭吵與被尊重) 、無數的跨越式成長( 資料庫、運維、分散式技術... ),成功沒有捷徑......
十一的北京秋高氣爽,坐在地鐵上寫下這些故事,願與你產生共鳴,與我總結後,繼續戰鬥。
起於DBA
-
契機
誠實講,我一直不清楚自己想做什麼。於是,研究生臨近畢業,麻木遊離在各大公司的面試中。感謝和啟榮 (劉啟榮,現京東金融運維副總監)的相遇,讓我開啟了DBA的航程。啟榮老大是個高情商、接地氣的老闆。我是第一次遇到面試談人生問題,不告訴面試結果,一言不合就讓我來聽他講課的面試官。當時他講到的資料庫與DBA的世界,以及那種自由又充滿生機的網際網路交流氛圍,讓我意識到有些人是與眾不同的,有些地方是心之所向的。
-
日常
DBA的工作是嚴謹、有趣、辛苦的。一個初出茅廬的丫頭,突然闖入一個全新資料庫世界,又空降在京東這樣量級的平臺上,所謂的資料庫技術、業務架構、系統的視野與網際網路的眼界,就像山呼海嘯一樣奔騰而來,以至於產生了一種真的扛不住的無力感。但是,為我抉擇的負責,為大家給予我信任的回報,持有這樣心理的我,開始瘋狂地像海綿一樣吸收著這海洋般的知識,並不斷提升著自己的認知。一整年的週末都躲到公司無人的會議室啃著《MySQL技術內幕:innodb儲存引擎》、《高效能MySQL》、工作筆記、Shell程式設計技術,去培養自己的資料庫知識及運維技能。因為我知道,當一個人沒有足夠實力的時候,只有時間和努力才能讓她蛻變,以及獲得別人的尊重。
作為組裡唯一的妹子,感謝他們只是把我當漢子用,而不是當牲口用。很多夜間運維的活兒儘量不給我。不過我真心覺得,只有這些真刀真槍的工作才能見識真正的戰場,只有這樣的戰場才能讓戰士迅速成長。所以我投入了這無盡的戰鬥中,看到過凌晨3點的月亮,也哭訴過整夜遷移無盡頭的折磨和無奈。 而第一次失誤導致使用者收到亂碼短息、被投訴造成P1級別(最高P0)故障時,也終於知道什麼叫電話被領導打爆。 一個人自責地在冬天回龍觀的大街上嚎啕大哭,不知所措,著急地想抽自己兩嘴巴子!現在覺得,那場景非常類似電影裡小姑娘被男朋友甩了的經典劇情。不過那種疼到骨子裡的自責確實讓我真切地感受到生產環境的重要性,以及DBA工作的極盡嚴謹,我輸入的一條命令背後是千千萬萬與業務緊密相關的資料,是無數使用者的使用與體驗。好吧,更是我甩給老闆的鍋和整個部門戰友們的KPI。感謝那一次次讓我頭破血流的南牆,因為它讓我知道了做事的深淺與尺度,讓我擁有了能夠面對更大挑戰的勇氣和力量。
-
總結
這段時間讓我成長為一個合格的DBA。除了掌握資料庫知識體系及周圍生態外,還積累了大規模資料庫運維經驗。此外,所謂的風險意識、快狠準和粗中有細的運維意識也開始慢慢建立。但我覺得有兩個能力非常重要,那就是:作為下屬對上級命令的絕對執行力,以及面對嚴苛環境的抗擊打能力。
承於DevOps
契機
人工運維以及指令碼運維已經無法滿足激增的業務發展,對資料庫運維要求出現多元化、多維度的需求。同時運維的邊際效益日益凸顯,於是整個運維部門開始向DevOps轉變。而當時負責資料庫工單系統自動化平臺建設的前輩突然被借調,於是該專案基本停滯。那時,我心裡小惡魔非常想讓我主動請纓負責這個專案,但當時的我並沒有多少專案開發經驗,人微言輕。可是,依據當時部門發展風向,自動化是大勢所趨,只有順勢而為,才能有機會獲得大家的認可和肯定,此時若主動出擊,便有可能危中求機。再靜心分析,前期積累的大規模資料庫運維經驗,可以讓我理解這個專案的核心需求和期望,而曾經和研發及運維同事的交往基礎、 妹子獨有的溝通優勢又能推動專案推廣。 於是在得到歡哥(周歡,現網聯資料庫負責人)鼓勵和授權後,開始動手!正如那句話所說:並不是所有的比賽,都能允許你做好十足的準備。面對危機,有時候嘗試放手一搏,可能會帶來希望和轉機。
-
日常
沒有Python經驗,我就死啃Python開發,並換工位到組裡Python大神旁邊,方便隨時請教。大半年的時間基本處於封閉開發狀態,實行小步迭代的敏捷開發方針。在地鐵上分析需求、設計方案、構思程式碼。在公司跟老闆明確需求、開發功能、解決Bug。週末則利用業務低谷,進行上線測試。此外,還要跨部門合作和推廣。剛開始的時候,工作推動很難有進展。因為別人根本不聽你說什麼,任你焦急、憤怒,全都無濟於事。越是想著如何說服對方,越只能得到升級版的爭吵。後來漸漸意識到,不要嘗試與他人爭對錯,因為根本沒有對錯。如何透過協商、退讓達到雙方共贏、雙方滿意的目的才是王道。 同時,啟榮哥告訴我網際網路的三不要精神:不要錢、不要臉、不要命,我覺得很有道理。在一次次的溝通和打臉後,信任逐漸被建立起來了。對方尊重你,是尊重你的付出,尊重你的能力,尊重雙方的利益。最終,資料庫工單平均執行效率提高70%、非法工單攔截率為30%、工單正確執行率保持在99.99%的報告終於為這大半年的付出畫上圓滿的句號。
-
總結
這個階段依據部門風向,從運維DBA轉向資料庫運維開發DBA,積累了專案開發經驗,未卜先知的情況下,竟為後續轉行打下基礎。此外,跨部門溝通合作、推廣也讓我懂得了要學會選擇和衡量、共贏與合作,並保持樂觀平和的心態。
轉於JAVA
-
契機
資料庫自動化工單平臺已取代人肉工單操作,發展趨於平穩,同時深感自己的圈子和視界太狹隘。就在這樣渾水摸魚的時候,啟榮老闆給我介紹了新的男神:張亮,原噹噹架構部負責人,熱愛開源,懷揣著將Sharding-Sphere打造為業界一流的金融級開源分散式資料庫中介軟體的夢想加入了京東金融。可能考慮到我DBA的知識積累和研究生英語水平,當然最重要的是我不要臉的人美心善。所以,讓我協助亮哥將Sharding-Sphere官檔翻譯成英文。開源、資料庫中介軟體、微服務、分散式事務、資料庫治理……一大堆新鮮的名詞衝進我貧困的大腦,開啟了更廣闊世界的天窗,並對我產生強大吸引力。此外,當時平滑的成長曲線讓我迫切想開啟自己狹隘視野的枷鎖。於是,我開始仔細分析現狀:開源、分散式、微服務、Java開發等對我來說又是個全新領域,轉行可能將拋棄部分積累的資料庫行業積澱。不過,這些資料庫運維經驗,對全是Java開發以及架構出身的團隊來講,未嘗不是一種互補的優勢。同時,前期資料庫自動化工單平臺專案也能幫我做跨行的平滑過渡。 思及此時,我終於跟啟榮探討了人生問題和情感問題,並轉向了金融級開源分散式資料庫中介軟體Sharding-Sphere的開發。
-
日常
前期對官檔的翻譯工作,讓我對Sharding-Sphere的核心功能,產品定位有了比較全面的理論層面認識。於是開始從原始碼層面入手,修改小的Bug,編寫測試用例,到後來負責一整塊的核心功能。在亮哥的指導下不斷深入Sharding-Sphere,並對編碼又了新的理解。它絕對不是故步自封,隨心所欲地編寫,而是存在規則和邏輯的簡潔優雅編碼之道以及重構迭代的價值意義。函式與函式之間的空行、段首多少空格、變數名字命名這些在常人眼裡無足輕重的事情都會被亮哥格外重視,他對設計和程式碼120%的要求讓我對細節有了100%的注重。從GitHub程式碼提交記錄可以看出整個變化的步伐,從平緩的小步改造,到後期的模組開發(見下圖)。坐在工位上看似發呆地進行思考設計、邏輯整理。獲得對整套業務邏輯的深刻理解,便覺得酣暢淋漓;透過DBA視覺和亮哥交流需求,得到新的啟示和想法,便覺得頗有意義;而更多時候是一個人進入所謂的”心流”,將腦子裡勾畫出架構用程式碼去漸漸實現,那種忘記周遭,沉迷於程式碼與音樂世界,又讓人感覺時光飛逝。當真正想做一件事情、對其充滿興趣的時候,才會知道什麼叫樂此不疲。
此外,也開始逐漸走向臺前,對外分享,建立影響力。透過認識大牛,同樣開闊了自己的眼界並培養行業靈敏度。京東線上平臺的分享擴大了Sharding-Sphere內部影響力;參加火幣、餓了麼、貝殼金服的交流分享則瞭解大家對資料庫中介軟體的認識和需求;擔任2018 ODF資料庫大會的主持,重新看到資料庫的行業發展;擔任ServiceComb交流活動的主持,則能感受到開源的力量。一次次活動經驗,也是一次次小小的積澱,慢慢讓自己懂得了分享的價值,並建立對外影響力。感謝各位大牛的提攜之恩,也感謝啟榮總,亮哥給予的一次次分享交流的機會。其實,每個人都有自己獨特的優勢,多多分析總結,因地制宜,合理運用,才有可能百尺竿頭更進一步。
部分分享照
片
-
總結
這一階段對內低頭磨鍊開發之道以及學習架構重構,並瞭解開源、分散式、中介軟體的架構體系。對外積極交流分享,培養行業影響力,鍛鍊表達能力。對時間自由掌控,對事情要求極致。
合於?
當下,仍需不斷對所在行業的寬度、深度進行積累。在資料庫中介軟體、DataBase Mesh、開源方面投入主要精力。在亮哥帶領下將Sharding-Sphere做到理想高度(P.歡迎關注!)。同時,也希望自己多思考,多磨礪下品性,把控前進方向,明確目標。然而現實很骨幹,淺薄的我還在探索之中。對於未來,如果你的高度不足以支撐你當下的選擇,不如借鑑下大牛和前輩的思考,站的在那個高度的他們的指點或許會給你開啟新的天窗。
一路成長,總結其原因,我覺得主要有三大點。第一,感謝我上面提到的各位老闆能給予我機會、能放權讓我去做事情、能寬容我的傲慢與偏見;第二,感謝京東的大平臺,能讓我結識到這些大牛前輩,能讓我看到不斷變化進步的世界,並推動我不得不去自我提升;第三,則是感謝自己,懂得思考並及時按照發展調節方向,唯有全力以赴、放手一搏才能危中求機。
我會在這個領域走多遠多高,我能擁怎樣的生活, 能寫什麼樣的故事,又能和哪些人一路相伴?對於未來,現在的我也同樣沒有答案。只是,曾經一步步紮紮實實的探索確實讓我有了更堅強的意志和勇氣去面對必須要面對的現實。願這一路的小小故事,能給正在閱讀的你一些思考和想法,並引起你的共鳴。倘若如此,也不枉這個十一假期一次次的碼字和修改,也不枉右軍老師的邀請。我相信每個人都有自己的故事,每個人都是獨特的你!
作者介紹:
潘娟,京東金融高階DBA,主要負責京東金融生產資料庫運維及資料庫平臺、中介軟體開發工作。多次參與京東金融6.18、11.11大促活動的護航工作。曾負責京東金融資料庫自動化平臺設計與開發專案,現專注於Sharding-Sphere分散式資料庫中介軟體開發。樂於在資料庫、自動化、分散式、中介軟體等相關領域進行學習和探索。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545820/viewspace-2217651/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關愛程式媛成長指南
- 遊戲研發的設計規範(二):成長的積澱——從臨摹到再創造遊戲
- 從程式碼到產品,我的IT職業成長之路
- 一個女孩從軟體測試工程師到主管的成長曆程工程師
- 【報名】TF54:工程師成長地圖與卓越研發組織打造工程師地圖
- 從工廠流水線妹子到Google上班程式媛,看完後,我跪服了!Go
- Oracle DBA的學習進階成長樹-從初出茅廬到高瞻遠矚(超經典)Oracle
- 後端成長之路:從菜鳥到架構後端架構
- Golang研發工程師Golang工程師
- 一個 SAP 開發工程師的成長史工程師
- 騰訊首席工程師:程式設計師成長之道工程師程式設計師
- DD : Go/PHP 研發工程師/專家(國際化增長)GoPHP工程師
- 芒果TV招聘研發工程師(JAVA PYTHON),地點長沙工程師JavaPython
- 從0到1,如何在6周內成為機器學習工程師機器學習工程師
- 從菜鳥碼農到Java架構師——成長指南Java架構
- 系統測試-從研發到測試過程
- 程式猿與程式媛
- 從程式設計師升級到工程師 (轉)程式設計師工程師
- 從DBA到Oracle Applications DBA的轉變過程 (轉)OracleAPP
- 從DOS到Vista開放API的成長曆程API
- 怎樣成長為一個真正的Oracle DBAOracle
- 從面對程式碼下不去的文章,到DBA群討論
- 從零到 Go:Google感恩節火雞塗鴉開發紀實Go
- 小程式從入門到開發
- 程式媛的人生觀
- 從研發到落地,細數微軟與ROOBO這場AI合作!微軟AI
- 從研發到風投分析企業創新的範圍
- 前端工程師成長之讀好書前端工程師
- Web安全工程師長成技能表Web工程師
- 前端工程師成長之多讀好書前端工程師
- 前端工程師成長之多看好書前端工程師
- 《運維工程師成長之路》——導讀運維工程師
- 如何成為全棧增長工程師?全棧工程師
- 從刪庫到跑路,DBA 如何防止被淘汰?
- 樂視雲 招聘PAAS研發工程師工程師
- 招聘研發工程師 北京有生博大工程師
- 怎樣成長為一個真正的Oracle DBA(轉)Oracle
- 從1.5k到18k, 一個程式設計師的5年成長之路程式設計師