這是學習筆記的第 2265篇文章前端
讀完須要web
速讀僅需7分鐘面試
有時候忽然會把幾件不搭邊的事情聯繫起來,居然可以找到一些共通的地方。我在琢磨最近的幾件事情的時候,腦海裏不禁得浮現出幾個字:「半成品」數據庫
我是蠻反感工做中的半成品的,說有吧,使用效果通常,說沒有吧,也投入了一些時間,歸納一下就是投入和產出嚴重不成正比。
微信
另一類狀況更偏於主觀,作任務的人感受一切都穩當了,可是驗收的時候,發現不是設計理念的問題就是任務的精細度上面比較粗糙,若是本着差很少就行的態度其實也能過去,可是顯然之後的事情誰能說的了,真要用到的時候,代碼邏輯都忘差很少了,從新調試改動,這個工做若是前期能稍微充分難一些,也不會有不少返工。架構
因此在這件事情上面,我發現之前對本身,對團隊成員的要求有些鬆散,以致於稍微帶點要求和質量標準,就會感到你們有些吃力,其實對於職業發展來講是有害的,從0到1的構建主要爲了效率和快速迭代,可能在一些質量標準上面能夠打折扣,過分要求會有些刻薄,可是守江山更難,技術維護也是,都但願時間的邊際成本可以愈來愈低,在已有的基礎上構建和改進,那得下真功夫。app
我舉一個最近和半成品對抗的小例子,也是鞭策本身可以繼續按照既定的想法往前走。
學習
這是數據庫軟件的安裝部署的例子,按理說這是很簡單的一件事情了,若是要摳命令,基本都是個位數的命令,可是有一些須要額外補充的地方。 測試
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等文件的容量)
QQ羣號:763628645
QQ羣二維碼以下, 添加請註明:姓名+地區+職位,不然不予經過
訂閱個人微信公衆號「楊建榮的學習筆記」,第一時間免費收到文章更新。別忘了加星標,以避免錯過新推送提示。
近期熱文
你可能也會對如下話題感興趣。點擊連接就能夠查看。
本文分享自微信公衆號 - 楊建榮的學習筆記(jianrong-notes)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。