1. 程式人生 > >陳吉平-阿里巴巴離職DBA在35歲總結的職業生涯

陳吉平-阿里巴巴離職DBA在35歲總結的職業生涯

導讀:去年很多朋友私下或新浪微博上在總結自己的職業生涯與職業規劃,也感覺到很糾結與彷徨,尤其技術人的職業生涯,隨年齡增加,一些優勢逐漸喪失。4月 13 日資料庫技術大會的主辦方舉行的晚宴上,也讓本人支援一個大家感興趣又貼合實際的話,話題是:三十歲後的 IT 人如何抉擇人生路,遺憾的是預訂酒店飯桌是幾個房間打通的,而不是一個大廳方式(總共:8桌),大家無法圍繞在一起,為此只是小範圍討論了下,今天看到曾經阿里巴巴資料庫團隊的海波兄弟總結分享,非常有意義,轉載給大家共同欣賞!

十五年前,你或許還不懂愛情,看 Jack 和 Rose 執手相看淚眼,只是蒙朧的心痛。十五年後,你會和誰一起走進影院,更會和誰一起,走到生命終點。

十五年前,我還不太懂技術,憑興趣玩著C語言。十五年後,當鐵達尼的旋律再次響起,我會選擇和哪門技術,一起走到我職業生涯的終點。

  序言

  —- 回望雨中的園區,更是回望來時的路。

此時天空飄著小雨,正如絲絲織雨細如愁。我剛剛離職,一路走出園區,回望了一眼雨中阿里巴巴的大樓,思緒隨著微風,四處飄散。突然想起幾年前我剛到杭州哪天,也是細雨微風。我走進城西的創業大廈,終於見識了大師 Biti 的風采,也從此開始我的阿里巴巴之旅。

杭州的特點,是隱匿在山青水秀之間,有很多雅至的主題飯店,團隊第一次出外聚餐,就是在山間繞來繞去,最後到了一處青山環繞、綠水長流之處。Biti 在會議上就“什麼是架構”進行了精彩的評論,高度已經超越普通技術人員,至今我仍記憶猶新。但不久之後,Biti 調至支付寶,真是遺憾。而這讓我面臨了空前巨大的壓力,因為 Biti 一走,我變成了團隊級別最高的 DBA。初來乍到,入職剛滿一月,忽然成為阿里系一個子公司的“首席 DBA”,驚喜之餘,感覺壓力之大、常常令我透不過氣來。不過還好,時間總一晃而過,此時此刻,剛剛走出阿里,掏出手機,拍了一張照片,算作我在阿里的留念,更是我人生一段最重要經歷的留念。

阿里巴巴離職DBA在35歲總結的職業生涯

回望雨中的園區,更是回望來時之路。…………

  來時之路:矽谷,IT 傳奇的開始。

  —- 人可以依靠夢想活一段時間,但不會一直下去。

  “坐落在縱橫交錯的高速公路之間的,是巨型的商業園區和簡陋的三臥兩浴的平房住宅,其間最高的建築是變電站的鐵塔和架著電話線的水泥杆子。真正的工作是員工們在簡陋的、用屏風隔開的小辦公室裡,眼睛盯著電腦螢幕靜靜完成的。每個人都試圖做一些前人沒有做過的東西。”

這就是李彥巨集在《矽谷商戰》中談到的矽谷的樣子。

曾經有兩個在一家公司供職的工程師,去找矽谷著名的投資家史蒂夫·朱維森,這位資深風險投資家對他們提出網上資料庫系統並不感興趣,他問:“你們還有其他主意嗎?”

其中一個叫比爾·巴迪亞的工程師就說,他還想通過因特網來提供免費的電子郵件賬戶,從網上廣告為獲取收入。10天之後,朱維森連商業計劃都沒要便掏出 30 萬美元幫助他們成立了 Hotmail 公司。Hotmail 後來以 10 億美元的天價賣給了微軟公司。

這在當時看來有些離譜,但這樣的故事到處流傳,充斥著各類勵志雜誌,也充滿著我的心。

世界上賺錢的公司多的是,但沒有哪家公司的口號是改變世界。看看現在的 IT、網際網路公司,每個公司的口號中幾乎都包含著改變世界的夢想。而且從微軟、蘋果這類老一代革命家,到 Google、Facebook 這類矽谷新星,也的確有很多家公司或多或少的改變了世界,或至少是深深影響了世界。

IT,網際網路,這是一個傳奇的行業。當我的手撫過鍵盤,當眼光劃過滿屏自己寫的程式碼,澎湃的激情,從來都沒有息滅過。但無論多大的激情最終都會有息滅的時候。人可以依靠夢想活一段時間,但不會一直下去。

