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


























