什麼是應用程式現代化?

應用程式現代化是指變更、取代或架構應用程式基礎架構的程序,通常透過雲端遷移來實現。

學習目標

閱讀本文後,您將能夠:

  • 描述應用程式現代化
  • 瞭解現代化舊版應用程式的重要技術
  • 闡述應用程式現代化步驟和策略(「5 R」)

相關內容


想要繼續瞭解嗎?

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

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

複製文章連結

什麼是應用程式現代化?

應用程式現代化是指更新或取代較舊(或「舊版」)應用程式的架構、程式碼和基礎架構的程序。該詞彙最常用於將應用程式的基礎架構從內部部署切換至雲端,通常涉及從單體應用程式架構遷移至維新服務無伺服器架構。其目標是讓應用程式提升可擴展性、可維護性且更具成本效益,同時減少營運開支。

與商業世界中發生的其他類型的現代化一樣(例如,從印刷式備忘錄切換至電子郵件),應用程式現代化讓這些程序能夠適應新技術,以追求更高的效率。對舊版應用程式進行現代化改造,可讓這些應用程式的開發人員從雲端運算中受益,與較舊的 IT 模型相比,雲端運算更具可擴展性,且成本結構更靈活。

應用程式現代化通常是更大規模的雲端遷移數位轉換工作的一部分。

舊版應用程式現代化如何運作?

雲端運算在虛擬機器上進行。雲端服務是從底層硬體中移除的一個或多個「抽象層」。這會將雲端與內部部署基礎架構區分開來,其中應用程式在特定伺服器和明確定義的網路內執行。雲端廠商管理硬體並透過網路連線來提供服務。由於雲端以這種方式構建,因此雲端運算更加靈活,因為它能夠視需擴展並消除與內部部署營運關聯的某些成本。

雖然內部部署應用程式往往是單一的單體實體,但雲端託管應用程式架構通常分為更小的部分,這些部分可視需進行呼叫。應用程式現代化可能涉及將架構適應這種格式(但並非所有應用程式現代化策略都是如此)。

現代化應用程式的關鍵概念包括:

  • 微型服務:微型服務是獨立部署的小型元件,每個元件在應用程式中執行特定的功能。兩者都在自己的環境中執行,並且可單獨開發和擴展。
  • 容器:容器封裝應用程式的程式碼和相依項,以便其在不同環境中一致地執行。它們通常用於微型服務架構,但並非專用於此。
  • 無伺服器運算:這種類型的雲端架構將應用程式分解為離散的事件驅動型功能。無伺服器功能是僅隨需執行的個別程式碼片段。請注意,許多基於雲端的應用程式將無伺服器、微型服務和容器整合至單一架構,並透過 API 閘道連接。
  • API:應用程式開發介面 (API) 充當微型服務和功能的連接器,構成基於雲端的應用程式,並且全部相互獨立執行。API 允許應用程式視需呼叫每項服務。
  • 協調流程:協調流程是與管理容器關聯的任務自動化。包含容器的應用程式架構通常還會包括某種協調流程,Kubernetes 就是一種常見的協調流程。
  • 雲端儲存:應用程式資料的雲端儲存有多種類型,包括物件儲存Blob 儲存區塊儲存
  • 雲端原生安全性:雲端原生安全性旨在保障基於雲端的應用程式基礎架構,同時支援資料合規性和治理。
  • AI 整合:現代化應用程式與生成式 AI自主式 AI 更順暢地整合,這些技術所依賴的模型主要在雲端環境中遠端執行,而非在本機執行。

主要的應用程式現代化策略有哪些?

眾所周知,最常見的應用程式現代化策略名稱都以「R」開頭(英文)。因此,這些策略有時稱為「5 R」或「7 R」。

「5 R」(最初由 Gartner 在 2010 年定義):

  • 重新託管:這種應用程式現代化策略亦稱為「直接搬移」,通常能最快速度執行。單體內部部署應用程式遷移至雲端,並透過基礎架構即服務 (IaaS) 提供者,而非自我管理基礎架構進行託管。重新託管就像是將一棟房屋拖到街對面的地段。
  • 重構:重構與重新託管類似,但應用程式透過平台即服務 (PaaS),而非 IaaS 託管。這涉及的開銷甚至更少且靈活性更大,但應用程式可能需要稍微調整,以適應雲端提供者的平台。想像一下,將一棟房屋拖到一個比之前更長但更窄的地段,並為房屋增加第二層以更好地利用空間。
  • 修訂:「修訂」策略涉及部分重寫應用程式的程式碼庫。想像一下解構一棟房屋,然後根據更高效的平面圖對其進行重建。
  • 重建:此應用程式現代化策略會重寫應用程式,以透過 PaaS 提供者進行部署。想像一下將拆除球帶到一棟房屋,並從頭開始進行重建。
  • 取代:此策略會捨棄舊版應用程式,並用提供類似功能的現代化或基於雲端的應用程式取而代之。想像一下購買一棟全新的房屋。

