云化遷移:從現(xiàn)狀評(píng)估到切換驗(yàn)證的完整流程設(shè)計(jì))
簡(jiǎn)介一份覆蓋信息系統(tǒng)云華遷移全流程的設(shè)計(jì)方案面向企業(yè)IT規(guī)劃人員、遷移實(shí)施團(tuán)隊(duì)及解決方案顧問(wèn)幫助建立從現(xiàn)狀調(diào)研到遷移上云再到確認(rèn)交割的規(guī)范化路徑。內(nèi)容以服務(wù)流程圖統(tǒng)領(lǐng)全局詳細(xì)拆解四個(gè)關(guān)鍵階段系統(tǒng)調(diào)研與評(píng)估含物理基礎(chǔ)架構(gòu)、應(yīng)用系統(tǒng)、業(yè)務(wù)重要性及生命周期評(píng)估、需求分析及匯總區(qū)分基礎(chǔ)架構(gòu)與應(yīng)用系統(tǒng)兩條脈絡(luò)、遷移實(shí)施涉及遷移范圍確定、環(huán)境準(zhǔn)備、人員準(zhǔn)備、網(wǎng)絡(luò)環(huán)境準(zhǔn)備、計(jì)算資源準(zhǔn)備與遷移執(zhí)行、測(cè)試驗(yàn)證與確認(rèn)交割。文檔還針對(duì)遷移失敗分析、云主機(jī)優(yōu)化等實(shí)操細(xì)節(jié)給出方法框架目錄結(jié)構(gòu)完整可直接作為云遷移項(xiàng)目方案模板或投標(biāo)支撐材料使用。資源包為1個(gè)PDF文件大小333KB已有76人學(xué)習(xí)/下載適合需要快速掌握遷移服務(wù)流程設(shè)計(jì)與交付要點(diǎn)的中高級(jí)實(shí)施和管理人員。1. 信息系統(tǒng)云化遷移先設(shè)計(jì)服務(wù)流程再談遷移工具信息化團(tuán)隊(duì)接到云化遷移任務(wù)的第一反應(yīng)通常是找遷移工具鏡像導(dǎo)出、數(shù)據(jù)同步、批量導(dǎo)入。工具鏈越拉越長(zhǎng)真到切換那天業(yè)務(wù)方一句“系統(tǒng)連不上”現(xiàn)場(chǎng)就亂了。問(wèn)題不在工具而在流程?!缎畔⑾到y(tǒng)云華遷移服務(wù)流程設(shè)計(jì)方案》這個(gè)標(biāo)題點(diǎn)破的關(guān)鍵是把云化遷移當(dāng)成一條有入口、有出口、有質(zhì)量門(mén)禁的服務(wù)流水線來(lái)設(shè)計(jì)而不是一堆服務(wù)器的搬運(yùn)。這套流程拆開(kāi)看是四段現(xiàn)狀評(píng)估、方案設(shè)計(jì)、遷移實(shí)施、切換驗(yàn)證。前兩段做不扎實(shí)后兩段必然還債。這篇文章就把每段的交付物、檢查項(xiàng)和常見(jiàn)坑攤開(kāi)講適合正要帶隊(duì)做遷移的架構(gòu)師、項(xiàng)目經(jīng)理和運(yùn)維負(fù)責(zé)人也適合備考信息系統(tǒng)項(xiàng)目管理師的從業(yè)者拿來(lái)做案例拆解。2. 遷移前的現(xiàn)狀盤(pán)點(diǎn)把應(yīng)用依賴(lài)和資源賬單攤開(kāi)再動(dòng)手任何遷移方案的第一步都不是畫(huà)目標(biāo)架構(gòu)圖而是盤(pán)點(diǎn)。盤(pán)點(diǎn)不徹底后面所有環(huán)節(jié)都要還債。這一章聚焦三件事資產(chǎn)清單怎么建、哪些系統(tǒng)能搬哪些不能搬、第一批先搬什么。2.1 應(yīng)用資產(chǎn)清單別只數(shù)服務(wù)器要把依賴(lài)關(guān)系畫(huà)出來(lái)大多數(shù)團(tuán)隊(duì)做資產(chǎn)盤(pán)點(diǎn)最后交付的是一張 Excel列了主機(jī)名、IP、操作系統(tǒng)、CPU 內(nèi)存。這張表對(duì)云化遷移來(lái)說(shuō)遠(yuǎn)遠(yuǎn)不夠。云化遷移要回答的是“這個(gè)系統(tǒng)由哪些部分組成、彼此怎么連接”所以清單至少要覆蓋五類(lèi)對(duì)象。對(duì)象類(lèi)型必填字段常見(jiàn)遺漏服務(wù)器主機(jī)名、IP、操作系統(tǒng)版本、CPU/內(nèi)存/磁盤(pán)數(shù)據(jù)盤(pán)掛載點(diǎn)、系統(tǒng)盤(pán)數(shù)據(jù)盤(pán)劃分?jǐn)?shù)據(jù)庫(kù)引擎、版本、端口、實(shí)例數(shù)、庫(kù)表規(guī)模、字符集只讀實(shí)例、定時(shí)任務(wù)依賴(lài)、慢日志保留策略中間件類(lèi)型、版本、部署模式單機(jī)/集群配置文件里的絕對(duì)路徑、環(huán)境變量網(wǎng)絡(luò)依賴(lài)源 IP、目標(biāo) IP、端口、協(xié)議防火墻對(duì)端、負(fù)載均衡后端 RS 列表任務(wù)與備份定時(shí)任務(wù)、備份策略、保留周期依賴(lài)外部調(diào)度的系統(tǒng)如代扣、對(duì)賬清單建完后還要畫(huà)一張依賴(lài)圖。做法很樸素從入口域名或 Nginx 開(kāi)始追蹤到應(yīng)用、中間件再到數(shù)據(jù)庫(kù)把每一條鏈路標(biāo)出來(lái)。不用一次畫(huà)全先挑核心鏈路畫(huà)再逐步補(bǔ)外圍。很多人在這一步偷懶結(jié)果遷移到第三批時(shí)發(fā)現(xiàn)一個(gè)邊緣系統(tǒng)連著生產(chǎn)庫(kù)安全組沒(méi)放行切換不了。2.2 遷移可行性評(píng)估三類(lèi)系統(tǒng)直接決定你的方案走向盤(pán)點(diǎn)完以后要對(duì)每個(gè)系統(tǒng)做可行性評(píng)估判斷能不能遷、怎么遷。常見(jiàn)做法是分三類(lèi)可直接遷移、需改造后遷移、不建議遷移。類(lèi)別判斷標(biāo)準(zhǔn)處理方式可直接遷移操作系統(tǒng)可通過(guò)鏡像或?qū)С鰧?dǎo)入到云主機(jī)未深度綁定物理機(jī)特性保留原 OS 做“搬家”式遷移需改造后遷移數(shù)據(jù)庫(kù)版本過(guò)老、有集群依賴(lài)、綁定服務(wù)器序列號(hào)、中間件版本停止維護(hù)先做兼容性測(cè)試必要時(shí)升級(jí)組件再遷不建議遷移強(qiáng)綁定特定硬件加密機(jī)、老式 PCIE 板卡、有嚴(yán)格屬地要求留在本地走專(zhuān)線打通云上只放延伸應(yīng)用版本問(wèn)題是評(píng)估時(shí)最易翻車(chē)的點(diǎn)。比如存量 CentOS 6 系統(tǒng)云上新公共鏡像基本不再提供配套必須先確認(rèn)源規(guī)格和內(nèi)核版本。數(shù)據(jù)庫(kù)也是重災(zāi)區(qū)MySQL 5.5 的庫(kù)遷到云上 MySQL 8.0語(yǔ)法兼容性問(wèn)題會(huì)在切換后集中爆發(fā)。評(píng)估階段必須把這些版本差異寫(xiě)成一張風(fēng)險(xiǎn)清單而不是等到實(shí)施時(shí)再發(fā)現(xiàn)。2.3 遷移優(yōu)先級(jí)矩陣先搬什么、后搬什么按這個(gè)規(guī)則排遷移順序不能靠領(lǐng)導(dǎo)拍板建議按兩個(gè)維度打分業(yè)務(wù)影響度停了損失多大和遷移難度技術(shù)復(fù)雜度、依賴(lài)數(shù)量。兩個(gè)維度交叉成四象限排序規(guī)則是固定的。業(yè)務(wù)影響遷移難度批次建議高低第一批快速見(jiàn)效建立信心高高第二批給足時(shí)間單獨(dú)排窗口低低第三批批量并行作業(yè)低高最后評(píng)估能拖就拖或并入改造計(jì)劃這里有一個(gè)經(jīng)驗(yàn)先搬外圍系統(tǒng)驗(yàn)證一遍流程再碰核心系統(tǒng)。外圍系統(tǒng)體量小、影響面窄哪怕退火也能兜住。核心系統(tǒng)的切換窗口必須與業(yè)務(wù)方書(shū)面確認(rèn)不能只口頭打個(gè)招呼。備考信息系統(tǒng)項(xiàng)目管理師的讀者應(yīng)該能看出來(lái)這個(gè)四象限就是范圍管理和進(jìn)度管理在實(shí)操里的變體案例題???。3. 上云方案設(shè)計(jì)架構(gòu)選型、網(wǎng)絡(luò)規(guī)劃與批次劃分盤(pán)點(diǎn)結(jié)束進(jìn)入設(shè)計(jì)階段。這一階段的核心交付物有四樣目標(biāo)架構(gòu)圖、網(wǎng)絡(luò)規(guī)劃表、批次計(jì)劃表、回退預(yù)案。前三樣直接決定實(shí)施階段的順暢程度。3.1 同構(gòu)遷移還是異構(gòu)改造先回答這四個(gè)問(wèn)題很多項(xiàng)目在架構(gòu)選型上翻車(chē)是因?yàn)槟J(rèn)“原樣搬”。實(shí)際上遷移分兩種路線同構(gòu)遷移保持原有操作系統(tǒng)、中間件和數(shù)據(jù)庫(kù)引擎版本整體搬到云上異構(gòu)改造利用云的能力做升級(jí)比如物理機(jī)換容器、自建數(shù)據(jù)庫(kù)換云數(shù)據(jù)庫(kù)。選哪條路回答四個(gè)問(wèn)題就夠。問(wèn)題同構(gòu)遷移異構(gòu)改造業(yè)務(wù)能接受的最長(zhǎng)停機(jī)時(shí)間分鐘級(jí)即可接受需要接近零停機(jī)才會(huì)考慮團(tuán)隊(duì)有沒(méi)有能力維護(hù)中間件和數(shù)據(jù)庫(kù)有繼續(xù)自建沒(méi)有上托管服務(wù)是否存在必須靠改造解決的性能瓶頸無(wú)有比如數(shù)據(jù)庫(kù) IO 吞吐長(zhǎng)期打滿成本預(yù)算是單次還是持續(xù)單次遷移預(yù)算允許持續(xù)投入改造優(yōu)化我一般會(huì)建議“外圍同構(gòu)、核心改造”的混合路線。外圍系統(tǒng)量大、邏輯簡(jiǎn)單同構(gòu)遷移最快一個(gè)月能推三批核心系統(tǒng)數(shù)據(jù)量大、停機(jī)窗口短值得做異構(gòu)改造收益體現(xiàn)在后續(xù)運(yùn)維成本上。如果四個(gè)問(wèn)題里有兩個(gè)以上偏向異構(gòu)就不要為了省事強(qiáng)行同構(gòu)后續(xù)性能問(wèn)題會(huì)讓你花更多時(shí)間還債。3.2 網(wǎng)絡(luò)與安全設(shè)計(jì)VPC 規(guī)劃、安全組與遷移期雙通道網(wǎng)絡(luò)規(guī)劃是遷移方案里出問(wèn)題最多的地方。很多人只畫(huà)了目標(biāo)環(huán)境的結(jié)構(gòu)漏掉了遷移期間兩邊要互通這個(gè)臨時(shí)需求。我一般會(huì)至少做一張網(wǎng)絡(luò)規(guī)劃表把四件事定下來(lái)。規(guī)劃項(xiàng)原則VPC 與子網(wǎng)按業(yè)務(wù)板塊劃分生產(chǎn)和開(kāi)發(fā)強(qiáng)制隔離網(wǎng)段安全組按業(yè)務(wù)鏈路維度放行規(guī)則備注來(lái)源、用途、創(chuàng)建人長(zhǎng)距離數(shù)據(jù)通道數(shù)據(jù)量大走專(zhuān)線數(shù)據(jù)量小走公網(wǎng)加密通道不推薦用共享文件直接拉數(shù)據(jù)域名與證書(shū)提前規(guī)劃域名解析切到新環(huán)境的時(shí)點(diǎn)證書(shū)按新環(huán)境重新簽發(fā)遷移期間有個(gè)必踩點(diǎn)兩邊業(yè)務(wù)并發(fā)存在安全組至少要放行兩個(gè)方向的規(guī)則——新環(huán)境到舊庫(kù)、舊環(huán)境到新庫(kù)。只開(kāi)單向通道數(shù)據(jù)同步腳本跑著跑著就斷了而且報(bào)錯(cuò)信息不直觀。另外等保合規(guī)方面記得保留遷移期間的訪問(wèn)日志和操作審計(jì)安全組規(guī)則變更要有記錄這些在項(xiàng)目驗(yàn)收時(shí)會(huì)用到。3.3 批次劃分的粒度L1/L2/L3 三層批次與時(shí)間窗口批次劃分不能拍腦袋給個(gè)“先小后大”要落到具體的批次粒度。常見(jiàn)的做法是分成 L1、L2、L3 三層。L1 批外圍應(yīng)用5 到 8 個(gè)系統(tǒng)一批集中在一個(gè)周末窗口凌晨啟動(dòng)天亮前清場(chǎng)。L2 批核心業(yè)務(wù)前后端單個(gè)系統(tǒng)一個(gè)窗口寧可一天只切一個(gè)也不要湊批。L3 批數(shù)據(jù)庫(kù)與消息集群放最后單獨(dú)給 4 小時(shí)以上窗口包含完整的數(shù)據(jù)校驗(yàn)動(dòng)作。窗口時(shí)長(zhǎng)要按數(shù)據(jù)量給參考值而不是統(tǒng)一拍一個(gè)數(shù)字。數(shù)據(jù)量建議窗口說(shuō)明小于 100G2 小時(shí)全量遷移加簡(jiǎn)單校驗(yàn)100G 到 1T6 到 8 小時(shí)全量加增量加校驗(yàn)必須完整跑完超過(guò) 1T單獨(dú)評(píng)估與業(yè)務(wù)確認(rèn)停機(jī)底線必要時(shí)分庫(kù)分片遷移提示窗口時(shí)長(zhǎng)里必須預(yù)留 30% 緩沖排程不要排滿。另外每次切換的動(dòng)作不只“切一遍”還包含預(yù)演、正式切換、回退演練三個(gè)動(dòng)作這三者要寫(xiě)進(jìn)同一個(gè)批次計(jì)劃不能只排正式切換。4. 遷移實(shí)施流程數(shù)據(jù)同步、應(yīng)用搬遷與切換驗(yàn)證方案定下來(lái)后進(jìn)入實(shí)施。實(shí)施階段是所有環(huán)節(jié)里最容易變形的地方因?yàn)樵诖翱趦?nèi)做任何決策都帶著時(shí)間壓力。按流程走但每一類(lèi)對(duì)象分別對(duì)待。4.1 數(shù)據(jù)層遷移全量加增量加校驗(yàn)三步走數(shù)據(jù)層遷移是流程里最嚴(yán)肅的環(huán)節(jié)標(biāo)準(zhǔn)做法是“全量備份恢復(fù)、增量追平、一致性校驗(yàn)”。以 MySQL 為例常見(jiàn)執(zhí)行順序是先在備份前把源庫(kù)設(shè)為只讀或停寫(xiě)用 mysqldump 導(dǎo)出再把備份恢復(fù)到目標(biāo)庫(kù)隨后開(kāi)啟增量同步追平時(shí)段的數(shù)據(jù)最后校驗(yàn)一致。# 在源庫(kù)執(zhí)行全量導(dǎo)出壓縮后傳輸?shù)皆贫?mysqldump -h 源庫(kù)IP -u遷移賬號(hào) -p \ --single-transaction --master-data2 \ --routines --triggers \ --default-character-setutf8mb4 \ 業(yè)務(wù)庫(kù)名 | gzip /data/migration/db_full.sql.gz # 導(dǎo)入目標(biāo)庫(kù)后立刻核對(duì)轉(zhuǎn)儲(chǔ)文件頭部的 binlog 位點(diǎn) # 增量同步就從這個(gè)位點(diǎn)開(kāi)始追參數(shù)說(shuō)明--single-transaction 保證 InnoDB 導(dǎo)出時(shí)數(shù)據(jù)一致且不鎖業(yè)務(wù)表但前提是表引擎是 InnoDBMyISAM 不受保護(hù)--master-data2 會(huì)在導(dǎo)出文件頭寫(xiě)入 binlog 位點(diǎn)這是后續(xù)增量同步的起點(diǎn)漏了它就只能重新導(dǎo)出--routines 和 --triggers 把存儲(chǔ)過(guò)程、觸發(fā)器一并導(dǎo)出這兩個(gè)參數(shù)經(jīng)常被漏掉導(dǎo)致切換后應(yīng)用報(bào)“找不到存儲(chǔ)過(guò)程”。文件型數(shù)據(jù)的同步用 rsync 更實(shí)用。比如靜態(tài)資源、上傳目錄的搬遷# 用 rsync 做數(shù)據(jù)目錄同步限速避免擠占業(yè)務(wù)帶寬 rsync -av --delete --bwlimit50000 \ -e ssh -i /path/遷移密鑰 \ /data/app_resources/ root目標(biāo)IP:/data/app_resources/參數(shù)說(shuō)明--delete 表示以源端為準(zhǔn)把目標(biāo)端多余文件清掉第一次同步時(shí)建議不加這個(gè)參數(shù)先跑一遍對(duì)比差異--bwlimit 單位是 KB/s50000 即 50MB/s具體數(shù)值要先打一次壓測(cè)否則可能把業(yè)務(wù)帶寬占滿。同步完成后不要急著做下一步先跑一遍文件數(shù)和總大小的對(duì)比確認(rèn)沒(méi)有偏差。4.2 應(yīng)用層搬遷從冷遷移到熱遷移的選型應(yīng)用層搬遷的核心不是“怎么搬”而是“能不能快速回滾”。常見(jiàn)做法有三種適用場(chǎng)景完全不同。第一冷遷移停機(jī)搬遷。適用于外圍系統(tǒng)把服務(wù)器做成鏡像導(dǎo)入云主機(jī)或者在新環(huán)境重新部署一遍再同步配置。停機(jī)時(shí)間長(zhǎng)但流程簡(jiǎn)單可靠適合 L1 批。第二熱遷移在線遷移。對(duì)網(wǎng)絡(luò)條件苛刻需要持續(xù)的大帶寬遷移期間對(duì)業(yè)務(wù)性能有擠壓排障難度高。整機(jī)熱遷遇到驅(qū)動(dòng)不兼容或磁盤(pán) UUID 沖突時(shí)恢復(fù)時(shí)間不可控。第三容器化改造。應(yīng)用做了解耦和配置外置的話直接打成鏡像用編排拉起這是最干凈的方案但要求前期改造足夠充分。我一般不會(huì)推薦沒(méi)有做過(guò)容器化的系統(tǒng)臨時(shí)趕容器化那會(huì)把一次遷移變成一次重構(gòu)。沒(méi)有容器化基礎(chǔ)的系統(tǒng)寧可選擇重新部署加配置同步也不要整機(jī)熱遷。整機(jī)熱遷出問(wèn)題時(shí)排障窗口不可控最容易造成切換超時(shí)。4.3 切換前驗(yàn)證五類(lèi)檢查項(xiàng)不能省切換前要按清單驗(yàn)收不能只看“能打開(kāi)首頁(yè)”就算完。五類(lèi)檢查項(xiàng)缺一不可。檢查類(lèi)具體動(dòng)作失敗標(biāo)準(zhǔn)連通性新環(huán)境到數(shù)據(jù)庫(kù)、到對(duì)象存儲(chǔ)、到舊環(huán)境白名單任一不通即失敗配置核對(duì)配置文件的 IP、端口、路徑、密鑰有殘留舊 IP 即失敗數(shù)據(jù)對(duì)比源與目標(biāo)的行數(shù)、最大 ID抽樣核驗(yàn)記錄不一致即失敗任務(wù)檢查定時(shí)任務(wù)是否拉起、消息隊(duì)列是否有堆積有堆積即失敗業(yè)務(wù)用測(cè)試賬號(hào)走一遍核心交易鏈路任一環(huán)節(jié)報(bào)錯(cuò)即失敗提示驗(yàn)證清單要在切換前打印成紙質(zhì)或在線表格逐項(xiàng)勾選不要靠現(xiàn)場(chǎng)記憶。切換當(dāng)天的操作人是頂不住壓力的清單是唯一的保險(xiǎn)。5. 云遷移排障避坑多次實(shí)操里最痛的四個(gè)翻車(chē)現(xiàn)場(chǎng)這一章是血淚經(jīng)驗(yàn)總結(jié)。云遷移的坑大多相似而且重復(fù)出現(xiàn)在不同的項(xiàng)目里。下面四條都有典型的“現(xiàn)象、原因、解決”三步結(jié)構(gòu)。5.1 現(xiàn)象數(shù)據(jù)遷移完成后業(yè)務(wù)連不上數(shù)據(jù)庫(kù)現(xiàn)象數(shù)據(jù)導(dǎo)入完成新環(huán)境應(yīng)用部署好一啟動(dòng)就報(bào)數(shù)據(jù)庫(kù)連接超時(shí)。排查半天發(fā)現(xiàn)是新環(huán)境的應(yīng)用服務(wù)器 IP 段沒(méi)加進(jìn)數(shù)據(jù)庫(kù)的白名單。原因設(shè)計(jì)網(wǎng)絡(luò)時(shí)只規(guī)劃了“遷移工具到數(shù)據(jù)庫(kù)”的通道漏掉了“新應(yīng)用服務(wù)器到數(shù)據(jù)庫(kù)”的連接。本質(zhì)上是資產(chǎn)清單里的連接關(guān)系沒(méi)有畫(huà)全。解決在第一步資產(chǎn)盤(pán)點(diǎn)時(shí)增加一張“連接關(guān)系表”列出所有源環(huán)境應(yīng)用到數(shù)據(jù)庫(kù)、應(yīng)用到中間件、應(yīng)用到外部系統(tǒng)的連接關(guān)系。網(wǎng)絡(luò)規(guī)劃階段按連接關(guān)系表逐條配置安全組和白名單而不是按服務(wù)器列表批量放行。5.2 現(xiàn)象切換窗口一拖再拖業(yè)務(wù)方失去耐心現(xiàn)象計(jì)劃 4 小時(shí)完成切換到第 6 小時(shí)增量數(shù)據(jù)還在漲業(yè)務(wù)方已經(jīng)在旁邊催運(yùn)維頂不住壓力開(kāi)始改參數(shù)風(fēng)險(xiǎn)失控。原因切換前沒(méi)有做“寫(xiě)停止”演練。存量數(shù)據(jù)同步完成后業(yè)務(wù)持續(xù)寫(xiě)入增量一直追不平。追不平的原因是增量同步的速度跟不上業(yè)務(wù)寫(xiě)入高峰。解決切換窗口務(wù)必選業(yè)務(wù)低峰期并提前與業(yè)務(wù)約定一個(gè)具體的“停止寫(xiě)操作”時(shí)間點(diǎn)哪怕只停 30 分鐘。對(duì)于無(wú)法停寫(xiě)的核心系統(tǒng)在流程設(shè)計(jì)階段就要規(guī)劃雙寫(xiě)或消息隊(duì)列緩沖不能到切換現(xiàn)場(chǎng)再想辦法。另外增量追平階段要監(jiān)控延遲曲線如果延遲持續(xù)擴(kuò)大而不是收斂直接進(jìn)回退評(píng)估不要硬等。5.3 現(xiàn)象遷移后性能不升反降現(xiàn)象遷到云上之后CPU 使用率比原來(lái)還高數(shù)據(jù)庫(kù)慢查詢(xún)變多業(yè)務(wù)方質(zhì)疑“云上比物理機(jī)還差”。原因遷移時(shí)直接用了云平臺(tái)的默認(rèn)實(shí)例規(guī)格內(nèi)存比源機(jī)小磁盤(pán)類(lèi)型是普通云硬盤(pán)而不是高性能型。數(shù)據(jù)庫(kù)參數(shù)也是默認(rèn)值buffer pool、連接數(shù)等關(guān)鍵參數(shù)沒(méi)按源配置對(duì)照調(diào)整。解決遷移前把源環(huán)境的關(guān)鍵配置參數(shù)采集下來(lái)包括內(nèi)存、CPU、磁盤(pán) IOPS、數(shù)據(jù)庫(kù) buffer pool、最大連接數(shù)。新環(huán)境按源配置對(duì)照調(diào)整。遷移后第一周做性能基線對(duì)比不要等業(yè)務(wù)方投訴了再調(diào)。5.4 現(xiàn)象回退操作把兩邊的數(shù)據(jù)搞亂了現(xiàn)象切換后發(fā)現(xiàn)問(wèn)題需要回退運(yùn)維直接恢復(fù)舊庫(kù)第二天業(yè)務(wù)反饋切換期間的新訂單全部丟失。原因回退流程只寫(xiě)了“恢復(fù)舊庫(kù)”沒(méi)處理切換期間新庫(kù)產(chǎn)生的增量數(shù)據(jù)?;謴?fù)舊庫(kù)的動(dòng)作把新數(shù)據(jù)全部覆蓋掉了而且無(wú)法找回。解決回退方案必須包含“增量反寫(xiě)”動(dòng)作——先導(dǎo)出新庫(kù)在切換期間產(chǎn)生的增量數(shù)據(jù)導(dǎo)入舊庫(kù)再恢復(fù)應(yīng)用指向舊庫(kù)。每次回退前先凍結(jié)新庫(kù)寫(xiě)入再執(zhí)行反寫(xiě)避免新一輪不一致。這套動(dòng)作要在預(yù)演時(shí)跑通不能只停留在文檔里。6. 遷移后的基線驗(yàn)證與成本止損讓云賬單和業(yè)務(wù)指標(biāo)對(duì)得上遷移還沒(méi)有完切換只是開(kāi)始。總有人問(wèn)“遷上去到底快沒(méi)快、省沒(méi)省”這兩件事都必須用數(shù)據(jù)回答。6.1 性能基線遷移后 48 小時(shí)的對(duì)比方法我現(xiàn)在的做法是遷移前就把源環(huán)境的監(jiān)控?cái)?shù)據(jù)存好至少保留一周。遷移后 48 小時(shí)做對(duì)比維度固定為接口響應(yīng)時(shí)間 P99、TPS/QPS、CPU 峰值、慢查詢(xún)數(shù)、磁盤(pán) IO 等待。把這些維度做成一張對(duì)比表貼在項(xiàng)目的復(fù)盤(pán)文檔里。對(duì)比結(jié)果只有兩類(lèi)一類(lèi)是性能達(dá)標(biāo)另一類(lèi)是差異項(xiàng)逐條列出原因——是參數(shù)沒(méi)調(diào)到位還是規(guī)格選小了。比如數(shù)據(jù)庫(kù)慢查詢(xún)變多大概率是 buffer pool 太小調(diào)整后復(fù)測(cè)48 小時(shí)內(nèi)給出結(jié)論。6.2 成本可視把賬單拆到部門(mén)和系統(tǒng)維度成本方面遷移后第一件要做的事是給所有云資源打標(biāo)簽標(biāo)簽落到系統(tǒng)名和成本中心兩個(gè)維度。一個(gè)月后拉取賬單按標(biāo)簽維度看費(fèi)用分布找出兩類(lèi)問(wèn)題閑置資源和過(guò)度配置。閑置資源最常見(jiàn)的是源環(huán)境遷完后沒(méi)釋放的存量服務(wù)器那是最大的成本漏洞。過(guò)度配置則是遷移時(shí)按峰值申請(qǐng)了高規(guī)格遷完后實(shí)際用量只有 20%。我現(xiàn)在的習(xí)慣是每次遷移完必須開(kāi)一次復(fù)盤(pán)會(huì)把計(jì)劃時(shí)長(zhǎng)與實(shí)際時(shí)長(zhǎng)、每項(xiàng)檢查清單的勾選情況、所有參數(shù)變更記錄逐項(xiàng)過(guò)一遍。沒(méi)有這次復(fù)盤(pán)下一輪遷移大概率會(huì)在同一個(gè)坑里再摔一次。這套流程未必能保證一次成功但能保證每次失敗都有記錄每次記錄都能指導(dǎo)下一次。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取