共用方式為


Java Web 應用程式容器化和移轉至 Azure App Service

在本文中,您將瞭解如何使用 Azure Migrate:應用程式容器化工具將 Java Web 應用程式容器化(在 Apache Tomcat 上執行),並將其遷移至 Azure App Service 。 容器化程序不需要存取程式碼基底,並提供簡單的方式來容器化現有的應用程式。 此工具的運作方式是使用伺服器上應用程式的執行狀態來判斷應用程式元件,並協助您在容器映像中封裝它們。 然後,可以在 Azure App Service 上部署容器化應用程式。

「Azure Migrate:應用程式容器化」工具目前支援:

  • 將 Apache Tomcat (位於 Linux 伺服器) 上的 Java Web 應用程式容器化,並將其部署至 App Service 上的 Linux 容器。
  • 將 Apache Tomcat (位於 Linux 伺服器) 上的 Java Web 應用程式容器化,並將其部署至 AKS 上的 Linux 容器。 深入瞭解
  • 將 ASP.NET 應用程式容器化,並將其部署至 AKS 上的 Windows 容器。 深入瞭解
  • 將 ASP.NET 應用程式容器化,並將其部署至 App Service 上的 Windows 容器。 深入瞭解

「Azure Migrate:應用程式容器化」工具可協助您:

  • 探索您的應用程式:此工具會從遠端連線到執行 Java Web 應用程式的應用程式伺服器(在 Apache Tomcat 上執行),並探索應用程式元件。 此工具會建立 Dockerfile,可用來建立應用程式的容器映像。
  • 建置容器映像:您可以根據應用程式需求檢查並進一步自定義 Dockerfile,並使用該映射來建置應用程式容器映像。 應用程式容器映像會推送至您指定的 Azure Container Registry。
  • 部署至 Azure App Service:此工具接著會產生將容器化應用程式部署至 Azure App Service 所需的部署檔案。

注意

  • 「Azure Migrate:應用程式容器化」工具可協助您探索特定應用程式類型 (Apache Tomcat 上的 ASP.NET 和 Java Web 應用程式),以及其在應用程式伺服器上的元件。 若要探索伺服器,以及內部部署機器上執行的應用程式、角色和功能詳細目錄,請使用「Azure Migrate:探索和評量功能」。 深入瞭解
  • 應用程式容器化工具會略過一些預設 Tomcat Web 應用程式的探索,例如 "docs"、"examples"、"host-manager"、"manager" 和 "ROOT"。

雖然若沒有大幅重新架構,所有應用程式都不會從直接轉移至容器而受益,但將現有應用程式移至容器而不重寫的一些優點包括:

  • 改善的基礎結構使用率: 使用容器時,多個應用程式可以共用資源,並裝載在相同的基礎結構上。 這可協助您合併基礎結構,並改善使用率。
  • 簡化的管理: 藉由將應用程式裝載在 AKS 和 App Service 等現代化受控平臺上,您可以簡化管理做法。 若要達成此目的,您可以淘汰或減少傳統上以所擁有基礎結構來執行的基礎結構維護和管理程序。
  • 應用程式可移植性: 隨著容器規格格式和平臺的採用和標準化增加,應用程式可移植性不再是問題。
  • 使用DevOps採用新式管理: 協助您採用並標準化管理和安全性的新式做法,並轉換至 DevOps。

在本教學課程中,您將了解如何:

  • 設定 Azure 帳戶。
  • 安裝「Azure Migrate:應用程式容器化」工具。
  • 探索您的 Java Web 應用程式。
  • 建置容器映像。
  • 在 App Service 上部署容器化應用程式。

注意

教學課程將會針對案例示範最簡單的部署路徑,讓您可以快速設定概念證明。 教學課程在情況允許時都會使用預設選項,且不會顯示所有可能的設定與路徑。

必要條件

開始進行本教學課程之前,您必須:

