許多長期運作的系統仍提供重要功能,卻因文件不足、缺少測試、相依關係混亂或技術停止支援,逐漸難以理解、修改與部署。這類系統通常稱為遺留系統(Legacy System)。
本系列以「重新設計並建置目標系統,最終替換遺留系統」為主線,內容涵蓋需求與範圍確認、舊系統分析、目標設計、功能重新實作、測試、正式切換及舊系統退場。
系列不預設特定框架或架構,適合正在維護長期運作系統、準備替換既有系統,或希望建立完整重構流程的開發與維護人員閱讀。
系統需要進行哪些測試? 目標系統的單一功能通過驗證,只能確認該功能在指定條件下符合預期。完整替換遺留系統前,還要確認各項功能可以正確組合、輸入輸出維持相容、重要...
系統如何部署?應該使用甚麼工具部署? 目標系統通過功能與整體測試後,還要放入可以長期運作的執行環境。部署方案會限制可採用的作業系統、封裝方式、相依項目及更新流程...
如何讓系統更穩定?需要分散式架構嗎? 系統穩定代表它能在已定義的處理量與失敗情境下維持必要功能,或在允許時間內恢復。增加執行副本、拆分服務或導入容器編排平臺,只...
分散式服務之間的資料要如何同步? 前一章確認分散式架構會增加跨服務通訊、部分失敗與資料一致性的處理成本。當一項功能需要多個服務共同完成時,這些服務不能直接修改彼...
系統能承受多少負載?應該如何進行壓力測試? 前面章節已確認目標系統的功能、部署方式與跨服務互動。如果系統在單次操作時能正確回應,仍不能推論它在多項工作同時發生時...
如何減輕服務壓力?需要快取嗎? 前一章已透過效能測試找出目標系統的容量、瓶頸與失敗方式。接下來要根據測試結果減少造成瓶頸的工作,再用相同條件確認調整是否有效。快...
如何管理專案版本? 建置成功只能表示某次執行產生了結果。如果無法回答結果來自哪一筆原始碼、使用哪些設定、通過哪些檢查,以及部署至何處,就難以比較問題發生前後的差...
如何自動檢查、建置與部署系統? 自動化流程的價值在於讓相同輸入經過相同檢查,產生可以追溯的建置成品(Artifact)與結果。把既有人工指令直接搬進自動化工具,...
如何確保服務正常運作?應該監控服務? 程式仍在執行不代表功能可以正常完成。單一健康檢查成功,也無法說明錯誤是否持續增加、處理是否變慢,或相依項目是否已經影響結果...
重構需要記錄哪些文件? 重構過程已經產生功能範圍、分析結果、架構決策、遷移規則、測試結果、版本、部署與監控資料。最後的文件工作不需要把這些內容重新抄成一份總報告...