從生命周期的角度來規(guī)劃數(shù)據(jù)庫運維體系
最近在和團隊規(guī)劃OKR目標的時候,我們討論了很多問題,我先拋磚引玉,列舉了一些現(xiàn)有的問題,打算按照推導的方式:
1)列舉當前問題
2)問題歸類和總結(jié)
3)梳理現(xiàn)有經(jīng)驗和現(xiàn)有方案
4)結(jié)合時間/性價比得到一定時期的預期目標。
整體來看,工作量還是蠻大的,再加上大家對于問題的理解角度不同,所以在容易在很多細節(jié)上討論太多,難以聚焦。
所以我想了下,準備按照生命周期的維度來進行考慮,于是整理了一版設(shè)計圖,整體是分為四個層面,也就是按照業(yè)務從申請資源和權(quán)限,到服務上線,服務優(yōu)化,最后是相關(guān)的服務數(shù)據(jù)遷移和流轉(zhuǎn)。
整體設(shè)計下來,我們會發(fā)現(xiàn)很多考慮中不足的地方和遺漏的角度。在多次提煉之后,我把這個設(shè)計圖調(diào)整為如下的模式:
我來逐個解釋下:
1)規(guī)范/選型/規(guī)劃:這個階段更強調(diào)整體,很多問題如果直接從基礎(chǔ)運維入手,其實就已經(jīng)晚了,有些服務質(zhì)量差,交付時間長,本質(zhì)上還是前期的基礎(chǔ)建設(shè)不夠扎實,所以這是一個互惠互利的關(guān)系,比如開發(fā)規(guī)范的設(shè)計和落地執(zhí)行,架構(gòu)設(shè)計(如分布式架構(gòu)設(shè)計),技術(shù)選型(如MySQL 8.0適配的中間件技術(shù)調(diào)研,ClickHouse技術(shù)調(diào)研,TiDB技術(shù)選型,MyRocks存儲引擎測試分析等),SQL審核(已有審核服務的升級和改進等),高可用(重中之重,涉及健康檢查腳本,Consul服務快速切換,數(shù)據(jù)庫高可用方案預研測試等),基礎(chǔ)服務(如監(jiān)控,報警和任務調(diào)度等相關(guān)服務),基礎(chǔ)設(shè)置(如拋棄CentOS_6等低版本,磁盤配置統(tǒng)一為SATA-SSD等類似的方式)
2)基礎(chǔ)運維:涉及資源交付(包括上下線,資源擴容等),權(quán)限交付(申請賬號,賬號權(quán)限變更,賬號回收等),安裝部署(如數(shù)據(jù)庫軟件安裝部署,初始化),基礎(chǔ)配置(基礎(chǔ)配置,如ntp,crontab等),備份恢復(按照數(shù)據(jù)備份,數(shù)據(jù)恢復的基礎(chǔ)維度實現(xiàn)基本備份集,基于時間點的數(shù)據(jù)恢復)
3)運維優(yōu)化:對象變更(需要演進為自動化上線模式),對于大表變更需要集成在線變更工具來實現(xiàn),此外,重點是做一些相關(guān)的優(yōu)化,如參數(shù)優(yōu)化(如數(shù)據(jù)庫優(yōu)化參數(shù),基礎(chǔ)配置適配),對象優(yōu)化(數(shù)據(jù)表優(yōu)化,索引優(yōu)化),SQL優(yōu)化(執(zhí)行計劃優(yōu)化,索引建議等),配置優(yōu)化(系統(tǒng)配置,服務配置優(yōu)化等)
這三個維度做好之后,其實會發(fā)現(xiàn)一些還是會恨吃力,那就涉及到數(shù)據(jù)遷移和數(shù)據(jù)流轉(zhuǎn),數(shù)據(jù)本身是在不同類型的環(huán)境間流轉(zhuǎn)的,如何保證數(shù)據(jù)能夠穩(wěn)定,準確的流轉(zhuǎn)也是重要的目標。
4)數(shù)據(jù)遷移和數(shù)據(jù)流轉(zhuǎn),數(shù)據(jù)遷移主要實現(xiàn)一鍵式數(shù)遷移,主要包括兩個個方面:
(1)一鍵式數(shù)據(jù)庫遷移,從1個服務器遷移到另外一個服務,一鍵實現(xiàn)
(2)數(shù)據(jù)庫版本升級,如從MySQL 5.5升級到5.7,從5.7升級到8.0等,可以一鍵實現(xiàn)
此外,數(shù)據(jù)流轉(zhuǎn)到數(shù)據(jù)倉庫,大數(shù)據(jù),如何高效穩(wěn)定的支持,如何實現(xiàn)實時的數(shù)據(jù)流轉(zhuǎn)機制和多環(huán)境間的快速遷移/同步也是重點目標。
對于技術(shù)底座而言,首要的目標就是文檔,文檔可以從上面的四個維度拆分為多種文檔,如規(guī)范設(shè)計文檔,預研文檔,方案設(shè)計文檔,操作文檔,案例文檔等。
接下來的服務的交付都應該統(tǒng)一為API的模式,演進可以從腳本到工具,從工具到API的路徑來演進。
底座的兩大分支是云平臺建設(shè)和服務建設(shè),云平臺建設(shè)覆蓋面更大,提供的是產(chǎn)品化思維的服務交付,對于技術(shù)架構(gòu)和開發(fā)效率的要求較高,這部分不能好高騖遠,還是得結(jié)合自身情況來提供強大的動力,其中,元數(shù)據(jù)建設(shè)是核心目標,在這個層面元數(shù)據(jù)要集成,實現(xiàn)流程化管理。
而右側(cè)的服務建設(shè)更貼近后端服務,從生命周期的角度來進行實例,數(shù)據(jù)庫,表,字段,索引層面的周期性管理,而提供的輔助服務則是更加貼近運維實際的,比如慢日志優(yōu)化,巡檢服務和故障自愈,和業(yè)務側(cè)是一種半透明的開放形式。
本文轉(zhuǎn)載自微信公眾號「楊建榮的學習筆記」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系楊建榮的學習筆記公眾號。