如何重新託管應用程式

若要重新託管應用程式,在環境之間進行遷移(通常從內部部署遷移至雲端,或者在某些情況下,針對專門的工作負載,遷移回內部部署),而無需改變其核心架構或程式碼。

學習目標

閱讀本文後,您將能夠:

  • 識別將應用程式重新託管至雲端的理想情境
  • 瞭解規劃和執行重新託管的最佳做法
  • 瞭解重新託管期間運算以外的基礎架構需求

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

什麼是應用程式重新託管?

應用程式重新託管(亦稱為「平移遷移」),是指將應用程式從內部部署環境遷移至雲端的程序,幾乎不需要修改或無需修改其底層基礎架構。這種方法讓組織能夠快速遷移工作負載,而無需重新設計或深入修改其應用程式。

藉由將應用程式遷移至雲端平台,企業可減少對實體硬體的依賴、削減營運成本,並改善可擴展性和復原能力。

組織為何將應用程式遷移至雲端

向雲端環境遷移的背後有若干關鍵驅動因素:

  • 可擴展性:雲端平台提供可根據需求進行調整的彈性資源
  • 成本效率:遷移至雲端可減少間接費用支出,並將支出轉移至更靈活的隨用隨付模型
  • 復原能力和可用性:雲端基礎架構通常提供內建的備援和災難復原功能
  • 安全性與合規性:主要雲端提供者提供安全性功能和認證來支援合規性需求
  • 創新:雲端遷移可加速開發週期、簡化整合,並提供對 AI、分析和無伺服器運算等服務的存取權限

大多數組織遷移至雲端是為了釋放這些優勢,而極少數組織(通常是具有專門工作負載的大型企業)正在將某些應用程式重新託管至內部部署環境,以滿足獨特的效能、合規性或成本考量。

重新託管如何支援應用程式現代化

應用程式現代化是指更新和遷移現有軟體應用程式及其底層基礎架構的程序,以便更好地支援組織的安全性、效能和可擴展性需求。在這項更廣泛的工作中,一種常見方法是重新託管。

雖然重新託管不涉及對應用程式本身的重大變更,但其發揮了雲端的優勢,並且有助於支援其他現代化工作,例如容器化、微型服務採用或重新架構。

在某些情況下,重新託管是無需重大升級的舊版應用程式的最後一步。在其他情況下,則是更深入轉換之前的過渡階段。

重新託管、遷移平台與重構

實現應用程式現代化有多種不同的方法,包括:

  • 重新託管:將應用程式遷移至雲端(只需最低限度的變更)
  • 遷移平台:在不變更核心應用程式碼的情況下,進行一些針對雲端最佳化的變更,例如,從自行管理資料庫遷移至受管雲端服務
  • 重構:重新設計或重寫應用程式以充分利用雲端原生功能,例如,容器或無伺服器運算

每種方法都需要在時間、成本和復雜性方面進行權衡。重新託管提供速度和簡單性,使其成為希望降低風險,同時加速雲端採用的組織的實用選擇。

重新託管有哪些最佳做法?

重新託管不僅僅是將應用程式的程式碼,從資料中心的伺服器遷移至雲端的虛擬機器。它更是一個結構化程序,包括規劃、自動化、測試和擴展 — 不僅僅是運算資源的擴展,還有整個應用程式基礎架構的擴展。

評估與規劃

在雲端基礎架構中重新託管應用程式之前,花時間瞭解需要移動哪些內容,以及如何與其他系統互動。

識別應用程式相依項

在探索階段,標出關鍵應用程式元件和相依項,例如,單體應用程式二進位資料(包含所有邏輯的單一可部署單元,例如 JAR、WAR 或 EXE)、伺服器轉譯的呈現層(例如,JSP、ASP .NET)、直接內嵌在應用程式中的業務邏輯,以及關聯式資料庫(通常是單一的 RDBMS,如 Oracle、SQL Server 或 MySQL)。

