這是學習筆記的第 2390篇文章
最近在和研發同學聊天的時候發現他們有一套資料庫開發環境,嚴格的說這是一套混合環境,算是開發和測試環境的合體。其中負責管理這套環境的研發同學已經受不了了,不禁發出了感嘆:什麼事情都找我,我又不是DBA.
因為研發側的資料庫連接池滿了也找他,資料庫連不上了也找他,跑了這些年,資料庫還從來沒有備份過。
我們一般涉及測試環境,預發布環境和線上等環境的管理,而開發環境的管理相對鬆散,為此我整理了一下開發環境的使用現狀。
整體而言,開發環境主要是為了提升開發效率,更方便的使用,主要是對於辦公機開放,對權限的管理是相對鬆散的,為此這些年我看到過很多特殊的情況:
1)有的研發部門會自購伺服器安裝資料庫,有些情況下安裝部署不上,還會找我們友情支持
2)有的研發部門會在一台伺服器上面ALL IN ONE的部署,各種服務堆在一個伺服器上面,一榮俱榮,一損俱損。
3)很多開發環境資料庫是安裝在Windows上面的,有的還是32位的,而我們在Windows平台的MySQL資料庫運維經驗幾乎為0
而測試環境的管理是相對會謹慎一些,儘可能只開放測試伺服器的權限,部分權限的使用是需要審批機制的。
開發環境到測試環境需要貫穿表結構的同步和數據同步,這樣一來一去,就能夠實現更快速的發布和管理。
為此,我整理了下當前的情況,整個資料庫的情況比想像的還要亂一些,比如資料庫只用了一個root帳號是對所有業務開通的,資料庫連接池配置了150個連接,也難怪很多業務反饋時常連不上資料庫,而更多的運維管理操作更是無從說起。
為此,做了如下的方案設計:目前有些研發側同學對於開發環境,測試環境的概念是比較模糊的,那麼我們就需要做一些前置的工作,把這個概念解釋清楚,然後對一些業務做拆分,有些是開發業務,那麼就完全可以通過自助化的開發環境交付來實現,如下圖中的開發環境管理區域,而測試環境我們可以單獨分配一台伺服器,可以根據業務大類來做一些拆分。
從訪問層面,測試伺服器是不能訪問開發資料庫的,這也是我們整體設計的一個邊界。
尤其是開發環境的管理,是我們需要著力改進的目標,有三個層面的實現難點,一個是對於虛擬化資源的管理,第二個是對於資料庫權限的管控,比如收到不少業務的需求,希望能夠在一個共同的資料庫實現開發,也就意味著權限的設計方面需要做一定程度的共享設置。第三個是數據的雙向同步,比如開發環境和測試環境的表結構映射,數據同步等。
最近在做的資料庫環境標準化管理,仔細想想還是一步大棋,要涉及的層面也很多,需要做中長期的規劃和推進。
各大平台都可以找到我
-
微信公眾號:楊建榮的學習筆記
-
Github:@jeanron100
-
CSDN:@jeanron100
-
知乎:@jeanron100
-
頭條號:@楊建榮的學習筆記
-
網易號:@楊建榮的資料庫筆記
-
大魚號:@楊建榮的資料庫筆記
-
騰訊雲+社區:@楊建榮的學習筆記
原創熱文:
維護之夜,說點故事和經驗
我們為什麼在MySQL中幾乎不使用分區表
新年大吉 總結了如下的感想
《大江大河2》最觸動我的一段經典對話
MySQL 8.0給開發方向帶來的一些困擾