數據庫開發環境一鍵式交付的設計思考
最近因為一些工作內容的調整,準備完善下開發環境的建設,讓原本游離的環境管理更加合理。簡單總結了下,數據庫開發環境存在一些潛在隱患和瓶頸:
1)目前公司內的數據庫開發環境是業務自主建設,沒有DBA協助支持,有的部門會購買專門的服務器部署,有的會復用一些IDC的服務器資源,使用方式較碎片化
2)數據庫開發環境基本上不會有備份配置,在出現服務器異常時難以恢復
3)數據庫開發環境的版本管理缺乏規劃,通常是選擇最新或者已有的過舊版本,上線時會存在功能的兼容性問題,如使用了基于JSON數據類型,但是線上數據庫版本依然不支持等,或者是數據庫驅動的升級變動在測試環境沒有充分測試可能會導致線上業務訪問異常
4)數據庫開發環境和測試環境的使用是混亂的,開發環境更偏向于開發人員個人自主使用,使用權限相對較大,更適合于辦公機使用,可以自主創建表,變更表和基本的數據增刪改查,而測試環境是在完成基礎開發后進行功能集成測試時使用,需要應用測試服務器來訪問
對于開發環境,測試環境,預發布環境和線上環境的整體規劃如下,其中開發環境主要基于單機版,主要建設目標是提供高效的支持。
設計參考項:
1. 數據庫開發環境的申請過程不需要審批,不需要填寫復雜的表單等。
2. 開發人員的數據庫使用配額,每個人最多可以申請創建5個數據庫,累計存儲空間最大不超過10G,且多個數據庫實現集中部署(如單實例的多個數據庫等)
3. 開發環境默認基于WEB端工具支持,辦公機權限訪問需基于Workbench使用
4. 數據庫版本目前提供基于8.0和5.7兩個版本,不支持5.5版本
5. 數據庫基于InnoDB存儲引擎,所有表需要有主鍵,不建議使用存儲過程
6. 開發環境均為單機使用模式,在服務器異常時支持通過數據庫恢復來還原數據
7. 為了避免數據庫命名混亂和重復,默認數據庫的命名規則為devdb【序號】,如devdb1,devdb2等
8. 如創建的數據庫在1個月內沒有使用記錄,則會在1個月后自動生成相應的數據庫備份歸檔,并將數據庫資源釋放
9. 開發環境不支持drop操作,會提供統一的數據庫回收站和使用方式,要刪除的表需要歸置于回收站中由運維側不定時回收
10. 開發環境不提供基于時間點的恢復,目前默認為每日全量備份,保留近15天的備份文件
11. 如對開發環境進行自助備份歸檔,則可以支持基于邏輯備份的數據恢復,數據恢復為全覆蓋模式
12. 開發人員的數據庫之間是隔離的,不允許互相跨庫調用和依賴
13. 數據庫賬號基于開發人員域名,在忘記密碼時可以使用密碼重置功能,提供新的隨機密碼
14. 開發環境不提供高性能測試支持,僅為功能開發測試所用
15. 運維側不支持線上數據庫數據導入開發環境
16. 數據庫字符集暫定為UTF8, 如有UTF8MB4等字符集,可以由業務側自行創建時指定
17. 每個實例上的數據庫最多為50個
整體的設計流程如下所示:
本文轉載自微信公眾號「楊建榮的學習筆記」,可以通過以下二維碼關注。轉載本文請聯系楊建榮的學習筆記公眾號。