1996年,我職專畢業。職專,是差等生的代名詞。職專生的夢想,一般都是成為某武俠小說的男主角,有一個酷酷的名字,有一堆驚豔的紅豔。我也不例外。但這一切,在 96 年的夏天到來時,突然中止了。原因我應聘到了一個很小規模的計算機培訓中心—“辰星計算培訓中心”。還有,我看了辰星書櫃中的電腦報合訂本。

有一篇故事我仍然記得,《軟體輝煌》,其中詳細講述了蓋茨創辦微軟的經歷,還有 Word 的開發歷程,……。一群大男孩,用電腦改變世界。美國,矽谷,IT 界,從來都不缺這樣的故事。雖然這樣的故事從來沒有在東方某個偉大的國家發生過。

合上電腦報,一個想法出現在我的腦海中,哪就是我要做中國的比爾。蓋茨。年輕人總有夢想,不是嗎?

一年後,1997年的夏天,四個辰星公司的“核心”員工,告別辰星,踏上創業之路。四人熟讀微軟、乃至矽谷的歷史,這些歷史讓他們熱心沸騰。

40年前,電晶體之父肖克利博士的故鄉,美國西海岸的聖克拉拉,八名懷著夢想的年輕人離開肖克利半導體實驗室,創辦了可謂矽谷搖籃的快捷半導體公司。這就是著名的八叛逆。而我們,則自許“四叛逆”。

我們在和辰星僅一牆之隔的地方,買了二十臺電腦,投資達十萬,創辦了紅星計算培訓中心。哪一年,我們十八歲。

  光輝歲月

—- 青春總是這樣苦澀,但在長長生命之中,裝在記憶這個罈子裡,慢慢的發醇,最後卻能化為無比的感純。這或許就是生命的魔力。

………………

夢想總是遙不可及

是不是應該放棄

花開花落又是一季

春天啊你在哪裡

青春如同奔流的江河

一去不回來不及道別

只剩下(平凡)的我沒有了當年的熱血

看那漫天飄零的花朵

在最美麗的時刻凋謝

………………

紅星的創辦,讓我們的年青歲月,都達到了頂峰,此後再無超越。我們在同學中間成為傳奇,成為創業的典泛。甚至有同學的同學,還幕名前來,向我們請教人生。

在紅星除了講課,我們還為一些傳銷公司開發核算、財務軟體。我還用C和彙編,寫各種有趣的程式。我用匯編寫過一個 DOS 下記憶體駐留的程式,寫完很有成就感,自信潢潢。但轉念一想,要學的東西如此之多,不知何年何月才能學完,霎那間又充滿急燥。

那段青春歲月真是難以形容。快樂與淚水,自信與自悲,堅持與彷徨,……,各種各樣的感情交織著,匆匆的,過去了,不再來。

寒來暑去,花兒謝了又開、開了又謝,時間就如同夏日傍晚的涼風,輕輕的帶走了歲月,只給人留下,多樣的回憶,哪怕這回憶是如此的沈重。

小學三年級時,還是 1987 年,我在書店看到一本書,作者是諾查丹馬斯。書中詳細介紹了他的一系列預言,從獅心王理查的死期,到西特勒的出現。當然,最後是 1999 年人類大災難,恐怖大王從天而降。很不巧,當時哥哥剛剛帶我看完電影《超人》。超人故鄉星球毀滅的特效,雖然在現在看來雖然拙劣不堪,但當時強烈震憾了我幼小的心靈。如今再看諾查丹馬斯的預言,我幾乎已經看到了地球在強烈的地震、大火中,變為一片廢墟。出了書店,我萬念具灰。我馬上找到我的一眾好朋友,將這個惡耗講給他們:“我們只剩 12 年好活。”,未了,看著他們一個個臉如死灰,我卻突然心情大好起來,悠載悠載的回家寫作業去也。有了這種經歷,使我完全相信微博上的一句話:不要向任何人訴苦,因為 20% 的人不關心,剩下的 80% 聽到後很高興。這是題外話,我們繼續。

12年後,1999年到了,我卻再無所謂。或許大家一起死了,比我迷茫的活著更好。曾經輝煌的紅星,只不過幾年,便已面目全非,曾經的朋友,分道揚鏢。在千禧年來臨的前夜,我和幾個同樣迷茫的年青人,喝著劣質的白酒,揮灑著青春,也揮灑著生命。

青春總是這樣苦澀,但在長長生命之中,裝在記憶這個罈子裡,慢慢的發醇,最後卻能化為無比的感純。這或許就是生命的魔力。

我相信人生是一段段例行公事,一段忙完又一段,直到盡頭。在紅星的大門關上哪一刻,我告訴自已,一段生命結束了,要開始新的一段了。

