jlzzjlzz亚洲乱熟在线播放

系統城裝機大師 - 唯一官網:www.farandoo.com!

當前位置:首頁 > 數據庫 > DB2 > 詳細頁面

MySQL安裝部署,從半成品狀態的改進

時間:2020-08-31來源:www.farandoo.com作者:電腦系統城

有時候突然會把幾件不搭邊的事情聯系起來,竟然能夠找到一些共通的地方。我在琢磨最近的幾件事情的時候,腦海里不由得浮現出幾個字:“半成品”

我是蠻反感工作中的半成品的,說有吧,使用效果一般,說沒有吧,也投入了一些時間,概括一下就是投入和產出嚴重不成正比。

另外一類情況更偏于主觀,做任務的人感覺一切都妥當了,但是驗收的時候,發現不是設計理念的問題就是任務的精細度上面比較粗糙,如果本著差不多就行的態度其實也能過去,但是顯然以后的事情誰能說的了,真要用到的時候,代碼邏輯都忘差不多了,重新調試改動,這個工作如果前期能稍微充分難一些,也不會有很多返工。

所以在這件事情上面,我發現以前對自己,對團隊成員的要求有些松散,以至于稍微帶點要求和質量標準,就會感到大家有些吃力,其實對于職業發展來說是有害的,從0到1的構建主要為了效率和快速迭代,可能在一些質量標準上面可以打折扣,過度要求會有些刻薄,但是守江山更難,技術維護也是,都希望時間的邊際成本能夠越來越低,在已有的基礎上構建和改進,那得下真功夫。

我舉一個最近和半成品對抗的小例子,也是鞭策自己能夠繼續按照既定的想法往前走。

這是數據庫軟件的安裝部署的例子,按理說這是很簡單的一件事情了,如果要摳命令,基本都是個位數的命令,但是有一些需要額外補充的地方。

1)不同版本的參數文件,比如環境有5.5,5.6,5.7,8.0等,如何更好的支持多個版本

2)初始化用戶和權限,根據業務特點有些預置的用戶需要創建,配置相應的權限,不同版本下的語法格式都有差異,還有密碼插件相關影響。

3)安裝部署通常是和監控報警,備份恢復相關的,這些工作是不是可以作為可選項

4)單機多實例和service部署模式還是有一定的差別,如何平滑適配

5) 新增數據庫版本支持,已有的接口和部署方式如何適配

MySQL 8.0已經推出了幾年,也在內部做了一些測試和總結,而且早期我們直接入主MySQL 5.7版本,也算是積累了3年多的經驗,所以果斷決定新業務都按照MySQL 8.0的基線來推廣。

已有的腳本都好幾年沒動過了,經過一番需求分析,發現這是一個半成品,主要原因如下:

1)腳本目前直接使用的場景很少,去年團隊下大功夫開發的一鍵部署,因為流程長而顯得比較脆弱,已經和這個功能有了很大的差別

2)腳本執行不穩定,因為之前的腳本設計中采用了很多分散的腳本,也就意味著是腳本調腳本的思路,邏輯相對比較龐大,混雜

3)新增8.0的功能,腳本需要整體改動,涉及的面比較大

4)目前腳本里面也存在一些細小的問題,一直沒有修復

對于這些問題,我做了如下的一些事情。

1)備份腳本內容后,我開始刪除一些過時的邏輯檢查代碼,去掉一些沒有使用場景的邏輯和相關腳本

2)將多個腳本整合為1個,重新組織了腳本關聯依賴

3)將依賴的參數文件模板和腳本模板都上傳到配置中心里面,在腳本里面會用命令方式提取

4)把原來文件夾的腳本結構重構為一個單一的腳本

5)修改前端的配置,去掉冗余無效的配置項,修改調用邏輯

6)團隊內部做了簡單演示,團隊提了一些改進建議,修正后發布

這些工作經過了很多的測試和整理之后,在不同版本中也做了相關的測試和驗證。也算是讓原本半成品的狀態變為可用,而且是最新版本,接下來要做幾件更細致的事情。

1)安裝部署的時間目前在30秒以內,涉及數據字典的初始化,目前使用了一刀切的邏輯,后臺sleep 20秒,保證這個過程的初始化時間足夠,其實可以更加動態友好一些,做動態監測

2)考慮使用基于自制yum的配置方式,把一些固化的參數,命令等方式重新打包構建,這樣后續就可以使用yum的方式快速部署了。

3)把軟件安裝和部署整合起來,提供多版本的軟件支持和安裝,比如8.0.19,8.0.20

4)使用基于壓縮鏡像的模式,可以把一個數據庫壓縮到極小容量,需要時直接解壓啟動即可,經過之前的測試,一個可用的數據庫鏡像大概在2M左右,解壓后在2G~3G左右(涉及ibdata,reod等文件的容量)

分享到:

相關信息

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載