關於老系統現代化的各種方式 Modernize Legacy Systems
2022-01-02
思考 Gartner 所提出對應老系統現代化的各種方式,結合目前工作的情境思考對應的挑戰以及商機。方式包括了封裝、重新部署、環境遷移、重構、架構改造、重新開發與取代。
說明
Encapsulate
Encapsulate 翻譯為封裝,不改寫任何的程式碼,因原本的系統的功能屬核心功能,藉由 Service 的方式向原本的系統介接。
挑戰:將功能介接進行介面化的設計方式。
商機:代為封裝原始系統,熟稔 WebAPI、gRPC、Web Service 介接方式;需要對多種平台有基本的認識 (Mainframe, Unix, Linux, Windows)。
Rehost
Rehost 翻譯為重新部署,將原本的系統在相同的平台但不同的硬體設施上重新部署。例如從舊實體機到新實體機、實體機到虛擬機或者從 On-Premises 到 Cloud。
挑戰:部署過程的詳盡 SOP、系統 Dependency 是否有文件可以支援。
商機:代為協助重新部署,需要熟悉系統開發、伺服器作業系統、資料庫,並熟悉三者之間的交互關係。
Replatform
Replaform 翻譯為環境遷移,例如從 Mainframe 到 Open (Java or .NET),以 JVM 的方式 Run Mainframe 上的 COBOL Code;或是 C# 從 .NET Framework 到 .NET。
挑戰:新的 Runtime 相容程度,相容程度越低需要改寫系統程式的幅度越高。
商機:開發 Runtime 相容執行 Legacy System 的 Code。
Refactor
Refactor 翻譯為重構,主要為消除開發過程因時間因素基於快速而留下的技術債 (得過且過、能動就好的開發方式),效益在於提升軟體的品質,以及增進未來的可維護性。
挑戰:沒有時間 (新的開發工作、舊的系統維護)、不知道如何重構以提升品質、重構者非原始開發者。
商機:軟體品質、測試專家協助輔導進行程式碼重構;程式碼重構輔助軟體。
Rearchitect
Rearchitect 翻譯為架構改造,例如從單體式架構到微服務架構,以支援規模化 (Scalability) 、快速交付 (Agile、DevOps) 的優點。
挑戰:架構改造所需的人力以及知識門檻、架構調整後所需的測試工作。
商機:微服務、容器專家協助架構改造。
Rebuild
Rebuild 翻譯為重新開發,在維護系統原有的規範及功能的情況下,改採不同的平台、架構、程式語言來進行開發設計。例如由 Mainframe 的 COBOL 重新開發為 .NET C#,並採 Web API 或者是 MVC 的架構。
挑戰:原本的系統規格文件是否保存良好、是否有人力進行重新開發、重新開發後所需的測試工作。
商機:委外開發。
Replace
Replace 翻譯為取代,從系統的功能面去整合、汰除,並結合新興的需求來進行設計,不保留原始的系統而革新式的改造。
挑戰:Legacy 功能被滿足外,新的需求一併加入考入,是否有人力進行開發、新舊平台切換所需的測試工作。
商機:委外開發。