此外還要考慮常見的相依項,包括應用程式伺服器(例如 tomcat、webLogic 或 iis)、外部 API、驗證系統、網路規則、硬編碼 IP 或端點,以及任何其他連線服務。此清單並未詳盡列出,但包含了傳統應用程式架構中的許多典型元素。

此步驟有助於防止遷移期間的意外情況,並確保考慮到所有移動部件。

評估雲端基礎架構需求

對應關鍵相依項後,評估應用程式在新環境中的需求:

  • 運算和儲存要求
  • 延遲敏感度
  • 備份與復原目標
  • 地區可用區域
  • 尖峰負載下的頻寬預期

這亦是評估支援堆疊的時機:DNSCDNDDoS 防護可觀測性。重新託管亦是一個對這些層進行現代化改造的機會。

選擇合適的雲端提供者

為確保遷移工作取得長期成功,雲端提供者發揮著重要作用。運算定價通常是第一個比較點,請深入瞭解。

在評估雲端或現代化合作夥伴時,務必要尋找能夠提供一整套功能的提供者,來支援效能、安全性和營運效率。這包括可擴展的後端服務(能隨需求增長,而不會造成不可預測的成本暴增),以及整合式網路層級安全性功能,例如,Web 應用程式防火牆 (WAF)、DDoS 防護,以及精細的存取控制。

為確保將靜態和動態資產快速、一致地交付給世界各地的使用者,全球內容傳遞網路 (CDN) 亦發揮著至關重要的作用。提供者應提供不僅快速、可靠,而且還可進行程式設計的內建 DNS 服務,以支援自動化和復原能力。

最後,原生可觀測性工具(或與現有記錄和監控堆疊無縫整合),對於隨著應用程式擴展和演進而維持可見度和控制至關重要。

遷移後的測試和驗證

遷移成功是指應用程式正確、安全且高效地執行。重新託管之後,務必依據內部部署基準,對延遲和輸送量等關鍵效能指標進行基準測試,以確保應用程式符合使用者預期。執行負載測試有助於模擬真實世界的需求,並發現在正常情況下可能不會出現的問題。檢閱記錄和警示,對於識別可能影響可靠性或安全性的異常狀況或設定錯誤亦至關重要。

除了應用程式效能外,團隊還應驗證支援的基礎架構元件(包括 DNS 解析、CDN行為、TLS 設定和防火牆規則),以確認其在新環境中依預期運作。

作為遷移的一部分,流量導引在確保平穩過渡,而不發生面向客戶的停機方面發揮著關鍵作用。基於 DNS 的流量轉移、加權負載均衡,以及金絲雀部署等技術,可協助使用者逐步從內部部署環境遷移至應用程式的雲端版本。這讓團隊能夠即時監控系統行為、提早識別問題,並在需要時復原變更 — 所有這些都不會破壞終端使用者體驗。仔細協調 DNS TTL、運作狀態檢查和監控覆蓋範圍,對於在此關鍵階段維持服務持續性至關重要。

監控和擴展雲端資源

擴展應採用主動方式。如果適合目前的工作負載,考慮自動擴展群組或無伺服器選項。還要監控雲端支出,應用程式在雲端啟動之後,雲端遷移中的成本最佳化不會停止。

遷移後的持續可觀測性有助於:

  • 及早偵測效能問題
  • 管理資源使用率
  • 識別安全事件

實作雲端原生或第三方監控以支援:

  • 應用程式指標(CPU、記憶體、錯誤)
  • 網路流量和流量異常狀況
  • DNS 效能和快取命中率
  • CDN 有效性(邊緣快取與原點提取)

何時重新託管應用程式

若組織需要快速遷移、避免繁重的開發工作,或延長舊版系統的生命週期,重新託管通常是理想的選擇。對於希望減少實體基礎架構依賴,同時開始更廣泛的 IT 基礎架構轉換的組織而言,它亦非常適合。

重新託管的理想情境

若組織擁有穩定但昂貴的舊版應用程式,而這些應用程式正成為維護內部部署的負擔,則重新託管最為有效。當需要快速退出資料中心,或者優先事項是遷移至雲端,且對現有應用程式的程式碼庫中斷最少時,它亦非常適合。

