編者按:在老一代的數(shù)據(jù)庫老人中,周彥偉是其中的佼佼者髓梅,不僅著眼于自己的成長拟蜻,還不斷致力于該領域的發(fā)展,成立了技術社區(qū)枯饿、組織技術沙龍活動等酝锅,造福了很多,如今又將有新書出爐鸭你,為技術人帶來全方位的福利屈张,以下是CSDN對他的專訪擒权,他總結(jié)了自己多年來的成長和他眼里的“DBA精神”:責任心袱巨、服務心、溝通心碳抄、學習心愉老、進取心和分享心。
采訪:仲培藝剖效;責編:錢曙光
周彥偉 去哪兒網(wǎng)擔任數(shù)據(jù)庫總監(jiān)
CSDN:首先能否請您介紹一下自己嫉入、您的團隊以及您所關注的領域?
周彥偉:我是周彥偉璧尸,目前在去哪兒網(wǎng)擔任數(shù)據(jù)庫總監(jiān)咒林。在去哪兒網(wǎng)負責數(shù)據(jù)庫平臺的管理和維護工作。工作范圍包括MySQL爷光、Redis垫竞、HBase平臺的架構(gòu)設計、性能調(diào)優(yōu)、日常運維以及自動化運維平臺設計欢瞪。曾經(jīng)擔任人人網(wǎng)(校內(nèi)網(wǎng))MySQL技術主管活烙,負責數(shù)千規(guī)模的MySQL數(shù)據(jù)庫實例的運維管理。在這個領域內(nèi)有近10年的工作經(jīng)歷遣鼓。
出于對于MySQL的興趣啸盏,在業(yè)余時間作為創(chuàng)始人之一組建了中國MySQL用戶組(ACMUG),并長期任ACMUG主席骑祟,領導和組織中國MySQL社區(qū)活動回懦。在過去的幾年間,把中國MySQL用戶組社區(qū)從一個不起眼的小沙龍次企,做成了分會遍及全國粉怕,會員不計其數(shù)的大型社區(qū),陸續(xù)在中國大陸的北京抒巢、上海贫贝、深圳、福州蛉谜、廈門稚晚、成都、武漢型诚、濟南以及臺北和香港等地開展了MySQL相關技術沙龍活動客燕,影響了大部分中國MySQL從業(yè)者。
跟王竹峰狰贯、強昌金一起合著有《MySQL運維內(nèi)參—— MySQL也搓、Galera、Inception核心原理與最佳實踐》一書涵紊,目前正在出版社校對和排版傍妒,計劃2017年5月面世。
2016年初摸柄,基于我對中國MySQL技術和社區(qū)所做貢獻颤练,Oracle授予了Oracle MySQL ACE Director 的榮譽。
CSDN:您曾談過人人網(wǎng)四余年驱负,受益良多嗦玖,那么是什么樣的契機讓您選擇來到去哪兒網(wǎng),這個過程中是否有什么難忘的經(jīng)歷可以和大家分享跃脊?
周彥偉:人人網(wǎng)是我MySQL職業(yè)的起點宇挫,在那里的確是受益良多,是人人網(wǎng)促進了我的成長酪术,我對此非常感激器瘪。跟大數(shù)據(jù)、高并發(fā)的人人網(wǎng)業(yè)務相比較,去哪兒網(wǎng)的業(yè)務類型是以電子商務為主娱局,大部分業(yè)務都是訂單彰亥、賬務之類,這類數(shù)據(jù)更敏感衰齐,對數(shù)據(jù)安全要求更高任斋,對DBA的要求也更苛刻,挑戰(zhàn)也更大耻涛》峡幔基于自身成長的考慮,以及時任去哪兒網(wǎng)CTO吳永強先生的熱情邀請和充分信任抹缕,我在人人網(wǎng)工作四年多之后澈蟆,忍痛離開,去尋找新的起點卓研。在此趴俘,我也感謝去哪兒網(wǎng),是這樣一個環(huán)境讓我更上層樓奏赘。
CSDN:您在MySQL領域苦心孤詣多年寥闪,這份執(zhí)著的起源是什么呢,或者說是什么樣的機會讓您將目光投注到MySQL上的磨淌?
周彥偉:中國互聯(lián)網(wǎng)的興起大概是在90年代末疲憋,門戶網(wǎng)站和搜索引擎的興起,把中國一下子帶入了互聯(lián)社會梁只。但真正的復雜邏輯型網(wǎng)站的繁榮缚柳,大概要在2006年之后了吧,那個時候開始搪锣,互聯(lián)網(wǎng)逐步深入到了垂直領域秋忙、社交領域、電商領域淤翔、金融領域翰绊。隨之而來的佩谷,就是這些復雜邏輯帶動了網(wǎng)站對關系數(shù)據(jù)庫的需求旁壮,特別是對OLTP的需求,MySQL成了解決這一需求痛點的金鑰匙谐檀。中國大部分互聯(lián)網(wǎng)公司都選擇MySQL數(shù)據(jù)庫來支撐自己的業(yè)務抡谐。
我從2007年開始進入互聯(lián)網(wǎng)工作,并開始接觸MySQL桐猬,親眼目睹了這一現(xiàn)象麦撵,并預測對MySQL人才的需求將會越來越大,這對個人的職業(yè)和發(fā)展是一個不可多得的良機,在加上我十分推崇MySQL的開源免胃、開放音五、自由的思想,于是在做了5年的編程工作之后羔沙,毅然轉(zhuǎn)型到了MySQL躺涝。目前來看,這還算是個不壞的選擇扼雏。
CSDN:眾所周知坚嗜,MySQL的目標是要做“最流行的數(shù)據(jù)庫”,您是覺得讓它在通往這一目標的道路上得以不斷前進的要素是什么诗充,它有著怎樣的特性苍蔬?
周彥偉:目前來看,如果把MySQL官方版加上它的主要分支Percona蝴蜓,MariaDB的話碟绑,MySQL應該已經(jīng)實現(xiàn)了這個目標。為什么MySQL會那么成功茎匠?這是一個有意思的話題蜈敢,也有很多人討論。原因可能很多汽抚,我之前在自己的公眾號(ID:formysql)里面寫過一篇文章《MySQL流行的原因》抓狭,現(xiàn)在看看還是適用的。引用如下:
從上世紀90年代后期開始造烁,互聯(lián)網(wǎng)的熱潮開始席卷全球否过,也為MySQL的發(fā)展提供了廣闊的空間。特別是基于交互的社交惭蟋,電子商務苗桂,以及金融互聯(lián)網(wǎng)的發(fā)展,對傳統(tǒng)的數(shù)據(jù)庫服務能力提出了挑戰(zhàn)告组。高并發(fā)煤伟,高性能,高可用木缝,輕資源便锨,易維護,易擴展的需求我碟,促進了MySQL的長足發(fā)展放案。
MySQL流行的原因可以歸結(jié)為以下幾點:
簡單
盡管MySQL源碼的入門門檻很高,很多人不能深入其中矫俺,但是MySQL的使用還是非常簡單的吱殉,任何稍微有IT背景的技術人員都可以無師自通地參照文檔安裝運行和使用MySQL,這幾乎沒有什么門檻掸冤。同時,MySQL支持大部分ANSI SQL-92友雳,略有經(jīng)驗的使用者都能完成基本的操作需求稿湿。
開源
開源意味著安全和免費,代碼就擺在那里押赊,無數(shù)的技術愛好者一起來審核程序缎罢,一起修補問題考杉,這讓使用者非常的放心策精。同時,開源帶來了免費崇棠。從上世紀90年代末一直持續(xù)到現(xiàn)在咽袜,互聯(lián)網(wǎng)的興起并快速發(fā)展,對免費數(shù)據(jù)庫的需求非常迫切枕稀,免費询刹,也讓規(guī)模化部署的需求成為可能萎坷。要知道很多大型互聯(lián)網(wǎng)公司的MySQL集群都是數(shù)以千記或者萬記的凹联,如果是按照傳統(tǒng)的商業(yè)數(shù)據(jù)庫的收費模式,沒有人愿意承擔哆档。免費蔽挠,讓數(shù)據(jù)庫大規(guī)模使用成為可能,也提升了互聯(lián)網(wǎng)的交互式服務的質(zhì)量瓜浸。
復制
MySQL從3.23.15這個版本開始澳淑,支持了replication,可以幫助MySQL使用者搭建Master-Slave的架構(gòu)插佛。把數(shù)據(jù)準實時的從一個實例同步到另一個實例杠巡。這個時間是2000年之前。要知道雇寇,其他一些開源數(shù)據(jù)庫是在最近的幾年里才開始支持這樣的功能的,這對于數(shù)據(jù)庫使用者來說氢拥,不管是在線備份還是讀寫分離,或者負載均衡到多個讀庫锨侯,意義實在太大了嫩海。在2010年之前,一個Master识腿,多個slave的部署情況隨處可見出革,我見過有12個slave的情形,可以設想渡讼,如果沒有replication功能骂束,我們要用數(shù)據(jù)庫處理百萬甚至是億萬規(guī)模的查詢負載是非常困難的。
引擎
MySQL不同于其他多數(shù)數(shù)據(jù)庫之處是它對插件式存儲引擎的支持成箫,這是一個開放的設計展箱,有點兼容并包,海納百川的感覺蹬昌。熟悉MySQL的人隨便就能報出幾種MySQL存儲引擎的名字混驰,MyISAM,InnoDB皂贩,NDB,TokuDB栖榨,等等。而MySQL里最常用的明刷,也是奠定了MySQL開源數(shù)據(jù)庫之王地位的InnoDB婴栽,并不是Monty或者他的伙伴們開發(fā)的。插件式存儲引擎的設計辈末,讓InnoDB以及其他存儲引擎輕松接入到MySQL Server愚争,集百家之長,這樣MySQL就有了無限的活力和競爭力以保持其長盛不衰挤聘。
支持
Monty說在早期MySQL剛剛推出的時候轰枝,他親自寫了30000封郵件來幫助人們使用MySQL。這樣持之以恒组去,不辭勞苦鞍陨,不厭其煩的精神讓人贊嘆。我們自己也維護了一個開源數(shù)據(jù)庫項目InceptionSQL審核从隆。在過去的一年多里湾戳,我們也碰到了很多很多的使用者提問的問題,這種感受广料,真的是只有經(jīng)歷過才能體會其中的付出砾脑。
合作
MySQL在發(fā)布的早期,就廣泛的跟其他社區(qū)合作艾杏,PHP和Perl的開發(fā)者都很愿意去傳播MySQL的技術和新聞韧衣,很多Linux版本都會預裝MySQL。一度LAMP(Linux购桑、Apace畅铭、MySQL、PhP)成為站長或者開發(fā)者的標配勃蜘。MySQL在各種合作中逐步深入人心硕噩,遍地開花。
社區(qū)
社區(qū)對MySQL的貢獻功不可沒缭贡。MySQL流行的一個重要原因就是人們常說的社區(qū)力量強大炉擅。社區(qū)為MySQL貢獻了架構(gòu)方案辉懒,運維工具,技術文檔谍失,宣傳普及眶俩,乃至專業(yè)人才。放眼望去快鱼,不管是專業(yè)的數(shù)據(jù)庫服務團隊例如著名Percona颠印,還是著名的技術型公司,例如google抹竹,facebook都在使用MySQL的過程中不斷的給MySQL貢獻新的功能和工具线罕,幫助MySQL成熟和穩(wěn)定。在國內(nèi)窃判,這幾年我們一直在組織ACMUG(中國MySQL/MariaDB用戶組钞楼,China MySQL/MariaDB User Group),它匯聚了中國最頂尖的MySQL及其周邊技術的人才兢孝,同時得到了騰訊窿凤,阿里巴巴等公司的同行的支持和積極參與,公司有競爭跨蟹,然技術卻無界限雳殊,大家廣泛交流,互通有無窗轩,功能促進中國MySQL技術的傳播和進步夯秃。目前,ACMUG以及ACMUG所組織的技術交流活動得到了MySQL所屬的Oracle公司痢艺,MariaDB所屬的MariaDB基金會以及MySQL和MariaDB之父Monty先生本人的認可仓洼,我們會繼續(xù)前行,為中國的開源數(shù)據(jù)庫做出貢獻堤舒。
CSDN:都知道您在MySQL之外色建,對Redis和Oracle等數(shù)據(jù)庫也有很深入的研究,當初在眾多計算機分支中舌缤,是出于什么原因選擇從事數(shù)據(jù)庫行業(yè)的箕戳?
周彥偉:在上面第三個問題已經(jīng)聊到過,在過去這十年国撵,是屬于MySQL的時代陵吸,并且我堅信這個時代還在不斷延續(xù),并且人們對MySQL的依賴越來越強了介牙。
大膽預測一下壮虫,如果過去十年是互聯(lián)網(wǎng)的MySQL,那么接下來的十年环础,應該會是傳統(tǒng)企業(yè)的MySQL囚似,讓我們拭目以待剩拢。
CSDN:在您看來,一名優(yōu)秀的DBA需要具備哪些素質(zhì)谆构,包括專業(yè)知識上方面裸扶,以及精神方面框都。而您初次涉足DBA行業(yè)又是什么樣的背景呢搬素?
周彥偉:我在自己的公眾號里面也曾經(jīng)寫到過我所認可的“DBA精神”,同時在我們的新書《MySQL運維內(nèi)參》“前言”里面又相信闡述了這個想法:
DBA是什么魏保?
有點像SA熬尺,但在業(yè)務層面上比SA事兒多,主要是牽扯的人多谓罗,嬉笑怒罵粱哼,皆成文章。
有點像DEV檩咱,但總是會有沖突揭措,多數(shù)情況下發(fā)生在雙方對數(shù)據(jù)庫使用的看法和優(yōu)化上。我們只好自己開發(fā)個Inception給DEV用刻蚯。
有點像PM绊含,設計庫,優(yōu)化表炊汹,處處都是藝術躬充。
有點像CTO,恩充甚,你以為我說的是首席建表官? DBA是操著雞毛蒜皮的心啊霸褒。
有點像出租司機,改個表废菱,我一向不待見那種不等改完甩手就走的技矮,等待是一種美德,善始善終方顯英雄本色昙啄。
有點像救火隊員,網(wǎng)站掛了耿币,可能跟DB沒關系,但DBA一定要出現(xiàn)韧拒;DB掛了淹接,一定跟網(wǎng)站有關系十性,DBA一定也要出現(xiàn)塑悼。
有點像銀行點鈔員,數(shù)據(jù)就是錢啊霞势,只是都不是自己的斑鸦,但職業(yè)道德最為重要。
有點像養(yǎng)孩子巷屿,當?shù)之攱屩鼋恚膫€實例伺候不好,都會出亂子旬昭。
DBA是服務型職業(yè)稳懒,服務好了,沒你啥事兒场梆;服務不好,事兒就大了寞忿。
DBA承載著一個重要的角色顶岸,有著特殊的職責和使命,一個優(yōu)秀的DBA其實是非常難得的辖佣。DBA應該具備怎樣的能力呢霹抛?我曾經(jīng)提出過“DBA精神”:責任心卷谈、服務心、溝通心端逼、學習心顶滩、進取心和分享心。
DBA精神是責任心的體現(xiàn)
維護數(shù)據(jù)庫數(shù)據(jù)的安全和完整是管理員的首要責任盐欺。在管理數(shù)據(jù)庫的過程中救氯,作為一個DBA歌憨,要把數(shù)據(jù)庫看做自己的財產(chǎn)、自己的兒女甲抖、自己身體的一部分心铃。此種職責去扣,需要你像呵護自己眼睛一樣去照顧你所維護的數(shù)據(jù)庫。時刻去想唆铐,有沒有做應該有的備份奔滑,有沒加應該有的監(jiān)控,有沒有做必須的安全權(quán)限限制王浴。一旦出問題梅猿,有沒有第一時間去分析和解決問題,這就像你的自己的眼睛钞啸,一旦出現(xiàn)紅腫病態(tài),多少人會視而不見入蛆?
DBA精神是服務心的體現(xiàn)
現(xiàn)代互聯(lián)網(wǎng)對DB的需求硕勿,是需要支撐業(yè)務持續(xù)穩(wěn)定的運行和源源不斷的變更源武,這要求DBA有7X24小時的服務精神。這是一個服務性職業(yè)粱栖,需要隨時隨地響應來自各方面的各種需求闹究。其一,人的需求赏寇,業(yè)務要發(fā)展价认,DB就會有變更,只有DBA與開發(fā)人員緊密配合渠退,才能順暢高效地完成工作脐彩。其二丁屎,事的需求,DB是個動態(tài)的系統(tǒng)证九,不斷的運轉(zhuǎn)就會不斷的面臨新問題共虑,機器故障,磁盤報警拥坛,內(nèi)存不足,CPU過載等等丸氛。這是個脆弱的系統(tǒng),它不會對DBA的遲鈍有半點仁慈拯刁,一旦有問題,任性的宕機是必然的結(jié)果摹察。其三供嚎,心的需求,DBA應該出自內(nèi)心地主動去對DB做不斷的優(yōu)化寸宏,這種優(yōu)化偿曙,可以在結(jié)構(gòu)上羔巢,可以在架構(gòu)上竿秆,可以在業(yè)務邏輯上,關鍵之處在于歉备,你有沒有心匪燕。說得通俗一點:“沒事找事兒”。
DBA精神是溝通心的體現(xiàn)
DBA的工作龟再,不是封閉的科學研究和孤傲的英雄主義尼变,不管是主動的優(yōu)化,還是被動的接受任務哀澈,都是需要與人做不斷的溝通與交流割按。假如你不懂業(yè)務流程,不知道數(shù)據(jù)的來龍去脈丙躏,輕重緩急束凑,那就談不上數(shù)據(jù)庫表的設計和優(yōu)化。而數(shù)據(jù)庫的優(yōu)化废恋,往往最大的進展是來自對業(yè)務邏輯的優(yōu)化扒寄。這需要運用良好的溝通心態(tài)和技巧该编,深入了解業(yè)務流程和架構(gòu)。與人溝通嘉赎,是DBA獲取知識和信息的主要途徑于樟,需要做到能與人溝通和會與人溝通迂曲。生活工作中,人的個性是千差萬別的关霸,面對形形色色的溝通對象鬓长,充分調(diào)動對方的積極性涉波,進行愉快有效的交流也是DBA需要掌握的一門技術炭序。
DBA精神是學習心的體現(xiàn)
DB在技術體系中是一個承上啟下的中間環(huán)節(jié)苍日,它運行在物理硬件和操作系統(tǒng)之上相恃,同時承載著上層各種各樣的業(yè)務邏輯的調(diào)用。對DB的運維和管理耕腾,不僅僅需要掌握數(shù)據(jù)庫自身的基礎知識杀糯,要保證這個系統(tǒng)的穩(wěn)定和優(yōu)化固翰,就需要知己知彼,去了解它上下游的知識和特性疗琉。所以歉铝,一個優(yōu)秀的DBA犯戏,需要了解你所使用的硬件,這包括磁盤的特性,網(wǎng)絡的布局弃衍,內(nèi)存的使用,CPU的處理能力等等;需要了解DB所運行的操作系統(tǒng)的知識岸裙,它是怎么調(diào)度IO的速缆,怎么管理內(nèi)存的艺糜,怎么優(yōu)化文件的幢尚;需要了解上層業(yè)務是怎么調(diào)用數(shù)據(jù)庫的翅楼,SQL怎么寫的毅臊,看懂了業(yè)務邏輯的程序才能明白有的SQL是不是多余,某些SQL是不是可以優(yōu)化皂林。我們看到在MySQL官方和MariaDB官方蚯撩,都已經(jīng)針對硬件開始在官方源碼的基礎上做自動優(yōu)化了求厕,同時MySQL官方也提供了自己的集成于業(yè)務端的高可用方案,這都是開源數(shù)據(jù)庫進步發(fā)展的必然結(jié)果美浦。同時项栏,由于開源數(shù)據(jù)庫的盛行沼沈,針對數(shù)據(jù)庫自身代碼的學習和研究,也逐漸成為優(yōu)秀DBA的必修課了芽腾。
DBA精神是進取心的體現(xiàn)
隨時發(fā)現(xiàn)問題摊滔,分析問題店乐,解決問題。通過問題現(xiàn)象腺兴,依賴自己的經(jīng)驗和知識页响,同時探索未知的知識去解決現(xiàn)實的問題,在這個過程中纷纫,也是自己積累經(jīng)驗和不斷成長的過程陪腌。相對而言诗鸭,解決問題本身并不重要,重要的是在此過程中探求解決問題的方法和所獲取的經(jīng)驗锻弓,DBA的職業(yè)優(yōu)勢也在于此青灼,同時妓盲,主動花費心思與精力去不斷追求問題的優(yōu)解和技術的極致悯衬,也是DBA應盡的職責。
DBA精神是分享心的體現(xiàn)
這些年策橘,我們一直在倡導做一件事情娜亿,那就是提倡DBA在開源社區(qū)持續(xù)做技術分享买决。我們做了ACMUG,全稱是 China MySQL User Group。A你可以認為是All够挂,或者About藕夫,或者是Active,它代表了所有關心MySQL及其相關技術的積極參與分享活動的人办悟。在過去的數(shù)年里病蛉,ACMUG已經(jīng)組織了上百場技術分享铺然,分享者都是工作在一線的DBA或者數(shù)據(jù)庫技術愛好者,通過參與這個活動赋铝,大家都切切實實的得到收益沽瘦,個人在技術上也取得了巨大的進步析恋。通過分享绿满,大家學到了技術、開拓了視野漏健、展開了思路橘霎,當然也交到了朋友。我們希望能通過這樣的活動瓦盛,把DBA精神永續(xù)下去原环,讓更多人受益处窥,讓更多技術普及滔驾。
CSDN:數(shù)據(jù)庫行業(yè)對知識的積累和不斷更新優(yōu)化有著極高的要求,這里您能否結(jié)合經(jīng)驗绕德,和大家分享一下您覺得值得推薦的學習方法或策略耻蛇?
周彥偉:在我接觸MySQL的時候,苦于沒有太多的參考資料延曙,我曾經(jīng)大規(guī)模地閱讀官方文檔,這是一個最笨亡哄,但也是100%有效的學習方法枝缔。當然,到現(xiàn)在為止蚊惯,隨著行業(yè)的發(fā)展愿卸,越來越多的人會把自己的經(jīng)驗和心得分享出來,學習途徑跟10年前比要多太多了截型,各種書籍趴荸,博客,自媒體數(shù)不勝數(shù)宦焦。這里也給自己打個小廣告,歡迎關注我的個人公眾號:MySQL運維內(nèi)參(ID:formysql)和我們正在簽名預售的新書《MySQL運維內(nèi)參——MySQL波闹、Galera酝豪、Inception核心原理與最佳實踐》。
有句詩云:紙上得來終覺淺精堕,絕知此事要躬行孵淘。MySQL是運維型技術,要求極強的動手能力和操作經(jīng)驗歹篓,所有的培訓班和書籍只能指明一個方向瘫证,提供一個參考,最重要的還是要自己動手庄撮,如此方能豐衣足食背捌。
CSDN:最后,能否請您分享一下對于MySQL未來發(fā)展的預期洞斯?
周彥偉:我在自己的公眾號里面曾經(jīng)寫過一篇《Galera的未來—Group Replication發(fā)布后的思考》载萌,其實文章所提到的Galera和Group Replication均是MySQL未來發(fā)展的方向,這就是集群化。我也會在今年的若干技術大會上分享我對MySQL集群化的一些看法和嘗試扭仁,這包括MySQL NDB Cluster,MySQL Galera Cluster和MySQL InnoDB Cluster厅翔。在未來的若干年內(nèi)乖坠,MySQL會一直引領數(shù)據(jù)庫發(fā)展潮流,并以集群化的解決方案為更大廣大的傳統(tǒng)企業(yè)服務刀闷。
SDCC 2017?上海站將于2017年3月17-19日登陸申城熊泵,三大技術峰會和24位嘉賓,匯聚國內(nèi)知名的互聯(lián)網(wǎng)公司CTO甸昏、架構(gòu)師顽分、技術總監(jiān),暢談運維施蜜、數(shù)據(jù)庫和架構(gòu)的熱門話題和技術熱點卒蘸,遇見精益運維發(fā)起人&優(yōu)維科技CEO王津銀、MongoDB大中華區(qū)首席架構(gòu)師唐建法和華為軟件API開放平臺架構(gòu)師李林鋒等大牛翻默。截止3月5日前門票八折優(yōu)惠中缸沃,5人以上團購立減1500元,詳情點擊注冊參會修械。