要求
識別要安裝此工具的計算機 一部 Windows 電腦,以便安裝及執行 Azure Migrate: 應用程式容器化工具。 Windows 電腦可以是伺服器 (Windows Server 2016 或更新版本) 或用戶端 (Windows 10) 作業系統,這表示工具也可以在您的桌面上執行。

執行工具的 Windows 電腦應該具有網路連線能力,可連線至裝載要容器化的 Java Web 應用程式的伺服器/虛擬機器。

確保執行 Azure Migrate: 應用程式容器化工具的 Windows 電腦上有 6 GB 的空間可用於儲存應用程式成品。

Windows 電腦應該可以直接或透過 Proxy 存取網際網路。
應用程式伺服器 在執行要容器化 Java 應用程式的伺服器上的連接埠 22 上啟用安全殼層 (SSH) 連線。
Java Web 應用程式 此工具目前支援:

- 在 Tomcat 8 或 Tomcat 9 上執行的應用程式。
- Ubuntu Linux 16.04/18.04/20.04、Debian 7/8、Red Hat Enterprise Linux 5/6/7 上的應用程式伺服器。
- 使用 Java 7 或 Java 8 的應用程式。
如果您有另外的版本,則請尋找支援所需版本的映像,並修改 dockerfile 以取代映像

此工具目前不支援:

- 執行多個 Tomcat 執行個體的應用程式伺服器

準備 Azure 使用者帳戶

如果您沒有 Azure 訂用帳戶,請在開始之前建立 免費帳戶

設定訂用帳戶之後,您需要一個具有下列權限的 Azure 使用者帳戶:

  • Azure 訂用帳戶上的擁有者權限。
  • 註冊 Microsoft Entra 應用程式的權限。

如果您剛建立免費的 Azure 帳戶,您就是訂用帳戶的擁有者。 若您不是訂用帳戶擁有者,請與擁有者合作以根據下列步驟指派權限:

  1. 在 Azure 入口網站中,搜尋「訂用帳戶」,然後選取 [服務] 下的 [訂用帳戶]

    搜尋方塊以搜尋 Azure 訂用帳戶。

  2. 在 [訂用帳戶] 頁面中,選取您要在其中建立 Azure Migrate 專案的訂用帳戶。

  3. 在訂用帳戶中,選取 [存取控制 (IAM)]>[檢查存取權]

  4. 在 [檢查存取權] 中,搜尋相關使用者帳戶。

  5. 在 [新增角色指派] 中,選取 [新增]

    搜尋使用者帳戶以檢查存取權並指派角色。

  6. 在 [新增角色指派] 中,選取 [擁有者] 角色,然後選取帳戶 (在我們的範例中為 azmigrateuser)。 選取 [ 儲存]。

    開啟 [新增角色指派] 頁面,將角色指派給帳戶。

您的 Azure 帳戶也需要 註冊 Microsoft Entra 應用程式的權限。 8. 在 Azure 入口網站中,導航至 Microsoft Entra ID>使用者>使用者設定。 9.在 [使用者設定] 中,確認 Microsoft Entra 使用者可以註冊應用程式 (預設為 [是])。

在 [用戶設定] 中確認使用者可以註冊 Active Directory 應用程式。

重要

Microsoft 建議您使用權限最的角色。 這有助於改善組織的安全性。 全域系統管理員是具高度特殊權限的角色,應僅限於無法使用現有角色的緊急案例。

  1. 如果 [應用程式註冊] 設定設為 [否],則請要求租用戶/全域系統管理員指派必要的權限。 或者,租使用者/全域管理員可以將 應用程式開發人員 角色指派給帳戶,以允許註冊 Microsoft Entra App。 深入瞭解

下載並安裝「Azure Migrate:應用程式容器化」工具

  1. 下載 Azure Migrate:Windows 電腦上的應用程式容器化安裝程式。

  2. 在系統管理員模式中啟動 PowerShell,並將 PowerShell 目錄切換至包含安裝程式的資料夾。

  3. 使用命令來執行安裝指令碼

    .\AppContainerizationInstaller.ps1
    

注意