2000年春暖花開之際,我踏上新的征程。通過以往學員的關係,到了我市一家百年老字號—五福糕點,做學徒。強烈的急燥心理,令我急切的尋找一條可以快速發家致富之路,我當時的選擇是:糕點師。但我並沒有忘記我的夢,我的蓋茨之夢,我的程式設計師之夢。2000年周星馳賀歲片《喜劇之王》上映,其中一句“我是一個演員”,深深打動了我。我想,或許有一天,別人吃著我做的極品慕絲,我卻告訴別人:”其實,我是一個程式設計師”。

羅紅可又先做糕點,開好利來,賺了錢再當攝影師,我也可以。成長就是這樣,我的目標,已經從創辦 Intel 的肖克利八判逆,或蓋茨等世界級大腕,變成了中國人羅紅。其實,極便是羅紅這樣的成就,也是高高在上的。所又,我成熟了,但還不夠成熟。我想成為一個不普通的人,原因就是我是一個太普通的人。

幾個月後,我放棄糕點,拎起菜刀,成了一個飯店的幫廚學徒。

幾個月後,我放下菜刀,在路邊擺攤買精品。

幾個月後,我開了一家精品店。

幾個月後,精品店倒閉,我賠光了所有錢。

這就是成長的代價。路不去走,就不知道原來走不通,更不知道哪條路可以走通。

其實,在這一年左右的時間中,也不是沒有收穫。在飯店做幫廚學徒時,我認識一個廚師。當其他廚師都是打檯球、或站在街邊對著過往的美女吹口哨時,他在練習刻花,或者學習。他說,他的目標是要上天津一所廚師大學。我們一直保持著若有若無的聯絡,我要看看他的堅持是否會有結果。我想,他也這麼想的,他也想看看,我的堅持,會不會有結果。因為,無論在幹什麼,我也從沒有中斷學習。我不會吃口哨,檯球打的也不好,他在苦練刻花時,我通常會拿起嚴蔚敏《資料結構》、同濟大學版的《離散數學》等等。從 96 年到現在,從我看完比爾。蓋茨故事哪一刻起,無論的目標如何變化,我可以自豪的說,我的 IT 夢,從沒有一天停止過。也從沒有在哪個階段,停止過學習。

還在五福糕點時,雖然這個決定有點晚了,但我還是決定放下 DOS。開始看《Windows 程式設計》這本號稱 Windows 下的聖經。當我拿起菜刀時,同時,嚴蔚敏的資料結構,已經開始看第二遍了,這本書後來成為我走北上、南下必帶的書。而在精品店時,對於始終不明所又的編譯原理,我也沒有放棄,買了本號稱龍書的,但我最終對編譯原理還是不明所以……

4年後,那名廚師告訴我,他並沒有去上廚師大學,他在北京的一家飯店,一個月已經拿到八、九千塊。6年後,他仍在北京,但薪水已經到達一萬五了。到我入職阿里巴巴高階資料庫專家時,他已經到了廣州,薪水和我在阿里不向上下。之後,我們失去聯絡,不再有彼此的訊息。因為我們在各自的身上,都已經找到結果。

  殘酷的青春

  —-  在某一階段,或許我們在尋找的和拒絕的都是自己

  中國最神密的部門是有關部門,最危險的工種是臨時工。2001年的夏天,我來到鄭州,到了我向往以久的事業單位,省計算中心,可惜從事最危險的職業:臨時工。

從小,媽媽就教導我:“要好好學習,長大了進事業單位,有個鐵飯碗。”

我問媽媽:“為什麼只有事業單位才有鐵飯碗,其他的就沒有嗎?”

“其他單位會破產啊,效益不好會倒閉,發不下工資。”媽媽沒加思索的回答我。

我又不理解了,“哪會為什麼事業單位就不會效益不好呢?”

“事業單位是國家嗎,國家可以印錢啊。錢不夠了就印。所以事業單位永遠都不會缺錢。”媽媽回答我。

我想起阿甘正傳中的一句話,Momma always had a way of explaining things so I could understand them. 媽媽總是有辦法讓我明白道理。

媽媽的目標,就是讓我能進事業單位。現在,我終於進了,這多虧了一個親戚。但我只是個臨時工。我的工作是講課,還有為其他各個大小企、事業單位開發各種程式。我在計算中心一共待了 7 年,前 2 年,都是作為程式設計師,後來才轉 DBA。那兩年,我也為河南的不少企、事業單位開發了大大小小不少程式。現在想想,還有些後怕。常常午夜夢迴,驚出一身冷汗。萬一哪天我當年寫的程式有問題,會不會被跨省追捕回去。或許我下半輩子最好待在,和中國沒有引渡協議的國家,才能真正安全。

事業單位大家都互喊老師,在阿里的時候,大家都互喊同學。所以後來到阿里後,感覺年青了幾歲,哈哈。在事業單位,正式的愁每天無事可做,臨時的愁每天有太多事要做。常常一個上午跑兩個單位解決問題,下午又要回去參加會議、討論新軟體的架構。在馬不停蹄的忙碌中,我一直在考慮我將來的發展。誰都明白一個道理,如果想從一個行業中脫穎而出,只有兩種常見的可能:要麼技術牛X,要麼佔得先手。技術牛X這個,不容易做到,所以,對我來說,取得成功的最簡單方法只有一個,“取得先機”。