對於計劃徹底進行更廣泛的現代化工作的團隊而言,重新託管可作為策略性的第一步,在今天支援基礎性變更的同時,為未來的重構保留靈活性。在這些情況下,重新託管有助於擴展舊版應用程式的價值,而無需立即重寫,從而有效地為組織準備好進一步現代化贏得了時間。

影響重新託管的商業方案和技術因素

在評估重新託管作為應用程式現代化路徑時,請考慮:

  • 遷移至雲端的時間:組織需要多快將應用程式遷移至新環境
  • 預算限制:目前的財務資源是否允許進行重新託管工作,或為將來的平台重建或重構工作做好準備
  • 營運持續性:組織在遷移期間對潛在服務中斷的容忍度
  • 人員配置:支援更深入的現代化計畫所需的內部技能可用性

重新託管提供了一條摩擦相對較低的雲端路徑,藉此來協助管理風險和資源限制。

雲端遷移中的成本最佳化

重新託管可藉由減少硬體維護和許可成本、資料中心開支和基礎架構佈建時間,實現雲端遷移的短期成本最佳化。然而,僅憑重新託管可能無法完全最佳化長期成本。如果不進行重構或平台重建,應用程式可能無法利用雲端原生效率,例如,自動擴展、無伺服器或受管服務。

短期內,組織可藉由消除資本支出以及對實體基礎架構的需求,來實現快速的投資報酬率。然而,從長遠來看,實現真正的成本效益需要更深入的最佳化,例如,調整運算用量、調整執行個體大小,以及解耦單體服務,以改善可擴展性和資源配置。

管理遷移後的雲端費用

雖然重新託管可降低一些安全風險,例如,對修補易受攻擊和過時基礎架構的依賴,但它亦會產生新的風險。在受控內部部署環境中安全的應用程式,在受控程度較低的雲端環境中可能會暴露,除非透過雲端原生安全性平台,採取措施來適當地對其進行保護。

成本是另一項關鍵考量。如果不採用主動管理,重新託管的應用程式可能會產生高於預期的雲端帳單。例如,輸出費用,即將資料移出雲端提供者環境的費用,可能會迅速增加,對於資料密集型應用程式尤其如此。

為避免遷移至雲端之後的非預期成本,組織應採用主動的資源和成本管理方法。這包括密切監控用量趨勢,以識別模式和異常狀況,並建立明確的成本治理原則來定義擁有權和問責制。自動執行調整大小和排程未充分利用資源之類的任務,有助於減少浪費並最佳化支出。此外,在雲端平台內設定預算和警示,會在成本超過可接受閾值之前發出預警訊號,從而協助團隊在環境擴展時盡在掌控。

遷移過程中的安全考量

每一項遷移策略都應在整個過程中將安全性作為核心考量,包括:

重新託管之前做好準備的重要性

重新託管取得成功,不僅僅是需要將應用程式複製到雲端。轉換執行不當可能會導致:

  • 使用者體驗受損
  • DNS 傳播期間發生停機
  • 延遲可用性問題
  • 遺漏相依項或過時設定

一個常見問題:客戶或合作夥伴可能依賴與應用程式的舊資料中心繫結的靜態 IP 位址。如果他們的這些 IP 位址未更新,流量就會失敗。組織必須預測這些相依項,並主動與利害關係人協調,以確保順暢遷移。

周密規劃的重新託管包括:

  • 與客戶和合作夥伴的溝通方案
  • 測試環境和復原選項
  • 清楚地記錄端點或基礎架構變更

Cloudflare 如何支援應用程式現代化

Cloudflare 藉由在全球範圍內轉換影片和影像、對應用程式進行負載均衡和解析 DNS,來加速應用程式現代化,從而實現快速、可靠的效能。自動化保護可防禦機器人、DDoS 和零時差攻擊,而整合的可觀測性可確保整個雲端環境的合規性。憑藉這些功能,Cloudflare 強化了應用程式堆疊的每一層,以實現安全、高效能且面向未來的現代化。

進一步瞭解應用程式現代化