針對 Windows Server 2022,請編輯第 135 行並從功能清單中移除 PowerShell-ISE,因為不再支援此功能。

啟動應用程式容器化工具

  1. 在任何可以連接到執行應用程式容器化工具的 Windows 計算機上開啟瀏覽器,然後開啟工具 URL:https://機器名稱或 IP 位址:44369

    或者,您也可以選取應用程式捷徑,從桌面開啟應用程式。

  2. 如果您看到警告指出您的連線不是私人的,請選取 [進階],然後選擇繼續進行網站。 出現此警告的原因是 Web 介面使用自我簽署 TLS/SSL 憑證。

  3. 在登入畫面上,使用機器上的本機系統管理員帳戶登入。

  4. 選取 [Tomcat 上的 Java Web 應用程式],作為您想要容器化的應用程式類型。

  5. 若要指定目標 Azure 服務,請選取 [Azure App Service 上的容器]應用程式容器化工具的預設載入。

完整的工具必要條件

  1. 接受 [授權條款],並閱讀第三方資訊。
  2. 在工具 Web 應用程式 > [設定必要條件] 中,執行下列步驟:
    • 線上能力:此工具會檢查 Windows 電腦是否有因特網存取。 如果機器使用 Proxy:
      • 選取 [設定 Proxy] 以指定 Proxy 位址 (採用 IP 位址或 FQDN 的形式) 和接聽連接埠。
      • 如果 Proxy 需要驗證,請指定認證。
      • 僅支援 HTTP Proxy。
      • 如果您已新增 Proxy 詳細資料,或已停用 Proxy 和/或驗證,則請選取 [儲存] 以再次觸發連線檢查。
    • 安裝更新:此工具會自動檢查是否有最新的更新並加以安裝。 您也可以 從這裡手動安裝最新版本的工具。
    • 啟用安全殼層 (SSH):此工具會通知您,在執行要容器化 Java Web 應用程式的應用程式伺服器上已啟用安全殼層 (SSH)。

登入 Azure

選取 [登入 ] 以登入您的 Azure 帳戶。

  1. 您需要裝置代碼以向 Azure 進行驗證。 選取 [登入] 會開啟含有裝置程式碼的強制回應。

  2. 選取 [複製程序代碼並登入 ] 以複製裝置程式代碼,然後在新的瀏覽器索引標籤中開啟 Azure 登入提示。如果未出現,請確定您已停用瀏覽器中的快顯封鎖程式。

    顯示裝置代碼的模態窗口。

  3. 在新的索引標籤上貼上裝置程式碼,並使用您的 Azure 帳戶認證完成登入。 登入完成後,您可以關閉瀏覽器索引標籤,並返回應用程式容器化工具的 Web 介面。

  4. 選取您想要使用的 Azure 租戶

  5. 指定您想要使用的 Azure 訂用帳戶

探索 Java Web 應用程式

應用程式容器化協助程式工具會使用提供的認證,從遠端連線至應用程式伺服器,並嘗試探索應用程式伺服器上所裝載的 Java Web 應用程式 (在 Apache Tomcat 上執行)。

  1. 指定 Java Web 應用程式執行所在伺服器的「IP 位址/FQDN 和認證」,其應該用來從遠端連線至伺服器以進行應用程式探索。

    • 提供的認證必須適用於應用程式伺服器上的根帳戶 (Linux)。
    • 對於網域帳戶(用戶必須是應用程式伺服器上的系統管理員),請將用戶名稱以 <網域名稱\用戶名> 格式添加。
    • 您最多一次可以執行五部伺服器的應用程式探索。
  2. 選取 [驗證],以確認可從執行此工具的機器連線至應用程式伺服器,而且認證有效。 驗證成功之後,狀態資料行會顯示狀態為 [已對應]

    伺服器 IP 和認證的螢幕快照。

  3. 選取 [繼續],在選取的應用程式伺服器上開始執行應用程式探索。

  4. 成功探索應用程式後,您可以選取要容器化的應用程式清單。

    探索到 Java Web 應用程式的螢幕快照。

  5. 使用核取方塊來選取要容器化的應用程式。

  6. 指定容器名稱:為每個選取的應用程式指定目標容器的名稱。 容器名稱應指定為 <name:tag> ,其中標記用於容器映射。 例如,您可以將目標容器名稱指定為 appname:v1