我們都明白一個很簡單的道理,當火焰燒起來的時候,你才想到去加柴火,只能收穫一堆灰燼。於是,我開始以我自己的判斷,從眾多的技術種類中,找到一個還在發展中的技術。

經過苦苦的尋覓,瞭解了眾多專家學者的一直看法,我選定了承載我希望的東西—-VRML。VRML 是 HTML 的 3D 版,當時一些專家預測,未來的網頁,都將是這個樣子的。

想想看,3D 的網頁,酷吧。開啟網頁,首先看到一扇門,用滑鼠點一下,門打開了,隨著滑鼠的移動,你的虛擬形象走進房間,這是一個客廳,有三三兩兩的網友進進出出,大家互相在聊著天,還有幾個網友在角落中私聊,…………,怎麼樣,這樣的網頁夠酷吧。

那是 01 年的仲夏,傍晚的涼風,讓經歷了一天酷暑的人,感到格外輕鬆。夕陽西下的天邊,還飄著幾朵雲彩,恰到好處的點綴著色彩絢麗的天空。我騎著自行車,輕鬆的穿行在大街小巷。我的心情格外的好,因為我剛買了一本書,是專門講 VRML 的。而且,我找遍了整個書店,只找到一本關於 VRML 的書。這更加證實了我的猜想,VRML 目前還比較小眾,是一門方興末艾的技術。只要抓住時機,在 VRML 全面代替 HTML 前,將 VRML 學的比較精通。等到 VRML 大行其道時,我的名字將隨著 VRML 一起,響徹全國。哈哈哈哈,……,想到末來的美好前景,我幾乎忍不住要逛笑起來。但命運如同橫穿馬路的汽車,在你得意忘形時,將你的夢想擊的粉碎。

2004年,一晃三年過去了。HTML 勢頭不減,Flash 紅遍國內,之於我的未來希望:VRML,不提也罷。這從一個測面證明,不要相信所謂專家、學者的預測。絕大多數的預測,都是錯誤的。就像 IBM 創史人托馬斯·沃森曾經作出了:“全球只需 5 臺計算機”的預言一樣。專家對未來的預測,往往是不靠譜的。企業家公開發表的預測,往往更不靠譜,他們的預測是為了對他們的產品和市場策略作宣傳。就如同早些年 Larry Ellison(拉里。埃裡森)將預言未來 PC 將不再是主角,NC(網路計算機)都是主流。可惜早些年我不明白這些道理,浪費了幾年時間。

如果能成功的搶佔“先手”,無疑會以最小的代價、獲得最大的成功。但是,如果你自以為是“先機”的東西沒有發展起來,一切都將是竹藍打水,一場空。

搶得“先手”固然可以使用自己更快的功成名就,但刻意的去搶,往往適得其反。成功搶得“先手”,這是上帝賜給你的禮物,可遇而不可求。這段經歷讓我明白,不要刻意追求快,欲速則不達,還是一步一個腳印來得穩託。

其實仔細想一想,歷史上固然有比爾。蓋茨、喬布斯,有 Google、FaceBook,等等人或者公司,以創新、搶先贏的市場和尊敬。但是,成功的人一定都是少數,還有更多的人,同樣的才華橫溢、同樣的聰明無比,但是,他們的創新、他的“先機”,都失敗了。歷史不會記得他們,因為,歷史,是勝利者的豐碑。

矽谷的風險投資商厲害吧,他們肯定不會將錢隨便投給不靠譜的人、不靠譜的專案。但是,即使經過矽谷風投認定靠譜的事,成功率仍只能達到 20% 左右,80% 的失敗者沒有人會記得。

幾年的堅持,幾年的努力,只不過去學了一個毫無用處的東西。其實從 03 年開始,我就想過要放棄,我可能壓錯了寶、選錯了方向。無數個夜晚在孤燈前學習,換來的只是毫無價值的技術!

我的內心,很不願意承認這個實事。人有時候最難否定的,就是自己。一直堅持到 04 年,還是一個仲夏的傍晚。依然是涼風習習,天空依然是絢麗多姿。我沿著金水河隨意的漫步,我想,是不是要放棄了。一根接一根的抽著煙,買了幾罐啤酒,一罐接一罐的喝著,夕陽將我的影子拖的老長老長。在某一階段,或許我們在尋找的和拒絕的都是自己。你認為它錯了,後來發現又對了,釋然之後,你擔然承認,自己執著了。錯和對重要嗎,關鍵是它過去了。

是的,過去了。