其他應用程式現代化策略(或稱「R」)包括:

  • 遷移平台:此策略涉及對程式碼做出某些變更,以便應用程式在雲端平台上正常執行,但不會像重構那樣進行多次變更。
  • 重新架構:對應用程式後端進行重新設計和部分重寫,以便在雲端中更好地運作。
  • 回購:與「取代」策略類似,從其他廠商購買取代應用程式,而不是之前所用的應用程式廠商。

組織應採用哪種應用程式現代化策略?

適當的策略(或者更準確地說,大多數組織並非僅採用一種策略)取決於組織的目標和可用預算。以最少工作量和成本來實現更快的遷移,通常意味著重新託管一開始是適當的策略。為獲得長期可擴展性或支援現代開發做法,例如,持續整合和持續部署 (CI/CD),可能需要進行更廣泛的變更。在這些情況下,重新架構、重構或重建應用程式可讓組織更好地為未來需求做好準備。

組織應先確定現代化程序的目標、時間表和預算,然後再決定策略。

應用程式現代化的主要步驟有哪些?

具體步驟因策略和組織而異,但整體而言,應用程式現代化工作的主要階段包括:

  • 準備:首先評估每個候選的現代化應用程式、識別其元件、尋找其所有資料,並確定應用程式的後現代化目標(例如,是否透過 API 公開?提供相同的功能還是擴展功能?)。組織必須依據其計畫靈活地構建,因為在實作期間可能必須根據非預期情況做出調整。
  • 現代化:在此階段,組織會執行準備階段定義的計畫,轉換應用程式後端,並視需遷移資料。
  • 遷移:淘汰舊的應用程式,現代化應用程式將接管其功能。理想情況下,此階段發生在現代化之後或期間,以免影響業務程序。
  • 持續營運:組織繼續測試、更新、維護、保護和改善其現代化應用程式,並視需佈建更多雲端資源。

應用程式現代化面臨哪些挑戰?

應用程式現代化確實需要組織花費時間、資金和資源。開發人員、DevOps、安全性和合規性團隊需要安排時間來移動、架構和保護現代化應用程式。內部團隊可能需要重新導向網路流量、停用硬體,並實作新的安全措施。然而,理想情況下,應用程式現代化工作長遠來看最終會使組織更有效率。

應用程式現代化有哪些優勢?

組織不會僅僅為了實現「現代化」或使用雲端,而對其應用程式進行現代化改造,而是希望從以下成果中獲益:

  • 加速開發:由於雲端會擺脫開銷和基礎架構的禁錮,因此,組織可以更快地推出新功能。
  • 透過 API 提供應用程式:這允許應用程式與其他應用程式整合,以實現更高效的開發和自動化程序。
  • 面向未來擴展:組織購買自己的基礎架構時,會受到其購買容量的限制。但雲端實際上是無限的(儘管人工智慧正在測試預先存在的資料中心容量)。
  • 改善應用程式效能:基於雲端的應用程式透過本地化資料中心執行,可從各個位置存取,而不會減慢網路流量(這種現象稱為「轉接」)。
  • 面向未來:應用程式現代化策略提供的靈活性,讓組織能夠隨著需求的變化而充分利用更新的技術和效率。
  • 減少技術債務:在現代化程序期間,可取代過時的語言、笨拙的實作,以及不斷劣化的硬體。
  • 提高安全性:將應用程式遷移至雲端,消除了許多與內部部署單體應用程式關聯的安全性挑戰,儘管雲端有其自身的安全性問題。

Cloudflare 可協助組織充分利用這些優勢。Cloudflare 的全球連通雲將網路存取、安全性、威脅情報和多家廠商提供的其他服務整合至單一平台,而 Cloudflare 的開發人員服務則提供了實現應用程式現代化所需的工具。瞭解 Cloudflare 如何促進應用程式現代化工作