將應用程式設定參數化

將設定參數化,可讓其成為部署時間參數。 這可讓您在部署應用程式時進行此設定,而不是將其硬式編碼為容器映像中的特定值。 例如,此選項對資料庫連接字串等參數很有用。

  1. 選取 [應用程式設定] 以檢閱偵測到的設定。

  2. 選取核取方塊以參數化偵測到的應用程式設定。

  3. 選取參數化的設定之後,選取 [套用]

    應用程式組態參數化 Java 應用程式的螢幕快照。

將檔案系統相依性外部化

您可以新增應用程式所使用的其他資料夾。 指定其應該是容器映像的一部分,還是要透過 Azure 檔案共用外部化為持續性儲存體。 使用外部持續性儲存體十分適用於具狀態應用程式,而具狀態應用程式可在容器外部儲存狀態,或將其他靜態內容儲存在檔案系統上。

  1. 選取應用程式資料夾底下的 [編輯],以檢閱偵測到的應用程式資料夾。 偵測到的應用程式資料夾已識別為應用程式所需的強制成品,且將複製到容器映像中。

  2. 選取 [新增資料夾],並指定要新增的資料夾路徑。

  3. 若要將多個資料夾新增至相同的磁碟區,請提供逗號 (,) 分隔的值。

  4. 如果您想要將資料夾儲存在持續性儲存體上容器的外部,則請選取 [Azure 檔案共用] 作為儲存體選項。

  5. 在檢閱應用程式資料夾之後,選取 [儲存]應用程式容量儲存空間選擇的螢幕快照。

  6. 選取 [繼續] 以繼續進行容器映射建置階段。

建置容器映像

  1. 選取 [Azure Container Registry]:請使用下拉式清單選擇一個 Azure Container Registry,以建置及儲存應用程式的容器映像。 您可以使用現有的 Azure Container Registry,或使用 [建立新的登錄] 選項來建立新的登錄。

    應用程式 ACR 選取項目的螢幕快照。

注意

只會顯示已啟用系統管理員使用者的 Azure 容器登錄。 目前需要系統管理員帳戶,才能將映像從 Azure 容器登錄部署至 Azure App Service。 深入瞭解

  1. 檢閱 Dockerfile:建置每個所選應用程式的容器映射所需的 Dockerfile 會在建置步驟的開頭產生。 按一下 [檢閱] 以檢閱 Dockerfile。 您也可以在檢閱步驟中,將任何必要的自訂項目新增至 Dockerfile,並在開始建置程序之前儲存變更。

  2. 設定 Application Insights:您可以針對在 App Service 上執行的 Java 應用程式啟用監視功能,而不需要檢測您的程式碼。 此工具將安裝 Java 獨立代理程式,成為容器映像的一部分。 在部署期間設定之後,Java 代理程式會自動收集對應用程式的眾多要求、相依性、記錄和計量,可供 Application Insights 用於進行監視。 預設會為所有 Java 應用程式啟用此選項。

  3. 觸發建置程式:選取要為其建置映像的應用程式,然後選取 [ 建置]。 選取 [建置],將開始為每個應用程式建置容器映像。 此工具會持續監視建置狀態,並可讓您在成功完成建置時繼續進行下一個步驟。

  4. 追蹤組建狀態:您也可以選取 [建置狀態] 數據行底下的 [建置進行中] 連結,以監視建置步驟的進度。 觸發建置程序之後,此連結需要幾分鐘的時間才會生效。

  5. 建置完成後,請選取 [ 繼續] 以指定部署設定。

    應用程式容器映像建置完成的螢幕快照。

在 Azure App Service 上部署容器化應用程式