這之後不久,因為工作需要,我開始接觸一個新的東西,Form 和 Report,是一種很少人聽說的,一種叫 Oracle 資料庫的開發語言。各種語言對我來說是駕輕就熟,除了安裝配置,這兩種語言的開發,我很快就撐握了。我的歷史,也因為這兩個東西而轉折。

  燈塔:ITPUB

  04、05年,我一直在做 Oracle 開發,主要使用的就是 Form、Report,當然,還有 OCI。在一些專案中使用 OCI,純粹是出於對C語言的偏愛。其實大多數我們的軟體,可以全部使用 Form 和 Report。

我從開發轉型為 DBA,是一個很偶然的事件。04年底,在給海關做一個專案時,認識了一名搞網路的技術人員,他剛剛考過 CCNP,正在向 CCIE 努力。當時,我從沒想過要考什麼認證,因此,也不瞭解這些認證。聽了 CCIE,也沒什麼概念。他跟我講,Oracle 有一個很牛的認證,OCM。考過了後可以身價倍增。我回去在網上查了一下,說是當年亞州只有 4 名 COM 等等,總之就是很牛*。這個結果令我大吃一驚,我沒想到一個認證,能有如此難度與作用。從此,我開始了我的轉型之路。

其實我們單位從 02 年就開始使用 Oracle,幾年下來,也基於 Oracle 開發了不少專案。很多地方有時也要求我們在專案交付的同時,提供容災、高可用方案。但這些是我不肖做的。曾經的我對 SA 和 DBA 是如此的不肖一顧,“只是搬搬機器、裝裝系統的民工”。我的夢想是創造,創造獨一無二的程式,獲得鉅額風投,憑一已之力改變世界,我能,我可以。當夢想的浮華散去,我發現,8年過去,我仍站在原地。

我是從備份、恢復切入到 DBA 這個行業的。04年底,我們為海關做了一個專案。專案完成後,我為他們搭建了 DataGuard,同時,寫了個指令碼每週未備份 DataGuard。當然,在專案軟體中我也做了個按鈕,如果需要,他們可以隨時點這個按鈕觸發對備庫的備份操作。軟體中還有個按鈕是將備庫直接啟用的,啟用之後,備庫要重搭,並且,如果 Redo 檔案有問題的話,啟用會丟失些資料,不過,這個專案的資料丟掉些他們可以接受。整個這些東西,我做為了高可用、容災的方案,濃重的寫進專案文件。當然,免不了介紹的天花亂綴。哪個時代,大家對 Oracle 都沒有什麼概念,你只要能把庫裝上,都會有人說你牛。客戶測試了備份、切換這些功能,再加上看了我天花亂綴的文件,對於災備方案、高可用方案非常滿意。我們領導後來得知這一情況後,專門問我是否有意轉型做 DBA,我自然沒有問題。我已經厭倦了開發,或者說,厭倦了老是為了別人的需求,開發程式。聽說 DBA 還算輕閒,我計劃轉做 DBA,再利用剩餘時間開發自己的程式。但不可否認的是,Oracle 是有它獨特的 Mei 力的。隨著對 Oracle 學習的越來越深,我慢慢的發棄了我的開發夢。

這一切的轉變,都是很自然的,自然到我每每想起,總覺得那是命中註定。

數萬年間我和 Oracle 相遇了,沒有早一秒,也沒有晚一秒,哪也沒有別的話說,唯有說一句,原來你也在這裡。

海關的專案之後,我開始考慮,如何讓使用者的資料在切換時也可以保持不丟。最後考慮的結果很簡單,就是將 Redo 每組中設兩個成員,每個成員都在不同的儲存上。但當時有記得有人說這樣做會對效能有影響,即使存放日誌的兩臺儲存一模一樣。但也有人說沒有影響。我在網上查了很多資料,大家的說法,莫衷一是。最後經過測試,結論很簡單,有影響,但影響不大。對於這個結論,我想大部分讀者也不會滿意。到底影響在什麼地方呢?

每組中兩個成員,每個成員在不同的儲存中,儲存效能是一致的。說這種情況下寫 Redo 效能不會有影響的人,主要是認為 LGWR 會同時寫兩臺儲存中的兩個 Redo 檔案。如下圖所示:

阿里巴巴離職DBA在35歲總結的職業生涯

但是,我們考慮一點,LGWR 程序只有一個,儲存有兩臺,向A儲存寫和向B儲存寫,必然是兩條語句,一個程序怎麼可能同時執行兩條語句呢。所以,上圖不對,應該如下圖所示才是:

阿里巴巴離職DBA在35歲總結的職業生涯

LGWR 傳送命令寫A儲存中的 RedoFile,不必等待寫完成(因為是非同步 IO),LGWR 再發送命令寫B儲存中的 RedoFile。LGWR 只有一個程序,不可能同時發命令寫A儲存和B儲存中的兩個 Member,只能逐個來。但因為I/O是非同步的,向B儲存中寫 Redo Member,不必等向A儲存中的寫操作結束,而是如圖中所示,有部分操作是平行的。

