

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將您的容器工作負載從 Azure Red Hat OpenShift (ARO) 遷移至 Red Hat OpenShift Service on AWS (ROSA)
<a name="migrate-container-workloads-from-aro-to-rosa"></a>

*Naveen Ramasamy、Srikanth Rangavajhala 和 Gireesh Sreekantan，Amazon Web Services*

## 總結
<a name="migrate-container-workloads-from-aro-to-rosa-summary"></a>

此模式提供step-by-step說明。 OpenShift [Red Hat OpenShift Service on AWS](https://aws.amazon.com/rosa/) ROSA 是由 Red Hat 與 合作提供的受管 Kubernetes 服務 AWS。它可協助您使用 Kubernetes 平台部署、管理和擴展容器化應用程式，並受益於 Red Hat 在 Kubernetes 和 AWS 雲端 基礎設施方面的專業知識。

從 ARO、其他雲端或內部部署遷移容器工作負載到 ROSA 需要將應用程式、組態和資料從一個平台傳輸到另一個平台。此模式有助於確保順利轉換，同時最佳化 AWS 雲端 服務、安全性和成本效益。它涵蓋兩種將工作負載遷移至 ROSA 叢集的方法：CI/CD 和 Migration Toolkit for Containers (MTC)。

此模式涵蓋這兩種方法。您選擇的方法取決於遷移程序的複雜性和確定性。如果您完全控制應用程式的狀態，並且可以透過管道保證一致的設定，我們建議您使用 CI/CD 方法。不過，如果您的應用程式狀態涉及不確定性、不可預見的變更或複雜的生態系統，建議您使用 MTC 做為可靠且受控制的路徑，將應用程式及其資料遷移至新的叢集。如需這兩種方法的詳細比較，請參閱[其他資訊](#migrate-container-workloads-from-aro-to-rosa-additional)一節。

遷移至 ROSA 的優點：
+ ROSA 與 無縫整合 AWS 為原生服務。您可以透過 輕鬆存取， AWS 管理主控台 並透過單一 計費 AWS 帳戶。它提供與其他 的完整相容性 AWS 服務 ，並提供來自 AWS 和 Red Hat 的協作支援。
+ ROSA 支援混合多雲端部署。它可讓應用程式在內部部署資料中心和多個雲端環境中一致地執行。
+ ROSA 受益於 Red Hat 的安全重點，並提供角色型存取控制 (RBAC)、映像掃描和漏洞評估等功能，以確保安全的容器環境。
+ ROSA 旨在輕鬆擴展應用程式，並提供高可用性選項。它允許應用程式視需要成長，同時維持可靠性。
+ 相較於手動設定和管理方法，ROSA 可自動化並簡化 Kubernetes 叢集的部署。這可加速開發和部署程序。
+ ROSA 受益於 AWS 雲端 服務，並提供與資料庫服務、儲存解決方案和安全服務等 AWS 方案的無縫整合。

## 先決條件和限制
<a name="migrate-container-workloads-from-aro-to-rosa-prereqs"></a>

**先決條件**
+ 作用中 AWS 帳戶。
+ 為 AWS 服務 該 ROSA 設定的許可依賴 來交付功能。如需詳細資訊，請參閱 ROSA 文件中的[先決條件](https://docs.aws.amazon.com/rosa/latest/userguide/set-up.html)。
+ ROSA [主控台上已啟用 ROSA](https://console.aws.amazon.com/rosa)。如需說明，請參閱 [ROSA 文件](https://docs.aws.amazon.com/rosa/latest/userguide/set-up.html#enable-rosa)。
+ 安裝並設定 ROSA 叢集。如需詳細資訊，請參閱 [ROSA 文件中的 ROSA 入門](https://docs.aws.amazon.com/rosa/latest/userguide/getting-started.html)。若要了解設定 ROSA 叢集的不同方法，請參閱 AWS 規範指引指南 [ROSA 實作策略](https://docs.aws.amazon.com/prescriptive-guidance/latest/red-hat-openshift-on-aws-implementation/)。
+ 從內部部署網路到 AWS 透過 [AWS Direct Connect](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/aws-direct-connect.html)（偏好） 或 [AWS Virtual Private Network (Site-to-Site VPN)](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html) 建立的網路連線。
+ Amazon Elastic Compute Cloud (Amazon EC2) 執行個體或其他虛擬伺服器，用於安裝工具，例如 `aws client`、OpenShift CLI (`oc`) 用戶端、ROSA 用戶端和 Git 二進位檔。

CI/CD 方法的其他先決條件：
+ 存取內部部署 Jenkins 伺服器，具有建立新管道、新增階段、新增 OpenShift 叢集和執行建置的許可。
+ 存取維護應用程式原始碼的 Git 儲存庫，具有建立新 Git 分支和執行遞交至新分支的許可。

MTC 方法的其他先決條件：
+ Amazon Simple Storage Service (Amazon S3) 儲存貯體，將用作複寫儲存庫。
+ 來源 ARO 叢集的管理存取權。這是設定 MTC 連線的必要條件。

**限制**
+ 有些 AWS 服務 完全無法使用 AWS 區域。如需區域可用性，請參閱[AWS 服務 依區域](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)。如需特定端點，請參閱[服務端點和配額](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)頁面，然後選擇服務的連結。

## Architecture
<a name="migrate-container-workloads-from-aro-to-rosa-architecture"></a>

ROSA 提供三種網路部署模式：公有、私有和 [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html).PrivateLinkenables Red Hat 網站可靠性工程 (SRE) 團隊，使用連線至現有 VPC 中叢集 PrivateLink 端點的私有子網路來管理叢集。

選擇 PrivateLinkoption 可提供最安全的組態。因此，我們建議將其用於敏感工作負載或嚴格的合規要求。如需公有和私有網路部署選項的相關資訊，請參閱 [Red Hat OpenShift 文件](https://docs.openshift.com/rosa/architecture/rosa-architecture-models.html#rosa-hcp-architecture_rosa-architecture-models)。

**重要**  
您只能在安裝時建立 PrivateLink 叢集。安裝後，您無法將叢集變更為使用 PrivateLink。

下圖說明 ROSA 叢集的 PrivateLink 架構，該叢集使用 Direct Connect 連線到內部部署和 ARO 環境。

![\[使用 AWS Direct Connect 和 AWS PrivateLink 的 ROSA 叢集。\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/527cedfb-ec21-42be-bf21-d4e4e4f9db51/images/eff9b017-6fc7-4874-b610-849a42071ef4.png)


**AWS ROSA 的 許可**

對於 ROSA 的 AWS 許可，我們建議您使用 AWS Security Token Service (AWS STS) 搭配短期動態字符。此方法使用最低權限的預先定義角色和政策，授予 ROSA 在 中操作的最小許可 AWS 帳戶，並支援 ROSA 安裝、控制平面和運算功能。

**CI/CD 管道重新部署**

對於具有成熟 CI/CD 管道的使用者，CI/CD 管道重新部署是建議的方法。選擇此選項時，您可以使用任何 [DevOps 部署策略](https://docs.aws.amazon.com/whitepapers/latest/introduction-devops-aws/deployment-strategies.html)，逐步將應用程式負載轉移到 ROSA 上的部署。

**注意**  
此模式假設您有一個常見的使用案例，其中您有現場部署 Git、JFrog Artifactory 和 Jenkins 管道。此方法要求您建立從內部部署網路到 AWS 的網路連線 Direct Connect，並在遵循 [Epics](#migrate-container-workloads-from-aro-to-rosa-epics) 區段中的指示之前設定 ROSA 叢集。如需詳細資訊，請參閱[先決條件](#migrate-container-workloads-from-aro-to-rosa-prereqs)一節。

下圖顯示此方法的工作流程。

![\[使用 CI/CD 方法將容器從 ARO 遷移至 ROSA。\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/527cedfb-ec21-42be-bf21-d4e4e4f9db51/images/f658590e-fbd9-4297-a02c-0b516694d436.png)


**MTC 方法**

您可以使用 [Migration Toolkit for Containers (MTC)](https://docs.openshift.com/container-platform/4.13/migration_toolkit_for_containers/about-mtc.html)****，在不同 Kubernetes 環境之間遷移容器化工作負載，例如從 ARO 遷移至 ROSA。MTC 透過自動化數個關鍵任務並提供管理遷移生命週期的全方位架構，簡化遷移程序。

下圖顯示此方法的工作流程。

![\[使用 MTC 方法將容器從 ARO 遷移至 ROSA。\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/527cedfb-ec21-42be-bf21-d4e4e4f9db51/images/979bbc7b-2e39-4dd1-b4f0-ea1032880a38.png)


## 工具
<a name="migrate-container-workloads-from-aro-to-rosa-tools"></a>

**AWS 服務**
+ [AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html) 是一種線上資料傳輸和探索服務，可協助您在 AWS 儲存服務之間來回移動檔案或物件資料。
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) 會透過標準乙太網路光纖纜線將您的內部網路連結至某個 Direct Connect 位置。透過此連線，您可以在網路路徑中略過網際網路服務提供者 AWS 服務 時，直接建立虛擬介面至公有。
+ [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html) 可協助您建立從虛擬私有雲端 (VPCs) 到 VPC 外部服務的單向私有連線。
+ [Red Hat OpenShift Service on AWS (ROSA)](https://docs.aws.amazon.com/rosa/latest/userguide/what-is-rosa.html) 是一種受管服務，可協助 Red Hat OpenShift 使用者建置、擴展和管理容器化應用程式 AWS。
+ [AWS Security Token Service (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) 可協助您為使用者請求暫時、有限權限的登入資料。

**其他工具**
+ [Migration Toolkit for Containers (MTC)](https://docs.openshift.com/container-platform/4.13/migration_toolkit_for_containers/about-mtc.html) 提供主控台和 API，可將容器化應用程式從 ARO 遷移至 ROSA。

## 最佳實務
<a name="migrate-container-workloads-from-aro-to-rosa-best-practices"></a>
+ 針對[彈性](https://docs.aws.amazon.com/ROSA/latest/userguide/disaster-recovery-resiliency.html)和如果您有安全合規工作負載，請設定使用 PrivateLink 的多可用區域 ROSA 叢集。如需詳細資訊，請參閱 [ROSA 文件](https://docs.aws.amazon.com/rosa/latest/userguide/getting-started-classic-private-link.html)。
**注意**  
無法在安裝後設定 PrivateLink。
+ 您用於複寫儲存庫的 S3 儲存貯體不應公開。使用適當的 S3 儲存貯體政策來限制存取。
+ 如果您選擇 MTC 方法，請使用**階段**遷移選項來減少切換期間的停機時間時段。
+ 在您佈建 ROSA 叢集之前和之後，檢閱您的服務配額。如有必要，請根據您的需求請求提高配額。如需詳細資訊，請參閱[服務配額文件](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)。
+ 檢閱 [ROSA 安全準則](https://docs.aws.amazon.com/ROSA/latest/userguide/security.html)並實作安全最佳實務。
+ 建議您在安裝後移除預設叢集管理員。如需詳細資訊，請參閱 [Red Hat OpenShift 文件](https://docs.openshift.com/container-platform/4.13/post_installation_configuration/cluster-tasks.html)。
+ 使用機器集區自動擴展來縮減 ROSA 叢集中未使用的工作者節點，以最佳化成本。如需詳細資訊，請參閱 [ROSA 研討會](https://catalog.workshops.aws/aws-openshift-workshop/en-US/5-nodes-storage/3-autoscale-machine-pool)。
+ 使用適用於 OpenShift Container Platform 的 Red Hat Cost Management 服務，更深入了解和追蹤雲端和容器的成本。如需詳細資訊，請參閱 [ROSA 研討會](https://catalog.workshops.aws/aws-openshift-workshop/en-US/10-cost-management)。
+ 使用 監控和稽核 ROSA 叢集基礎設施服務和應用程式 AWS 服務。如需詳細資訊，請參閱 [ROSA 研討會](https://catalog.workshops.aws/aws-openshift-workshop/en-US/8-observability)。

## 史詩
<a name="migrate-container-workloads-from-aro-to-rosa-epics"></a>

### 選項 1：使用 CI/CD 管道
<a name="option-1-use-a-ci-cd-pipeline"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 將新的 ROSA 叢集新增至 Jenkins。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/migrate-container-workloads-from-aro-to-rosa.html) | AWS 管理員、AWS 系統管理員、AWS DevOps | 
| 將`oc`用戶端新增至 Jenkins 節點。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/migrate-container-workloads-from-aro-to-rosa.html) | AWS 管理員、AWS 系統管理員、AWS DevOps | 
| 建立新的 Git 分支。 | 在適用於 的 Git 儲存庫中建立新的分支`rosa-dev`。此分支會將 ROSA 的程式碼或組態參數變更與您現有的管道分開。 | AWS DevOps | 
| 標記 ROSA 的影像。 | 在建置階段中，使用不同的標籤來識別從 ROSA 管道建置的映像。 | AWS 管理員、AWS 系統管理員、AWS DevOps | 
| 建立管道。 | 建立新的 Jenkins 管道，其與您現有的管道類似。對於此管道，請使用您先前建立的 `rosa-dev` Git 分支，並確保包含與您現有管道相同的 Git 結帳、程式碼掃描和建置階段。 | AWS 管理員、AWS 系統管理員、AWS DevOps | 
| 新增 ROSA 部署階段。 | 在新的管道中，新增要部署到 ROSA 叢集的階段，並參考您新增至 Jenkins 全域組態的 ROSA 叢集。 | AWS 管理員、AWS DevOps、AWS 系統管理員 | 
| 啟動新的組建。 | 在 Jenkins 中，選取您的管道，然後選擇**立即建置**，或透過將變更遞交至 Git 中的`rosa-dev`分支來啟動新建置。 | AWS 管理員、AWS DevOps、AWS 系統管理員 | 
| 驗證部署。 | 使用 **oc** 命令或 [ROSA 主控台](https://console.aws.amazon.com/rosa)來驗證應用程式是否已部署在您的目標 ROSA 叢集上。 | AWS 管理員、AWS DevOps、AWS 系統管理員 | 
| 將資料複製到目標叢集。 | 對於具狀態工作負載，請使用 AWS DataSync 或開放原始碼公用程式，例如 **rsync**，將資料從來源叢集複製到目標叢集，或者您可以使用 MTC 方法。如需詳細資訊，請參閱 [AWS DataSync 文件](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html)。 | AWS 管理員、AWS DevOps、AWS 系統管理員 | 
| 測試您的應用程式。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/migrate-container-workloads-from-aro-to-rosa.html) | AWS 管理員、AWS DevOps、AWS 系統管理員 | 
| 切換。 | 如果您的測試成功，請使用適當的 Amazon Route 53 政策，將流量從 ARO 託管應用程式移至 ROSA 託管應用程式。當您完成此步驟時，應用程式的工作負載將完全轉換為 ROSA 叢集。 | AWS 管理員、AWS 系統管理員 | 

### 選項 2：使用 MTC
<a name="option-2-use-mtc"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 安裝 MTC 運算子。 | 在 ARO 和 ROSA 叢集上安裝 MTC 運算子：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/migrate-container-workloads-from-aro-to-rosa.html) | AWS 管理員、AWS DevOps、AWS 系統管理員 | 
| 設定至複寫儲存庫的網路流量。 | 如果您使用的是代理伺服器，請將其設定為允許複寫儲存庫與叢集之間的網路流量。複寫儲存庫是 MTC 用來遷移資料的中繼儲存物件。在遷移期間，來源和目標叢集必須具有複寫儲存庫的網路存取權。 | AWS 管理員、AWS DevOps、AWS 系統管理員 | 
| 將來源叢集新增至 MTC。 | 在 MTC Web 主控台上，新增 ARO 來源叢集。 | AWS 管理員、AWS DevOps、AWS 系統管理員 | 
| 新增 Amazon S3 做為複寫儲存庫。 | 在 MTC Web 主控台上，新增 Amazon S3 儲存貯體 （請參閱[先決條件](#migrate-container-workloads-from-aro-to-rosa-prereqs)) 做為複寫儲存庫。 | AWS 管理員、AWS DevOps、AWS 系統管理員 | 
| 建立遷移計畫。 | 在 MTC Web 主控台上，建立遷移計畫，並將資料傳輸類型指定為**複製**。這將指示 MTC 將資料從來源 (ARO) 叢集複製到 S3 儲存貯體，以及從儲存貯體複製到目標 (ROSA) 叢集。 | AWS 管理員、AWS DevOps、AWS 系統管理員 | 
| 執行遷移計畫。 | 使用**階段**或**切換**選項執行遷移計劃：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/migrate-container-workloads-from-aro-to-rosa.html) | AWS 管理員、AWS DevOps、AWS 系統管理員 | 

## 疑難排解
<a name="migrate-container-workloads-from-aro-to-rosa-troubleshooting"></a>


| 問題 | 解決方案 | 
| --- | --- | 
| 連線問題 | 當您將容器工作負載從 ARO 遷移至 ROSA 時，您可能會遇到連線問題，應加以解決，以確保成功遷移。為了在遷移期間解決這些連線問題 （列於此表中），精細規劃、與網路和安全團隊的協調，以及徹底的測試至關重要。在每個步驟實作逐步遷移策略並驗證連線，有助於將潛在的中斷降至最低，並確保從 ARO 順利轉換至 ROSA。 | 
| 網路組態差異 | ARO 和 ROSA 的網路組態可能會有變化，例如虛擬網路 (VNet) 設定、子網路和網路政策。為了在服務之間進行適當的通訊，請確保網路設定在兩個平台之間保持一致。 | 
| 安全群組和防火牆規則 | ROSA 和 ARO 可能有不同的預設安全群組和防火牆設定。請務必調整和更新這些規則，以允許必要的流量在遷移期間維持容器和服務之間的連線。  | 
| IP 地址和 DNS 變更 | 當您遷移工作負載時，IP 地址和 DNS 名稱可能會變更。重新設定依賴靜態 IPs 或特定 DNS 名稱的應用程式。  | 
| 外部服務存取 | 如果您的應用程式依賴資料庫或 APIs等外部服務，您可能需要更新其連線設定，以確保它們可以與 ROSA 的新服務通訊。 | 
| Azure Private Link 組態 | 如果您在 ARO 中使用 Azure Private Link 或私有端點服務，則需要在 ROSA 中設定同等功能，以確保資源之間的私有連線。 | 
| Site-to-Site VPN 或 Direct Connect 設定  | 如果您的內部部署網路與 ARO 之間存在現有 Site-to-Site VPN 或 Direct Connect 連線，您將需要與 ROSA 建立類似的連線，以便與本機資源進行不間斷的通訊。 | 
| 輸入和負載平衡器設定 | ARO 和 ROSA 之間的輸入控制器和負載平衡器組態可能不同。重新設定這些設定，以維護 服務的外部存取權。 | 
| 憑證和 TLS 處理 | 如果您的應用程式使用 SSL 憑證或 TLS，請確定憑證在 ROSA 中有效且設定正確。 | 
| 容器登錄檔存取 | 如果您的容器託管在外部容器登錄檔中，請為 ROSA 設定適當的身分驗證和存取許可。 | 
| 監控和記錄 | 更新監控和記錄組態，以反映 ROSA 上的新基礎設施，以便您可以繼續有效監控容器的運作狀態和效能。 | 

## 相關資源
<a name="migrate-container-workloads-from-aro-to-rosa-resources"></a>

**AWS**** 參考**
+ [什麼是 Red Hat OpenShift Service on AWS？](https://docs.aws.amazon.com/ROSA/latest/userguide/what-is-rosa.html) (ROSA 文件）
+ [ROSA 入門 ](https://docs.aws.amazon.com/ROSA/latest/userguide/getting-started.html)(ROSA 文件）
+ [Red Hat OpenShift Service on AWS 實作策略](https://docs.aws.amazon.com/prescriptive-guidance/latest/red-hat-openshift-on-aws-implementation/) (AWS 方案指引）
+ [Red Hat OpenShift Service on AWS 現在 GA](https://aws.amazon.com/blogs/aws/red-hat-openshift-service-on-aws-now-generally-availably/) (AWS 部落格文章）
+ [ROSA 研討會](https://catalog.workshops.aws/aws-openshift-workshop/en-US/0-introduction)
+ [ROSA 常見問答集](https://aws.amazon.com/rosa/faqs/)
+ [ROSA 研討會常見問答集](https://www.rosaworkshop.io/rosa/14-faq/)
+ [ROSA 定價](https://aws.amazon.com/rosa/pricing/)

**Red Hat OpenShift 文件**
+ [在 上快速安裝叢集 AWS](https://docs.openshift.com/container-platform/4.13/installing/installing_aws/installing-aws-default.html)
+ [在受限的網路 AWS 中於 上安裝叢集](https://docs.openshift.com/container-platform/4.13/installing/installing_aws/installing-restricted-networks-aws-installer-provisioned.html)
+ [在 上安裝叢集 AWS 到現有的 VPC](https://docs.openshift.com/container-platform/4.13/installing/installing_aws/installing-aws-vpc.html)
+ [AWS 使用 CloudFormation 範本在 的使用者佈建基礎設施上安裝叢集](https://docs.openshift.com/container-platform/4.13/installing/installing_aws/installing-aws-user-infra.html)
+ [使用使用者佈建的基礎設施在受限的網路 AWS 中安裝叢集](https://docs.openshift.com/container-platform/4.13/installing/installing_aws/installing-restricted-networks-aws.html)
+ [AWS 使用自訂在 上安裝叢集](https://docs.openshift.com/container-platform/4.13/installing/installing_aws/installing-aws-customizations.html)
+ [OpenShift CLI 入門](https://docs.openshift.com/container-platform/4.13/cli_reference/openshift_cli/getting-started-cli.html)

## 其他資訊
<a name="migrate-container-workloads-from-aro-to-rosa-additional"></a>

**在 MTC 和 CI/CD 管道重新部署選項之間進行選擇**

將應用程式從一個 OpenShift 叢集遷移到另一個叢集需要仔細考慮。理想情況下，您會希望使用 CI/CD 管道重新部署應用程式並處理持久性磁碟區資料的遷移，以順利轉換。不過，實際上，叢集上執行中的應用程式容易隨著時間而發生不可預見的變更。這些變更可能會導致應用程式逐漸偏離其原始部署狀態。MTC 為命名空間的確切內容不確定，且將所有應用程式元件無縫遷移至新叢集的情況提供解決方案。

做出正確的選擇需要評估您的特定案例，並權衡每種方法的好處。透過這樣做，您可以確保成功且無縫的遷移符合您的需求和優先順序。以下是在兩個選項之間進行選擇的其他準則。

**CI/CD 管道重新部署**

如果您的應用程式可以使用管道放心地重新部署，建議使用 CI/CD 管道方法。這可確保遷移受到控制、可預測，並與現有的部署實務保持一致。選擇此方法時，您可以使用[藍/綠部署](https://docs.aws.amazon.com/whitepapers/latest/overview-deployment-options/bluegreen-deployments.html)或金絲雀部署策略，逐步將負載轉移到 ROSA 上的部署。在此案例中，此模式假設 Jenkins 正在從內部部署環境協調應用程式部署。

優點：
+ 您不需要來源 ARO 叢集的管理存取權，也不需要在來源或目的地叢集上部署任何運算子。
+ 此方法可協助您使用 DevOps 策略逐步切換流量。

缺點：
+ 它需要更多精力來測試應用程式的功能。
+ 如果您的應用程式包含持久性資料，則需要使用 AWS DataSync 或其他工具來複製資料的額外步驟。

**MTC 遷移**

在真實世界中，執行中的應用程式可能會發生非預期的變更，導致它們偏離初始部署。當您不確定來源叢集上應用程式的目前狀態時，請選擇 MTC 選項。例如，如果您的應用程式生態系統跨越各種元件、組態和資料儲存磁碟區，我們建議您選擇 MTC，以確保完整遷移涵蓋應用程式及其整個環境。

優點：
+ MTC 提供工作負載的完整備份和還原。
+ 遷移工作負載時，它會將持久性資料從來源複製到目標。
+ 它不需要存取原始程式碼儲存庫。

缺點：
+ 您需要管理權限，才能在來源和目的地叢集上安裝 MTC 運算子。
+ DevOps 團隊需要訓練，才能使用 MTC 工具並執行遷移。