建置容器映射之後,下一個步驟是在 Azure App Service 上將應用程式部署為容器。

  1. 選取 Azure App Service 方案:指定應用程式應該使用的 Azure App Service 方案。

    • 如果您沒有 App Service 方案,或想要建立要使用的新 App Service 方案,您可以選擇從工具建立一個方案,方法是選取 [ 建立新的 App Service 方案]。
    • 選取 App Service 方案之後,選取 [ 繼續 ]。
  2. 指定秘密存放區和監視工作區:如果您選擇參數化應用程式組態,請指定要用於應用程式的秘密存放區。 您可以選擇 Azure Key Vault 或 App Service 應用程式設定來管理應用程式祕密。 深入瞭解

    • 如果您已選取用於管理祕密的 App Service 應用程式設定,則請選取 [繼續]
    • 如果您想要使用 Azure Key Vault 來管理應用程式祕密,則請指定您想要使用的 Azure Key Vault。
      • 如果您沒有 Azure Key Vault 或想要建立新的 Key Vault,您可以選擇從工具建立一個金鑰保存庫,方法是選取 [ 新建]。
      • 工具將自動指派透過 Key Vault 管理祕密的必要權限。
    • 監視工作區:如果您已選取以 Application Insights 啟用監視,請指定您想要使用的 Application Insights 資源。 如果您已停用監視整合,則看不到此選項。
      • 如果您沒有 Application Insights 資源,或想要建立新的資源,您可以選擇從工具中建立 ,方法是選取 [ 新建]。
  3. 指定 Azure 檔案分享:如果您已新增更多目錄/資料夾,並選取持續性記憶體的 Azure 檔案共享選項,請在部署程式期間指定 Azure Migrate:應用程式容器化工具要使用的 Azure 檔案共用。 此工具將會複製針對 Azure 檔案所設定的應用程式目錄/資料夾,並在部署期間將其掛接在應用程式容器上。 

    • 如果您沒有 Azure 檔案共用,或想要建立新的 Azure 檔案共用,則可以選擇從工具予以建立,方法是選取 [建立新的儲存體帳戶和檔案共用]
  4. 應用程式部署組態:完成上述步驟之後,您必須指定應用程式的部署組態。 選取 [ 設定 ] 以自訂應用程式的部署。 在設定步驟中,您可以提供下列自訂:

    • 名稱:指定應用程式的唯一應用程式名稱。 此名稱將用來產生應用程式 URL,並作為此部署期間所建立其他資源的前置詞。
    • 應用程式組態:針對已參數化的任何應用程式組態,提供用於目前部署的值。
    • 記憶體組態:檢閱針對永續性記憶體所設定之任何應用程式目錄/資料夾的資訊。

    部署應用程式設定的螢幕快照。

  5. 部署應用程式:儲存應用程式的部署組態之後,此工具會產生應用程式的 Kubernetes 部署 YAML。

    • 選取 [檢閱],以檢閱應用程式的部署設定。

    • 選取要部署的應用程式。

    • 選取 [部署],以開始所選取應用程式的部署

      應用程式部署設定的螢幕快照。

    • 部署應用程式之後,您可以選取 [部署狀態] 資料行來追蹤為應用程式部署的資源。

針對問題進行疑難排解

若要為此工具的任何問題進行疑難排解,您可以在執行應用程式容器化工具的 Windows 機器上查看記錄檔。 工具記錄檔位於 C:\ProgramData\Microsoft Azure Migrate 應用程式容器化\Logs 資料夾中。

下一步

  • 將 Apache Tomcat (位於 Linux 伺服器) 上的 Java Web 應用程式容器化,並將其部署至 AKS 上的 Linux 容器。 瞭解更多資訊
  • 將 ASP.NET Web 應用程式容器化,並將其部署至 AKS 上的 Windows 容器。 瞭解更多資訊
  • 將 ASP.NET Web 應用程式容器化,並將其部署至 Azure App Service 上的 Windows 容器。 瞭解更多資訊