從總的時間消耗上看,圖 1 中錯誤的理論,共耗時1.002 ms, 圖 2 中正確的理論,共耗時1.003 ms。當然,時間是我隨意加上去的,但對於現代的計算機系統,“發出一條命令”,“接收一個通知”,消耗 0.001 ms 應該是過高的估計了。 寫磁碟的 1 ms,應該是差不多了,大部分資料庫寫日誌的響應時間,應該都是幾 ms 左右的。

通過上面兩個圖的分析,可以得出結論,讓 LGWR 寫兩個儲存,對效能有影響,但影響不會太大。多了圖 2 中最後一階段的操作:“B儲存向 LGWR 發出寫完成通知”。

有了這個結果,再後面的容災架構,如果客戶要求不丟資料,我都要求客戶準備兩套一模一樣的儲存,每個日誌組的兩個 Member,分別放在不同的儲存中。後來 DBA 逐漸增多,客戶哪裡,會有自己的甲方 DBA,對於災備系統,當我提出要兩臺一模一樣的儲存時,一些客戶會有疑問。我會詳細解釋 LGWR 的原理,其實,向客戶解釋的過程,也是傳播自己思想的過程。向客戶解釋的原理越多,客戶對我的信任感也越強,後面的事情也越好辦。

這些經歷,也直接促成了我後面的學習習慣—-重視原理。雖然原理這東西很虛無,但為了更好的說服客戶、取得客戶的信任,有時我不得不向客戶解釋這些東西。

說點題外話,總有人問研究內部有什麼用,我覺得最重要的作用就是,可以更好的忽悠客戶。

哈哈,這是玩笑話,有用沒用看自己愛好。有興趣就去研究,沒興趣就去做別的。這個問題不必糾結。

如果真有興趣去研究了,也一定會有回報。如果沒去研究,也可以當好一名普通的 DBA。

言歸正傳,能為客戶解釋這麼多東西,有一個網站功不可未,就是 ITPUB。我 05 年註冊了帳號,此後,只要有疑難問題,第一時間先上 PUB 上搜索。PUB 成為了工作、學習必不可少的網站。但是,我很少在 PUB 上發表什麼,因為我自己的功力尚不足,怕寫出錯誤的東西,耽心影響大家。但看了哪麼多好帖,從來沒有回過帖,現在想來,也讓我心中不安。於是從去年開始,我開始將這些年的積累逐步總結出來。我相信一個道理,有一個農場主,得到了一種優良小麥種子,但他不懂得分享,只在自家的地裡種這上了這種優質小麥。收穫季節到來時,結果他的優質小麥表現並不如何的好。他很不理解,就去請教一位專家。專家瞭解了情況好告訴他,只他自己種優質小麥,面積太小,旁邊別人普通小麥的花粉,會被傳播到他的優質小麥中,結果,影響了他的優質小麥的質量。第二年,這位農場主將自己的優質小麥種子分享給旁邊其他的農場主。由於有了足夠大面積優質小麥的花粉,到了收穫季節,大家都獲得了大豐收。現在時間已經成熟,我會慢慢將一些心得分享出來,

希望和大家一起研究、一起進步、一起豐收。

在乙方工作哪段時間,對於工作,我只有一點感觸。每天,我並不是為了單位而工作,我是為了自己而工作。只有自己的技能獲得提升,才是關鍵。我會選擇個別庫做為觀察物件,進行深入、細緻的分析,以此來煅煉技能。但人的精力是有限的,再加上單位給的福利待遇也不高,所以大部分庫,只要客戶不找我,我也不去找他們。

從 07 年開始,單位成立專門的資料庫運維團隊,決定讓我作為團隊的 Leader。我的工作重點,從單純的技術,慢慢變成了開會,參加各種會議。有些人對此樂此不疲,但我很不習慣。大家把活推來推去,把功勞爭來爭去。不單要開會,還要培養新人。慢慢的,一些庫分給其他人管理,使我可以專心去“開會”。很長時間裡,我無心從事技術,腦子中之想著明天要參加已經開了好多天的某專案架構大會、要最終確定下來的某事故改進會議、……

我心目中的管理會議是這樣:

阿里巴巴離職DBA在35歲總結的職業生涯

阿里巴巴離職DBA在35歲總結的職業生涯

實際上的會議是這樣:

阿里巴巴離職DBA在35歲總結的職業生涯

哈哈,我承認圖有點誇張。我實在不適合做扯皮這樣的事。或許隨著我年齡的進一步增長、技術實力的進一步加強。技術上已經沒什麼可學的了,活也幹不動了。每天開開會,扯扯皮,還有點意義。現在,這絕不是我想要的生活。古人都說,“學而優則仕”,我學還沒有優呢,如何去入“仕”呢。

