在甲骨文全球大會(huì)OpenWorld 2011數(shù)據(jù)庫(kù)圓桌會(huì)議上,來(lái)自社交網(wǎng)站Facebook的MySQL數(shù)據(jù)庫(kù)工程師Rob Wultsch分享了DBA在進(jìn)行服務(wù)器管理時(shí)的一些經(jīng)驗(yàn):保持KISS原則,即keep it simple, stupid。
KISS在計(jì)算機(jī)領(lǐng)域是一個(gè)非常常見(jiàn)的縮寫(xiě)術(shù)語(yǔ),表示簡(jiǎn)單是軟件設(shè)計(jì)之美, 簡(jiǎn)單的設(shè)計(jì)使得軟件產(chǎn)品易于開(kāi)發(fā),易于維護(hù)。 簡(jiǎn)單代表著高質(zhì)量,少加班,每個(gè)人都希望自己的工作是簡(jiǎn)單的。對(duì)于Facebook來(lái)說(shuō),就是快速地搭建服務(wù)器,減少單點(diǎn)故障并增加自動(dòng)化。
在Wultsch的準(zhǔn)則中,最重要的一條就是當(dāng)服務(wù)器發(fā)生故障時(shí),數(shù)據(jù)庫(kù)、系統(tǒng)管理員需要平衡他們之間的簡(jiǎn)單性。將硬件單元(SKU)降到越少越好,操作系統(tǒng)和固件之間的協(xié)作越長(zhǎng)越好。否則升級(jí)和維護(hù)對(duì)于每一位DBA來(lái)說(shuō)都是非常復(fù)雜的。Wultsch表示,如果只有一個(gè)SKU是最好的了,一個(gè)大的服務(wù)器和一個(gè)小的服務(wù)器組成一個(gè)單元。
Wultsch透露,F(xiàn)acebook網(wǎng)站的MySQL數(shù)據(jù)庫(kù)服務(wù)器部署比他之前公司GoDaddy.com的要好很多。當(dāng)服務(wù)器環(huán)境越來(lái)越大,DBA需要確保在硬件、操作系統(tǒng)、數(shù)據(jù)庫(kù)和軟件層面上的同質(zhì)性,這對(duì)于處理變更、備份以及回滾等操作是非常關(guān)鍵的。他給DBA提出了以下幾點(diǎn)建議:
確保有備用的服務(wù)器,如果機(jī)架有空間的話,越多越好,時(shí)刻準(zhǔn)備好;
能夠快速地搭建并重配主機(jī)。在Facebook中,如果想在服務(wù)器上安裝一個(gè)新的操作系統(tǒng),你只需運(yùn)行一個(gè)命令,然后去吃午飯,等你回來(lái)就已經(jīng)自動(dòng)安裝完畢了;
確保能夠得到來(lái)自外部的支持。
當(dāng)然,同管理好技術(shù)一樣重要的是如何維護(hù)好MySQL數(shù)據(jù)庫(kù)團(tuán)隊(duì)。DBA可能算是比較高級(jí)的IT技術(shù)職位,但也是一個(gè)壓力非常大的工作,這也就是為什么有那么對(duì)DBA望而卻步。IT環(huán)境復(fù)雜情況下的DBA必須有很好的編程功底,Wultsch介紹在Facebook公司,DBA必須能夠熟練掌握P語(yǔ)言,比如Perl或者Python,必須掌握Linux操作系統(tǒng)以及Bash腳本相關(guān)知識(shí),當(dāng)然數(shù)據(jù)庫(kù)知識(shí)是必備的。
謙虛謹(jǐn)慎也是一名合格DBA必須具備的素質(zhì)。有時(shí)候我們認(rèn)為正確并一再堅(jiān)持的事情,很可能并非我們所想。這也是成功團(tuán)隊(duì)中,每一個(gè)成員需要牢記的。
在大型公司里,一般上手和培訓(xùn)的是需要花很長(zhǎng)時(shí)間的。Wultsch介紹,在Facebook,新入職的DBA通常要至少6個(gè)月培訓(xùn)和實(shí)際操作才能體現(xiàn)價(jià)值,而1年之后才能真正上手。許多其他大型的互聯(lián)網(wǎng)公司也是如此。