製造工廠的現場作業員、自動化倉儲系統 (WMS) 以及供應鏈排程系統,無時無刻都在與 ERP 核心進行高頻互動。任何突發性的當機都意味著產線停擺與巨大的營業損失。因此,製造業企業在推動核心軟體現代化時,最重要的前提永遠是「零非預期停機」。
扼殺者模式的核心理念
扼殺者榕 (Strangler Fig) 是生長在熱帶雨林中的植物,它從宿主樹木的枝幹頂部開始生長,藤蔓逐漸向下延伸覆蓋,最終在不摧毀環境平衡的情況下,完全取代原本老樹的空間。在軟體工程中,Martin Fowler 提出的扼殺者模式正是指在新舊系統外圍架設透明代理層,將特定模組的功能逐步轉移至新架構,最終平滑淘汰舊系統。
製造業 ERP 實踐扼殺者模式的三大支柱
1. 智慧路由與 API 閘道代理 (Edge Routing)
所有來自廠區機台、條碼槍與內部系統的請求,首先通過現代化的 API 閘道。初期,閘道將 100% 的流量透明轉發給舊單體 ERP。當工單排程模組重構完成後,閘道根據 URL 路由與請求特徵,將工單相關流量精準導流至新服務,其他功能依然走舊系統。
2. 領域事件發布與資料同步 (CDC / Change Data Capture)
新服務與舊系統往往需要存取相同的物料與庫存資料。我們採用變更資料擷取 (CDC) 技術,實時監聽舊資料庫的交易日誌 (Transaction Log),將資料異動轉換為領域事件發送至訊息佇列,確保新舊系統在過渡期間資料完全一致。
3. 防腐層 (Anticorruption Layer, ACL) 的必要隔離
舊 ERP 內充滿了以兩個英文字母命名欄位(如 FL_QTY_01, SYS_ST_C)的歷史包袱。新服務絕不能直接引用這些難以理解的資料結構。防腐層負責在邊界將舊格式轉換為語意清晰的現代領域實體,保護新代碼不受歷史髒資料污染。