07年我技術進步緩慢,如果一直這樣下去,我不知道,如果有一天單位辭掉我了,我該何去何從。沒有了技術優勢,一個單位的中下層管理人員,你到 51JOB 上搜索一下,有招聘“技術團隊管理者”這樣崗位的嗎。而且,計算中心是事業單位,從 05 年開始,我就一直謀求可以轉成正式的“在編制”人員。為此,我、包括我們全家人,使用了很多方法。但是,我們的希望最後都落空了。

其實,我本來也沒抱太大希望。

08年初,為了將來的發展,我決定辭職。這個決定或許已經有點晚了,但是,如果不馬上行動,將來只會更晚。

  在阿里巴巴遇見最好的 DBA 團隊

  我不喜歡飄泊的生活,也不喜歡新鮮的城市。只想在我家鄉哪座著名古都中,像被固化在虎珀中一樣去生活。但我的人生卻註定要去飄泊,而且,是在三十而立之年,才剛剛開始。千萬不要刻意去選擇自己的生活,因為你只能猜到開頭,卻猜不到結果。

我的第一站是北京,因為有朋友說可以為我介紹工作,但這份工作是 Oracle 講師。我的技術還沒有達到一定水平,還需要提高。這時候去做講師,實在非我所願。我的內心的理想目標,是去阿里系的公司:阿里巴巴、淘寶、支付寶。這些公司“大師”級的人物層出不窮,我想也應該是很多 DBA 的目標。但自己投簡歷過去,成功可能很小,我一向不喜歡自已投簡歷過去。所以,在 09 年初,考完 OCM 之後,我就一直想做點東西出來。正好一個朋友找過來,於是我們合作,很快就有了“Oracle 日誌挖掘研究版”這個程式。也很快的,阿里巴巴就給我打了電話。

到阿里面試是很爽的,來回的機票、酒店全部都已經訂好,就好像到杭州來了個一日遊。我是中午到的創業大廈,先被 HR 領到一個大廳裡,做了一份筆試卷子,說是 60 分鐘,但其實沒有人在旁邊計時,晚一會兒也無所謂。筆試題難度不高,和網上流傳的阿里巴巴筆試題差不多。做完筆試題,就是著名大師 Biti 的面試了。這是第一次見到 Biti,個子不高,但人很精神,說話極有條理。

Biti 面試時的難度也不高,大家聊的很好,就像朋友閒聊一樣。所以,這趟杭州之行,讓我覺得很完美,即來杭州旅了一次遊,又和一些朋友聊了聊技術。

本來我計劃當天晚上就回去,Biti 面試完,被告知阿里巴巴 B2B 的技術部老大 Andy 想見見我,如果我時間上沒有問題,HR 會退掉當天的訂好的機票再重新訂,當晚住宿的酒店也已經安排好了。

當時很是受寵若驚,馬上告訴 HR 沒有問題。

第二天其實還是有點緊張的,不知道 Andy 會問我什麼問題。見到 Andy 後才感覺,Andy 人也很隨合。Andy 問了兩個問題給我留下很深的印象,一是建立一個數據庫層和應用層之間的統一中間層,對下可以支援各種資料庫是否有必要。還有一個,是如何拆分一個大資料庫為多個數據庫。

第一個問題,我的回答的很中庸,一個可以忽略下層資料庫是什麼的中間層,對效能會有影響,對開發效率、程式碼重用率會有提升,搞一個是有必要的,對於特別要求效率地方,仍可以使用老的方式,一般情況下,使用中間層就可以了。我估計這是 Andy 當時正在考慮的問題,但後來阿里巴巴並沒有大張旗鼓的搞這麼個東西,我想 Andy 最終還是認為搞這個東西意義不大。

第二個問題,拆分資料庫的方法,我曾經主導過一個大庫的拆分,要求應用的每張表,都有主鍵。然後就像 HASH 分割槽一樣,以每個表的主鍵為準,將資料做個 HASH 運算,分佈到多個庫中,我直接把我做過這個專案詳細說了一下。也是後來我才知道,原來阿里巴巴這邊剛剛做過一個大表的拆分,拆分方法和我說的類似。

上午的面試很快就過去了,我專門讓 HR 幫我訂晚點的機票,這樣,下午有時間去西湖遊覽一下。

這次杭州之行,給我的感覺是,杭州不錯,面試很愉快,但打車很難。下午在西湖邊打車,用了好久。後來才知道,在哪個時間點打車,能打到已經是運氣了。

兩個月後,我告別待了 10 個月的北京,來到杭州,入職阿里巴巴。

