數(shù)據(jù)庫開發(fā)環(huán)境的治理方案設(shè)計
最近在和研發(fā)同學(xué)聊天的時候發(fā)現(xiàn)他們有一套數(shù)據(jù)庫開發(fā)環(huán)境,嚴(yán)格的說這是一套混合環(huán)境,算是開發(fā)和測試環(huán)境的合體。其中負責(zé)管理這套環(huán)境的研發(fā)同學(xué)已經(jīng)受不了了,不禁發(fā)出了感嘆:什么事情都找我,我又不是DBA.
因為研發(fā)側(cè)的數(shù)據(jù)庫連接池滿了也找他,數(shù)據(jù)庫連不上了也找他,跑了這些年,數(shù)據(jù)庫還從來沒有備份過。
我們一般涉及測試環(huán)境,預(yù)發(fā)布環(huán)境和線上等環(huán)境的管理,而開發(fā)環(huán)境的管理相對松散,為此我整理了一下開發(fā)環(huán)境的使用現(xiàn)狀。
整體而言,開發(fā)環(huán)境主要是為了提升開發(fā)效率,更方便的使用,主要是對于辦公機開放,對權(quán)限的管理是相對松散的,為此這些年我看到過很多特殊的情況:
1)有的研發(fā)部門會自購服務(wù)器安裝數(shù)據(jù)庫,有些情況下安裝部署不上,還會找我們友情支持
2)有的研發(fā)部門會在一臺服務(wù)器上面ALL IN ONE的部署,各種服務(wù)堆在一個服務(wù)器上面,一榮俱榮,一損俱損。
3)很多開發(fā)環(huán)境數(shù)據(jù)庫是安裝在Windows上面的,有的還是32位的,而我們在Windows平臺的MySQL數(shù)據(jù)庫運維經(jīng)驗幾乎為0
而測試環(huán)境的管理是相對會謹(jǐn)慎一些,盡可能只開放測試服務(wù)器的權(quán)限,部分權(quán)限的使用是需要審批機制的。
開發(fā)環(huán)境到測試環(huán)境需要貫穿表結(jié)構(gòu)的同步和數(shù)據(jù)同步,這樣一來一去,就能夠?qū)崿F(xiàn)更快速的發(fā)布和管理。
為此,我整理了下當(dāng)前的情況,整個數(shù)據(jù)庫的情況比想象的還要亂一些,比如數(shù)據(jù)庫只用了一個root賬號是對所有業(yè)務(wù)開通的,數(shù)據(jù)庫連接池配置了150個連接,也難怪很多業(yè)務(wù)反饋時常連不上數(shù)據(jù)庫,而更多的運維管理操作更是無從說起。
為此,做了如下的方案設(shè)計:目前有些研發(fā)側(cè)同學(xué)對于開發(fā)環(huán)境,測試環(huán)境的概念是比較模糊的,那么我們就需要做一些前置的工作,把這個概念解釋清楚,然后對一些業(yè)務(wù)做拆分,有些是開發(fā)業(yè)務(wù),那么就完全可以通過自助化的開發(fā)環(huán)境交付來實現(xiàn),如下圖中的開發(fā)環(huán)境管理區(qū)域,而測試環(huán)境我們可以單獨分配一臺服務(wù)器,可以根據(jù)業(yè)務(wù)大類來做一些拆分。
從訪問層面,測試服務(wù)器是不能訪問開發(fā)數(shù)據(jù)庫的,這也是我們整體設(shè)計的一個邊界。
尤其是開發(fā)環(huán)境的管理,是我們需要著力改進的目標(biāo),有三個層面的實現(xiàn)難點,一個是對于虛擬化資源的管理,第二個是對于數(shù)據(jù)庫權(quán)限的管控,比如收到不少業(yè)務(wù)的需求,希望能夠在一個共同的數(shù)據(jù)庫實現(xiàn)開發(fā),也就意味著權(quán)限的設(shè)計方面需要做一定程度的共享設(shè)置。第三個是數(shù)據(jù)的雙向同步,比如開發(fā)環(huán)境和測試環(huán)境的表結(jié)構(gòu)映射,數(shù)據(jù)同步等。
最近在做的數(shù)據(jù)庫環(huán)境標(biāo)準(zhǔn)化管理,仔細想想還是一步大棋,要涉及的層面也很多,需要做中長期的規(guī)劃和推進。
本文轉(zhuǎn)載自微信公眾號「楊建榮的學(xué)習(xí)筆記」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系楊建榮的學(xué)習(xí)筆記公眾號。