IDC 業務上雲怎麼遷?從資產盤點、6R 策略分類、遷移波次排期,到資料遷移方式選擇、DNS 切換與回滾判據,給出一條能照著走的遷移路徑,並附六個最常踩的坑與真實時間表。
IDC 業務上雲的技術難度,其實不在「把機器搬過去」。裝系統、傳檔案、開一臺雲主機,這些都不難。真正讓專案拖上幾個月、預算翻倍的,是三件沒人一開始就算清楚的事:你到底有哪些系統、它們之間怎麼互相依賴、以及出事之後怎麼退回去。
一句話路徑:摸清家底 → 給每個系統定 6R 策略 → 切波次排期 → 用低風險系統試點 → 分批遷資料與流量 → 留足回滾視窗 → 遷後驗證再下線舊機器。跳過任何一步,代價都會在後面加倍還回來。
先別急著搬:遷移不是搬機器
很多第一次上雲的專案失敗,不是因為技術選錯,而是目標定錯了。把目標寫成「把 30 臺機器搬上雲」,專案會卡在搬完那一刻:業務沒改善、成本反而漲了、團隊也不知道接下來該幹嘛。完整的階段劃分與每階段的驗收口徑,見 上雲遷移解決方案。
更可行的目標是三件可驗證的事:
- 能力對齊:雲上的可用性、擴充套件速度、恢復時間(目標常寫 RTO ≤ 30 分鐘、RPO ≤ 5 分鐘)是否真的比自建機房強
- 成本可預測:賬單構成清晰,閒置資源可識別,月度波動有上下限
- 可維護:新人能在 30 分鐘內按文件部署一套新環境,而不是靠某位老員工的記憶
這三個目標都寫下來,後面每一次取捨就有依據了。比如「先不改架構、只平移」在這個目標下是合理的;但如果你的目標是恢復時間從 4 小時降到 30 分鐘,那隻平移肯定不夠,必須動資料庫。
判斷遷移成功不看機器在哪,看三張圖:業務側的可用性與延遲曲線、成本曲線、故障恢復耗時曲線。把這三條基線在遷移前先量出來,遷完才有東西可比。
第 0 步:把家底摸清楚
這一步最枯燥,也最決定成敗。典型中型公司(20–50 臺伺服器、10–30 個系統)需要 2–4 周,產出一份「系統清單 + 依賴關係表」。不要追求文件漂亮,能回答下面四個問題就夠了:
- 這臺機器上跑什麼? 域名、應用名、版本、負責人。沒有負責人的系統,直接標記為待下線候選。
- 它依賴誰? 上游是誰呼叫它,下游它呼叫了誰(資料庫、快取、內部介面、第三方 API)。
- 它依賴什麼環境? 硬編碼 IP、本地檔案路徑、
/etc/hosts記錄、共享儲存、定時任務。 - 它還能砍嗎? 過去 90 天有沒有訪問日誌。有沒有業務方確認。
盤點最大的坑是隱藏依賴。 硬編碼在程式碼裡的 IP、寫死在 crontab 裡的指令碼路徑、只存在於某個工程師電腦上的部署指令碼——這些在任何配置文件裡都查不到,只有真正跑一遍全鏈路才會暴露。
兩個實用做法:一是用網路流量反查依賴,從防火牆或負載均衡日誌裡找出真實呼叫關係,比問人準得多;二是讓每個業務方書面確認一句「這個系統還要不要」,簽字確認過的清單,後面用來決定下線才不會有人扯皮。
給每個系統定策略:6R 分類法
不是所有系統都值得「搬」。業界常用的 6R 分類法,把每個系統歸入一種遷移策略,避免把一次搬遷變成一場大改造。第一次上雲的公司,絕大多數系統其實只需要第一行。
| 策略 | 做法 | 適合什麼 | 停機視窗 | 一般佔比 |
|---|---|---|---|---|
| Rehost 整體平移 | 原樣跑在雲主機上,業務程式碼不改 | 自研但老舊、暫時沒精力改造 | 分鐘到小時級 | 60%–80% |
| Replatform 換底層 | 換託管資料庫、容器、負載均衡,不動業務邏輯 | Web 服務、中介軟體、資料庫 | 分鐘級 | 10%–20% |
| Refactor 重新設計 | 拆微服務,用託管服務替換自建元件 | 要長期演進的平臺型系統 | 幾乎為零(灰度) | 低,但週期最長 |
| Repurchase 改用 SaaS | 買成品替換自建 | CRM、OA、監控、工單等通用功能 | 無 | 常被低估 |
| Retire 直接下線 | 確認無人使用就關掉 | 殭屍服務、多年未訪問的測試環境 | 無 | 常有 10%–20% |
| Relocate 機房搬遷 | 機房或託管商變更,架構不動 | 已在雲上但要換機房 | 視是否同步資料 | 不屬於上雲本身 |
上表的比例是行業經驗範圍,具體比例要看你自己的清單,別當結論用。真正值得在盤點階段多花時間的,是 Retire 那 一行:把沒人用的系統砍掉,遷移動作量往往直接少兩成,剩下的遷移預算和風險也一起少兩成。
分類的決策順序:先問「還要不要」(Retire / Repurchase),再問「改造值不值」(Refactor),最後才問「怎麼搬」(Rehost / Replatform)。反過來問,很容易把一個本該下線的系統認真遷上雲。
切批次:遷移波次怎麼排
一次性全切是事故的高發場景。正確做法是切成波次,每波之間留出觀察期,讓團隊在低風險狀態下發現流程問題。按依賴從外到內排:
| 波次 | 內容 | 入選標準 | 常見週期 |
|---|---|---|---|
| 第 0 波 試點 | 1–2 個非核心服務:官網、測試環境、內部工具 | 出問題不影響營收,白天就能修完 | 3–6 周 |
| 第 1 波 無狀態 | 無狀態 Web / API、靜態站點、定時任務 | 沒有本地資料依賴,實例可隨時重建 | 4–8 周 |
| 第 2 波 有狀態 | 主資料庫、快取、訊息佇列、物件儲存 | 需設計停機視窗與回滾方案 | 6–10 周 |
| 第 3 波 長尾 | 遺留系統、內部報表、老舊中介軟體 | 接受功能降級,或改用 SaaS | 滾動推進 |
每波之間建議設2–4 周觀察期,期間不做新的遷移動作,只做三件事:核對賬單有沒有異常項、覆盤上一波的故障、修正監控。跳過觀察期的團隊,通常會在第三波開始同時處理三個方向的問題。
每一波開工前還有一份准入檢查,四項全過才啟動:
- 上一波的觀察期已過,且沒有未關閉的 P1 / P2 問題
- 這一波涉及的系統清單已確認,依賴方已知會
- 回滾方案寫好了,且回滾判據經過一次桌面推演(不用真執行)
- 監控、告警接收人、備份策略在雲上環境裡已經生效
試點先行:用低風險系統跑通全流程
試點不是「隨便遷一個」,它的唯一目的是在核心業務之前把流程的坑全部踩一遍:賬號許可權怎麼申請、網路怎麼打通、映象怎麼打、監控怎麼接、告警發給誰、故障怎麼響應。這些事第一次做都慢,第二次就快了。
選試點系統的三個條件:業務價值足夠低(掛了沒人報警)、依賴足夠全(至少含資料庫和一次外部呼叫)、兩三天內能遷完(別選需要改程式碼的)。
- 在雲上開測試賬號,按最小許可權開通,跑通一次完整的部署流程
- 打通 IDC 與雲的網路:短期用 VPN 或專線,長期看要不要專線
- 把部署過程指令碼化,目標是新環境 30 分鐘內可重建
- 接上監控與告警,故意關一次機器,確認告警鏈路通
- 寫一份試點覆盤:踩了哪些坑、每步實際耗時、哪些步驟可以自動化
試點跑完後拿到的每步實際耗時,就是你後面排期的唯一依據。它通常比拍腦袋的估計長 2–3 倍,尤其是許可權審批和網路開通這兩件事。
資料怎麼遷:停機全量 vs 線上複製
資料遷移是整個專案裡唯一會產生真實業務停機的環節,方式的選擇直接決定你能對業務承諾什麼。
| 方式 | 流程 | 停機視窗 | 適用場景 |
|---|---|---|---|
| 停機全量(離線) | 停寫 → 備份 → 傳輸 → 恢復 → 校驗 → 改配置 | 幾十分鐘到數小時 | 資料量在幾百 GB 以內,能接受計劃內停機 |
| 線上複製 | 先全量同步,再持續追增量,切換時只等最後一段 | 秒級到幾分鐘 | 資料量大、不能長時間停寫 |
| 雙寫 / 訂閱變更 | 應用層雙寫,或訂閱 binlog / WAL 同步兩套 | 接近零 | 要求零停機,但改造成本高、需處理衝突 |
停機視窗怎麼估:恢復耗時 ≈ 資料量 ÷ 有效傳輸速率 × 1.3。係數 1.3 是給索引重建、日誌重放和校驗留的餘量。有效傳輸速率要按實測算,不要用標稱頻寬。
無論哪種方式,資料校驗都不能省。至少做四項,缺一項就可能在切換後才發現丟資料:
- 行數比對(關鍵表的行數與增量條數)
- 邊界比對(最大 / 最小主鍵,確認沒有漏掉尾部的資料)
- 時間戳範圍比對(最新記錄的時間是否對得上)
- 業務口徑抽樣對賬——比如昨天的訂單總額兩邊各算一遍,這個才是最終裁判
切換與回滾:DNS 那一刀怎麼砍
DNS 切換是唯一一次全域性生效、不可快速撤銷的動作,所以回滾方案必須在切換之前定好,而不是出事後再想。
| 時間點 | 動作 | 回滾判據 |
|---|---|---|
| T-7 天 | 把相關域名的 TTL 從預設值降到 300 秒 | — |
| T-1 天 | 停掉增量寫入與定時任務,做最後一次全量 | — |
| T 時刻 | 觸發增量追平,校驗資料一致 | 校驗不一致,立即中止並恢復寫入 |
| T+5 分鐘 | 灰度:切 5%–10% 流量到雲上,觀察 30 分鐘 | 錯誤率或 P95 延遲劣化超過約定閾值 |
| T+1 小時 | 全量切流,舊環境轉為只讀保留 | — |
| T+24–72 小時 | 觀察期滿,才允許正式下線舊伺服器 | 視窗內出現 P1 故障,立刻把 DNS 切回 |
TTL 一定要提前降。 預設 3600 秒的話,切流生效最慢要等 1 小時,使用者和你看到的現象還會不一致。提前 3–7 天降到 300 秒,回滾才可能在 5 分鐘內全量生效。
回滾視窗的判據要事先寫下來並讓業務方確認,例如「雲上 P95 延遲比基線高 50% 持續 10 分鐘」或「錯誤率超過 0.5%」。事前沒有共識,回滾這個決定會在凌晨三點卡在「到底算不算故障」。
另外,舊環境在觀察期內不要刪機器、不要退租,只降級為只讀備援。刪早了就沒有退路了。
過渡期的混合共存
整個遷移期,你的業務大機率要同時存在於 IDC 和雲上兩處。混合期一般持續 1–3 個月,這段時間有三個必須解決的問題:
- 網路:IDC 與 VPC 之間走專線還是 VPN。頻寬通常按峰值算,遷移動態流量建議專線、雙向冗餘,或至少確認 VPN 在高峰時段不成為瓶頸。
- 安全邊界:兩邊防火牆策略互開放的口子要限時、限源,並在每波遷移結束後回收,別留下長期後門。
- 訪問方式:優先換成跳板機 + 零信任或 VPN 撥入,替代過去「在公網上開一個管理埠」的習慣。
還有一個容易漏的點:雙向同步不能長期跑。IDC 與雲之間保持資料庫雙活或雙向複製,一旦有寫衝突,處理成本遠高於停機視窗那幾十分鐘。所以混合期的目標應該是儘快收斂到單向,而不是把共存當成一種穩態架構。混合期的網路要專線或內網互聯,不要走公網繞——做法見 雲企業網。
混合期還要額外盯三個跨端指標,它們比任何單端指標都更早暴露問題:
- 跨端往返延遲(RTT):IDC 與雲之間的實測值通常高於同區域內的延遲,直接影響兩邊同步的吞吐
- 鏈路頻寬佔用率:複製流量往往和業務流量搶頻寬,佔用率持續超過 70% 就該升級鏈路
- 臨時開放的規則數:每波遷完就該回收,越積越多說明這條邊界正在腐化
遷完不等於完:驗證清單
「能訪問」不等於「遷移成功」。切換完成後,按下面幾項逐條驗證,每項都和遷移前的基線比,而不是看絕對值好不好看。
- 效能對齊:P50 / P95 / P99 延遲、吞吐、錯誤率,與遷移前基線對比。雲上同規格實例的基線效能常低於同代物理機(同核數下 CPU 基準分可能低 10%–30%),共享型或突發型實例差距更大。
- 功能抽查:按核心業務路徑逐個走一遍,覆蓋登入、下單、支付回撥、報表匯出這類長鏈路,而不只是首頁。
- 監控到位:告警確實會送到值班的人,且值班的人知道怎麼處理。故意製造一次告警來驗證。
- 備份可恢復:不是「備份任務成功」,而是真的演練一次恢復。很多團隊第一次恢復是在真正需要的那天。
- 成本核對:上線一週後拉第一份完整賬單,逐項解釋每條支出的用途。
效能餘量建議預留 20%–30%。 遷移期間臨時開的機器、複製用的頻寬、除錯開的日誌,可能讓配置偏大。穩定執行 2–4 周後再縮容,比一上來就買小再反覆擴容省事。
六個最常踩的坑
這些坑的共同特點是:事前幾乎看不出來,事後都很貴。
- 隱藏依賴:硬編碼 IP、寫死在 crontab 裡的路徑、共享儲存掛載。只有切流那一刻才暴露。
- License 與授權不認:部分商業軟體按物理 CPU 或插槽授權(常見於商業資料庫、企業級中介軟體、老版本備份與防毒 agent),遷到雲上按 vCPU 重新計費,成本可能不降反升。籤長期承諾前先確認授權口徑。
- 低估資料庫停機:停機視窗 = 停寫 + 全量備份 + 傳輸 + 恢復 + 校驗,經驗上比「資料量 ÷ 頻寬」要多幾倍。
- 成本意外:遷移期雙份成本、出網流量費、NAT 閘道器與負載均衡的流量計費、忘關的舊機器。預留實例與節省計劃也別一上來就買——至少觀察 1–2 個月穩定用量再買。
- 沒有回滾方案:切換前沒定判據、TTL 沒提前降、舊機器提前刪了。
- 遷完就撒手:監控沒接、備份沒演練、文件沒更新。三個月後沒人敢動這套系統。
成本這件事要提前說清楚:遷移期間賬單通常是平時的 1.5–3 倍(兩邊同時跑 + 專線 + 流量),這個超額部分最好在立項時就跟財務對齊,否則中途會被叫停。具體倍數視規模而定,最終以評估和官方實時報價為準。
現實的時間表與成本
給一箇中型公司的參考節奏。數字是常見區間,不是承諾,具體以你的盤點結果和團隊熟練度為準:
| 階段 | 常見週期 | 主要產出 |
|---|---|---|
| 資產盤點與依賴梳理 | 2–4 周 | 系統清單、依賴關係表、6R 分類結果 |
| 雲上環境準備與網路打通 | 2–6 周 | VPC 與許可權、專線或 VPN、映象與部署指令碼 |
| 試點遷移 | 3–6 周 | 跑通全流程的樣板、踩坑記錄、效能基線 |
| 第 1–2 波遷移 | 2–4 個月 | 核心業務上雲、資料雙跑與切換 |
| 長尾清理與舊機房退租 | 1–3 個月 | 舊機器下線、合同終止、成本覆盤 |
一支 10–20 人的團隊、20–50 臺伺服器的服務規模,從啟動到全部下線,常見總週期是 4–8 個月。其中真正寫遷移程式碼的時間往往不到三分之一——大部分時間花在盤點、溝通、等審批和反覆驗證上。這點最好在立項時就說清楚,否則專案會被當成開發任務排期,實際拖成長期運維。
成本上也要區分一次性投入和長期結構變化。一次性的是專線開通、專線/遷移期間的額外流量、以及可能的短期實例擴容;長期結構變化則是穩態下的機器規格、是否上託管資料庫和 CDN、以及有沒有拿到包年或預留折扣。
- 穩態月成本通常低於原有 IDC 支出(含機房、電力、硬體折舊),但結構完全不同——從固定成本變成隨用量波動,需要有人盯著賬單
- 別在第一年就買最長週期的承諾,先用 1–2 個月觀察真實用量,再決定包年或預留實例的覆蓋比例
- 舊機房退租有提前解約週期,這條常被漏進排期,最後幾個月的合同違約金可能不低
以上都是區間經驗,不是報價。 具體金額取決於資料量、流量、可用區數量和所選規格,最終以正式評估結果與官方實時報價為準。
下一步:從一份資產清單開始
如果這周就要推動這件事,不需要先選雲廠商。第一步只做一件事:拉出伺服器清單,給每臺機器填上四列——跑什麼、誰負責、依賴誰、要不要留。 兩天就能做完,但它決定了後面所有排期。
- 匯出近 90 天的訪問與流量日誌,把半年零訪問的系統先標為「下線候選」
- 按 6R 給每個系統分類,統計出 Rehost / Replatform / Retire 各佔多少
- 挑一個滿足「掛了不影響營收」的試點系統,定下試點的時間視窗
- 請業務方書面確認「哪些系統不要了」,這一步能省下最大一塊工作量
拿著這份清單再做區域、機型和預算的評估,得到的方案會比憑感覺選靠譜得多——因為你已經知道要遷什麼、遷幾套、哪幾套值得好好改。
下一步怎麼做:把這份資產清單整理成表格(系統名、負責人、依賴、資料量、停機容忍度、6R 分類),帶著它去和雲廠商談評估,能顯著縮短方案週期,也讓報價更貼近真實遷移量。評估通常可免費或低成本提供,具體以廠商政策為準。