資料庫開發環境的治理方案設計

最近在和研發同學聊天的時候發現他們有一套資料庫開發環境,嚴格的說這是一套混合環境,算是開發和測試環境的合體。其中負責管理這套環境的研發同學已經受不了了,不禁發出了感嘆:什麼事情都找我,我又不是DBA。

因為研發側的資料庫連線池滿了也找他,資料庫連不上了也找他,跑了這些年,資料庫還從來沒有備份過。

我們一般涉及測試環境,預釋出環境和線上等環境的管理,而開發環境的管理相對鬆散,為此我整理了一下開發環境的使用現狀。

資料庫開發環境的治理方案設計

整體而言,開發環境主要是為了提升開發效率,更方便的使用,主要是對於辦公機開放,對許可權的管理是相對鬆散的,為此這些年我看到過很多特殊的情況:

1)有的研發部門會自購伺服器安裝資料庫,有些情況下安裝部署不上,還會找我們友情支援

2)有的研發部門會在一臺伺服器上面ALL IN ONE的部署,各種服務堆在一個伺服器上面,一榮俱榮,一損俱損。

3)很多開發環境資料庫是安裝在Windows上面的,有的還是32位的,而我們在Windows平臺的MySQL資料庫運維經驗幾乎為0

而測試環境的管理是相對會謹慎一些,儘可能只開放測試伺服器的許可權,部分許可權的使用是需要審批機制的。

開發環境到測試環境需要貫穿表結構的同步和資料同步,這樣一來一去,就能夠實現更快速的釋出和管理。

為此,我整理了下當前的情況,整個資料庫的情況比想象的還要亂一些,比如資料庫只用了一個root賬號是對所有業務開通的,資料庫連線池配置了150個連線,也難怪很多業務反饋時常連不上資料庫,而更多的運維管理操作更是無從說起。

為此,做了如下的方案設計:目前有些研發側同學對於開發環境,測試環境的概念是比較模糊的,那麼我們就需要做一些前置的工作,把這個概念解釋清楚,然後對一些業務做拆分,有些是開發業務,那麼就完全可以透過自助化的開發環境交付來實現,如下圖中的開發環境管理區域,而測試環境我們可以單獨分配一臺伺服器,可以根據業務大類來做一些拆分。

從訪問層面,測試伺服器是不能訪問開發資料庫的,這也是我們整體設計的一個邊界。

資料庫開發環境的治理方案設計

尤其是開發環境的管理,是我們需要著力改進的目標,有三個層面的實現難點,一個是對於虛擬化資源的管理,第二個是對於資料庫許可權的管控,比如收到不少業務的需求,希望能夠在一個共同的資料庫實現開發,也就意味著許可權的設計方面需要做一定程度的共享設定。第三個是資料的雙向同步,比如開發環境和測試環境的表結構對映,資料同步等。

最近在做的資料庫環境標準化管理,仔細想想還是一步大棋,要涉及的層面也很多,需要做中長期的規劃和推進。

在看

,讓更多人看到