【IT168 專稿】一套工具集合,包含7個獨立工具、30多萬行代碼…相信行業內的老司機們都知道小編說的是啥——資料庫管理工具。他,從入行到現在,15年裡,從資料庫管理工具到接口驅動程序再到資料庫內核,把資料庫相關的研發工作完整地實踐了一遍。因此對軟體系統框架結果有了深度把握。他說「走上資料庫架構師這條路,如人生的行進,偶然中蘊含著必然。」這就是小編本次的採訪對象,SACC2016中國系統架構師大會的嘉賓:華勝信泰資料庫架構師李海翔。
▲華勝信泰資料庫架構師 李海翔
紮實的基本功 暢遊資料庫內核「汪洋大海」
為了實現資料庫管理工具集、7套工具統一風格、統一操作、統一UI,李海翔探索出了MVC(Model View Controller,模型(model)-視圖(view)-控制器(controller))改進模型,把model變為2層,底層映射資料庫的實體數據,7個工具可以共用底層的model,上層為不同工具定製UI展現特性,很好地解決了數據模型需要和不同工具的UI分離的問題。在採訪中,李海翔發自肺腑的感言:這次成功的嘗試讓我初步體會到了架構的魅力,體會到做架構並非一朝一夕之功,而是在實踐中不斷學習、不斷思考、不斷改進、不斷總結而來的,只有在實踐中摸索、領悟才能逐漸「悟道」。
正是架構的魅力,推著李海翔一步一步踏實的規劃著自己的職業道路。2006年,李海翔開始從事資料庫內核研發工作。他形容,資料庫內核猶如一片汪洋大海,廣袤而深邃…
李海翔先是接觸了高可靠分支,從事了備份恢復、日誌管理等內核相關工作,之後又從事過底層的存儲、中層的數據對象訪問、資料庫安全、SQL優化等相關工作,由深度而到廣度再深入,打下了紮實的基本功。這段時間的工作,讓他「認識」和「熟悉」了資料庫內核的各個模塊。
李海翔繼續說道:「如果僅限於此,還不能完全「相知」,便不能承擔起架構師的職責。」在工作中,他不斷思考功能如何實現,模塊功能極限等問題。這使李海翔逐漸架構起了模塊之間的橋梁。思考模塊間的關係幫他逐步融會貫通了零散的知識點,對資料庫內核逐步相知、深知;思考模塊的功能極限,如存儲層單表最大容量、多進程架構的資料庫系統可支持的會話數與共享內存的關係等,讓他認識到做架構不能浮於表面,而要深入到真實需求產生的真實體系結構要求中,要考慮系統的安全、性能、容量、擴展性等真實體系結構的要求。」
隨後李海翔又跳出資料庫內核,從事了一段時間的資料庫測試技術和測試部門的管理工作。他說「這讓我站在資料庫之外,以測試者的身份、以觀察者的身份、以使用者的身份從整體上看待資料庫的產品體系,這讓我「視角大開」:從事過的工種多則建立的聯繫點多而倍感開闊,做架構設計需要這種極為廣闊的視野,做資料庫的架構設計需要考慮整個產品線的產品體系架構和各個產品各自的架構特點,需要先能庖丁解牛般掌握自己面對的對象,然後才能抽象出框架結構、進而析「結構」,然後成「架構」。
沒有這段經歷、似乎做一名資料庫架構師會有所缺憾,以單一視角看待一個事物難以窺得廬山真面目。所謂架構師做架構的設計,首先重要的就是先「解構」,面對資料庫的解構能力代表著能清晰掌握資料庫體系結構的方方面面,有過深入才能淺出。」
經歷了十多年的國產資料庫研發工作後,李海翔來到Oracle做了兩年查詢優化工作。在國際化的研發環境和氛圍中,與同事們一起開發MySQL的優化器,體會到了優化器在資料庫整體結構中統領、驅動SQL執行的重要性。
談到職業規劃,李海翔的經歷可以說給了初學的開發者豐富寶貴的經驗。他說:「如果沒有之前豐富的資料庫多工種研發和測試經歷,沒有深入內核又潛出又深入內核的經歷,沒有在管理工作中感受組織架構,沒有在生活中體會感悟不同的人性,則不會走上今天的架構師之路。」
人生亦架構 認真對待架構好人生
雖說從事技術開發相關工作,但業餘時間李海翔把一些個人的心得體會都傾注在《資料庫查詢優化器的藝術》這本書上。他說「業餘時間,我喜歡動筆。其實是動鍵盤,在鍵盤上鍛鍊自己手指的麻木性。」把那些分享過的技術串聯,就有了這樣一本討論查詢優化技術的書籍。
李海翔在採訪中說:寫書之初,不是為了寫而寫,不是為了名而寫,是為了梳理「產品--架構--設計--投入--完成」這一全套過程。其中,書的框架結構設計的過程猶如軟體的架構設計,為了讓讀者能夠看懂和理解,要設計好如何設置各個章節的內容,如何將紛繁複雜而又極具深度的知識點行雲流水的展現出來。做軟體的架構設計,也應當是從用戶使用的實際情況出發,而考慮功能、性能、容量、擴展、安全等何時獨立,如何融合。
人生亦架構,認真對待傾注靈魂,即能架構好人生。
參加SACC又是一次自我提升
李海翔之前參加過多次DTCC資料庫技術大會,但今年的SACC大會是第一次參加。他開心的說「對自己而言,參加SACC架構師大會,是又一次難得的提高和學習的機會。」
加入華勝信泰之後,李海翔主要負責資料庫技術架構相關工作和架構部的管理工作。談到最近的關注,李海翔覺得資料庫技術架構,有很多有意思的內容,比如Informix在架構上以類協程的技巧在單進程用戶態中實現了作業系統內核態實現多進程的功能…另外,除了關注Informix自身的技術外,他還關注著資料庫的經典技術事務處理相關技術、關注著分布式資料庫技術的發展和架構等。
當談到成為了一個架構師之後有怎樣的體會,李海翔強調:要反覆觀察、不斷思考,在改進中覓得最好的架構設計;要注重體系結構的內在需求,關注安全、性能、容量、擴展性等關鍵點的架構設計;要思考整體和重點的關係,注意培養「解構」能力;要思考軟體體系與工作生活的關係,應對波峰和低谷,做好擴容便於靈活擴展,有取有舍,就能架構好每一個產品。
架構師應更多注重「讀代碼」
談到架構師是否應保持寫代碼這個習慣,李海翔表示「術業有專攻,似乎寫代碼是程式設計師的事情。但是,個人認為,架構師應在更高層級上「寫代碼」,應更多地注重「讀代碼」。軟體開發中有一些工作,尤其是類似資料庫系統這樣的複雜系統的一些框架性代碼(未必是核心算法的代碼),非架構師而不能為,架構師應寫這些框架性的代碼,用代碼流暢地體現出架構設計的思想。
另外,對於架構師,我認為比寫代碼更重要的是 「讀代碼」。讀什麼代碼呢?一是讀本領域內的經典代碼,比如做為資料庫內核開發的架構師,應該多讀PostgreSQL的代碼以領略代碼的優美,讀MySQL的代碼以領略其實用之風。讀本領域的代碼可以開闊自己的思維,同一個思想、設計不同資料庫有不同的實現方式,所以讀本領域的經典代碼細細體會和品味,之後可以把學習到的可以運用到自己的工作實踐中。二是讀本領域相關的其它領域的代碼,如讀一讀Linux內核源碼,讀一讀應用中間件的代碼等,這樣可以擴展自己的知識體系的深度,讓自己所做的架構設計能更好地與周邊環境相融。一個軟體的架構不僅是支撐本軟體體系結構的,而且要使得本軟體對外能與作業系統協調、與應用協調。
多讀代碼,猶如找到一位位良師益友。」
寫在最後
對於雲時代的平臺架構如何發展,李海翔說:在資料庫方面,資料庫雲會得到發展並普及,分布式資料庫將成為資料庫雲的基礎設施,偽分布式資料庫中間件將進入垃圾簍。
在即將到來的SACC2016架構師大會上,李海翔透露將分享「資料庫引擎技術架構」,是對關係資料庫架構技術的一次總結。
「恰逢金秋,精心架構,數年心血終得碩果。
精華薈萃,大師相聚,三天時光結識良友。
願架構師大會架構起技術交流的大橋,祝架構的技術之路越走越寬敞!」
在採訪的最後,這個「技術文青」為2016中國系統架構師大會送上了這首祝福的詩。如此有情懷又懂技術的嘉賓,讓我們同期待他在SACC的舞臺上一展風採!
作為國內最受歡迎的架構師盛會,2016年第八屆中國系統架構師大會SACC即將於10月27-29日在北京盛大召開。本屆大會以"架構創新之路"為主題,安排兩大主場和24個專場。屆時,來自網際網路、電子商務、金融、電信、政府、行業協會等20多個領域的150多位技術專家將匯聚一堂,共同探討雲計算和大數據時代下,如何通過架構創新來實現企業的快速轉型。更多內容請訪問大會官網:http://sacc.it168.com/