中國的大型網際網路企業,有很多相似之處。比如說一樣有入職培訓,一樣每年有年會,一樣的有 Outting,一樣的嘴上說一套、底下做一套。比如公司一直在講誠信,但在出了一些事情之後,從公司發給我們員工的郵件來看,沒有看到誠信二字。但這很正常,在我們國家,到我這個年齡,如果還相信公司說的什麼或老闆說的什麼,哪腦袋就真有點問題了。

阿里的入職培訓和其他公司一樣,講一講企業文化,再把人拉到戶外做做拓展運動,結束,沒有持續性。和我一起參加入職培訓的有幾十人,半年內有差不多三分一離開公司,一年內大概只剩三分之一留在公司。我和另外兩個入職培訓時認識的朋友合租一套三室兩廳,一年後,他們都走了,只剩我自己獨住一大套房子。大家來阿里的目的很簡單,渡金。我的室友之一,半年後順利跳到了 teradata。另一個是做客服的,一年後跳到另一個規模略小的網際網路公司,做了客服經理。當然,我到阿里,最大的目的並不是渡金,而是學習。我的目標是成為 Oracle 大師,阿里孕育了哪麼多 Oracle 大師,到了阿里,我就和目標接近了。

但可能是我在面試時忽悠的有點過了頭,阿里給了我一個很高的級別:高階資料庫專家。這既讓我興奮,又讓我感到無比大的壓力。在我入職時的 09 年,整個集團的技術人員,達到這個級別、和這個級別之上的,不過幾十人而已。在 B2B,高階專家之上的,只有十幾個人。我們 DBA 團隊中,只有一個人比我級別高,就是 Biti。這讓我的壓力,稍微小了點,有什麼大事,我前面至少還有 Biti 在扛著。但是,一個月後,Biti 就調到支付寶。我成了阿里巴巴 B2B 級別最高的 DBA。一下子變成了“首席 DBA”,我內心深入無比激動,但是,這也讓我無比害怕。

來到阿里,我對自己的定位是學習、經歷,我的目標,是成為技術大師,我從不會改變這個目標。但公司對我的期望,顯然不是這樣的。但這沒有關係,這並不會防礙我學習。

在阿里的日子過的很快,好像回到了上學時代。每天三點一線,上班、到食堂、下班。DBA 團隊是我見過的最好的團隊,幾位領導對每個人都很負責,誠心實意的為每個人著想,努力為每個人提供發展機會。大家之間沒有爭搶,沒有鉤心鬥角,只有努力的做好事情。很高興在這裡渡過了快樂的近三年時光。在此,對領導、對團隊中每個兄弟表示感謝。阿里的資料庫維護水平,自然是沒得說的,用一句通俗的話來形容,我就像掉到了水中的海綿,如痴似渴的吸收著養份。

我到公司時,MySQL 剛剛在公司有第一例非常成功的案例。之後的幾年間,公司的 MySQL 團隊從無到有,迅速壯大,MySQL 的應用也是遍地開花。再之後 NoSQL 如同悽美的曇花,匆匆一現,卻也給公司內 Oracle 的應用帶來不小的震動。對於開發,Oracle 有如過街之鼠,幾乎人人喊打。之後,一切又都歸於平靜和理性。NoSQL 出局,MySQL 重點發展,去 Oracle 已成必然。從 11 年開始,我也面臨艱難轉型,根據公司情況,我決定轉型到 GreePlum 資料倉庫。但轉型是困難的,幾本大部頭的書,一看就困。Oracle 是越學越精神,一看 GreePlum 就瞌睡。數次不眠之夜的深思,我決定放棄轉型。我知道這對我來說意味著什麼,放棄轉型,也意味著要放棄這份工作。 雖然我很喜歡團隊的氛圍,我對團隊戀戀不捨,但我仍將堅持我的方向。11年夏天,我開始籌備我的下一份工作,並計劃在

12年春節的時候離開。

  阿里巴巴二三事

  在阿里,我見識到了 Biti 留下來的管理制度與管理水平。我們的資料庫,很少出莫名其妙的問題。按照托爾斯泰的說法,好的資料庫個個相似,差的資料庫各有各的不同。好的資料庫,無外乎效能尚可,有完善的備份恢復和高可用機制、並定期測試,很少奇奇怪怪的問題,絕大多數報錯、效能曲線的波動都可以找到原因,等等。差的資料庫總有千奇百怪的問題、林林總總的報錯、莫明其妙的當機。

其實,達到阿里資料庫的管理水平,DBA 只做了一間事,就是更加關心自己負責的庫。

每次效能曲線的波動,都要找到原因,甚至定位到 SQL。對於新上線的 SQL 語句,進行嚴格的審查。對於大操作,格外小心。Statspack、AWR 報告,要觀注、觀注、再觀注。基本上也就這些了吧。我把這種管理模式,叫做精細化管理。

說到這裡,我想起了一件事,姥姥家住在一條古老的小巷裡,在小巷南口,相隔不遠有兩家買鍋葵(一種麵餅)的,但一家門庭冷落