

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

# 任務 5：定義波動規劃程序
<a name="wave-planning"></a>

波浪規劃是大型遷移的關鍵里程碑。在波動計畫中，您可以將類似的應用程式分組在一起，考慮基礎設施和應用程式相依性 （例如共用資料庫）、應用程式的優先順序、應用程式架構的相似性和業務功能。然後，與應用程式和基礎設施團隊一起檢閱波動計畫，以確認他們在指定遷移和切換時段內的可用性。

根據各種 AWS 客戶的真實部署，下列是波動規劃的一些最佳實務：
+ 至少提前 4-5 個波來規劃遷移波。這有助於確保永遠有足夠的伺服器可供遷移工作流程使用。
+ 快速失敗。您應該從幾個低複雜度的應用程式開始，並將您的學習套用至稍後的波浪。
+ 在早期波 （第 1-5 波） 中，選取較少的伺服器 （小於 10)、低複雜度應用程式，以及較低環境中的應用程式，例如開發或測試環境。隨著您的進度，逐漸將更多複雜性和更多伺服器引入海浪。
+ 波規劃是持續進行的程序，而不是一次性的任務。請勿嘗試一次規劃所有波浪。
+ 如果您使用的是產品組合探索工具，而且具有複雜性評分功能，請將其用於波動規劃。首先遷移複雜性最低的應用程式。

此任務包含下列步驟：
+ [步驟 1：定義移動群組程序](#wave-planning-1)
+ [步驟 2：定義波動規劃選擇條件](#wave-planning-2)
+ [步驟 3：完成波動規劃程序](#wave-planning-3)

## 步驟 1：定義移動群組程序
<a name="wave-planning-1"></a>

在此步驟中，您會識別任何application-to-server相依性，並定義用來決定哪些伺服器應該一起移動的規則，做為移動群組。*移動群組*是伺服器或應用程式的區塊，應該在群組中一起移動。這是遷移波的建置區塊，其中每個波由一或多個移動群組組成，取決於每個移動群組中的伺服器數量。

### 識別應用程式相依性
<a name="wave-planning-1-dependencies"></a>

以下是在移動群組中分組相互依存應用程式時的重要考量：
+ 考慮基礎設施相依性，例如：
  + 應用程式可能有多個資料庫，而這些資料庫可由其他應用程式共用。
  + 應用程式可能取決於另一個應用程式。
  + 伺服器可能會託管多個應用程式的資料庫。
+ 考慮業務和營運相依性，例如：
  + 由於業務影響或營運排程 （例如備份或修補），應用程式只能在特定時段內遷移。
  + 應用程式擁有者僅適用於一個遷移切換時段，因此擁有者的所有應用程式都必須位於相同的移動群組中。

您已在應用程式研討會程序或定義目標狀態時識別基礎設施相依性。您可以透過自動化或手動程序來識別基礎設施相依性。若要自動識別基礎設施相依性，您可以使用探索工具，例如 Flexera One Cloud Migration 和 Modernization 或 TDS TransitionManager。對於手動程序，請向應用程式和基礎設施團隊驗證 CMDB 資訊。

您已在應用程式研討會程序中識別業務和營運相依性。

作為建置自己的波動規劃 Runbook 的起點，我們建議您使用包含在[產品組合手冊](samples/portfolio-playbook-templates.zip)*範本中的波動規劃 Runbook 範本 *(Microsoft Word 格式）。記錄遷移的相依性，如下所示：

1. 開啟您的波動規劃 Runbook。

1. 在*應用程式相依性*區段中，記錄相依性。識別類型 （基礎設施、業務或營運）、相依性，以及相依性的簡短描述。

1. 儲存波動規劃 Runbook。

1. 維護波動規劃 Runbook 中的相依性。隨著您的進度，您可以識別新的相依性。

下表顯示相依性範例。


****  

| Type | 相依性 | Description | 
| --- | --- | --- | 
| 基礎設施 | 資料庫 | 資料庫會與其他應用程式共用 | 
| 基礎設施 | 檔案儲存 | 應用程式使用可以解耦的中央檔案存放區，或所有相關應用程式應一起遷移 | 
| 基礎設施 | 應用程式 | 應用程式依賴一或多個其他應用程式來運作，例如擷取、轉換和載入 (ETL) 任務 | 
| 商業 | 業務中斷 | 應用程式的特定和核准的中斷時段 | 
| 可運作 | 修補程式視窗 | 可能影響遷移切換的排程操作任務，例如修補 | 

### 定義移動群組規則
<a name="deep-dive-1-rules"></a>

在波動規劃 Runbook 中記錄相依性之後，您必須根據這些相依性建置移動群組規則。這些規則會控管將伺服器分組為移動群組的方式。使用下列步驟來建置您的規則：

1. 檢閱您在上一節中定義的相依性。

1. 選擇會影響應用程式是否必須在移動群組中一起移動的相依性。並非所有相依性都需要一起遷移應用程式。例如，定義移動群組時，不應考慮 Microsoft Active Directory 上的基礎設施相依性，因為它是所有應用程式的常見相依性。在遷移任何應用程式之前，您應該在雲端中建置網域控制器。

1. 將需要應用程式一起移動的相依性轉換為移動群組規則。

如果應用程式符合任何規則，則所有相關聯的伺服器都必須放置在相同的移動群組中，以便一起遷移。

記錄遷移的移動群組規則，如下所示：

1. 開啟您的波動規劃 Runbook。

1. 在*移動群組規則*區段中，依優先順序記錄移動群組規則。

1. 儲存波動規劃 Runbook。

1. 維護波動規劃 Runbook 中的規則。隨著您的進度，您可以識別新的規則。

下表顯示移動群組規則的範例。


****  

| 規則 | 移動群組規則 | 
| --- | --- | 
| 1 | 具有共用資料庫的應用程式必須一起遷移。 | 
| 2 | 具有相同應用程式擁有者的應用程式必須一起遷移。 | 
| 3 | 具有相同修補程式時段的應用程式必須一起遷移。 | 

## 步驟 2：定義波動規劃選擇條件
<a name="wave-planning-2"></a>

建立移動群組之後，您需要將類似的移動群組集合在一起，才能形成遷移波紋。在此步驟中，您會定義用來為每個波動選取一或多個移動群組的條件。

了解每個移動群組的大小對於成功的波動規劃至關重要。目標是調整每個波動的大小，讓遷移保持敏捷，並維護健全的伺服器管道。太大的波可能難以適應遷移計畫中的變更，而太小的波可能無法提供足夠的伺服器來達到所需的遷移速度。

我們建議您在調整波浪大小時考慮下列條件：
+ **小的第一波** – 初始波應該較小，少於 10 個伺服器，然後您可以逐漸增加每個波中的伺服器數量。這可讓您快速失敗，並以學到的經驗為基礎。例如，使用 3 個伺服器遷移應用程式，然後再使用 20 個伺服器遷移應用程式。
+ **資源** – 識別遷移團隊可以在單一批次中遷移的伺服器數量。標準措施是，由四位架構師組成的遷移團隊一週最多可以遷移 50 個伺服器，以進行重新託管模式。結合移動群組以形成不超過遷移團隊容量的遷移波紋。
+ **敏捷性** – Waves 必須適應遷移計畫中的任何變更。如果您必須重新排程伺服器，您應該能夠重新排程受影響伺服器的整個移動群組。
+ **儲存大小** – 先遷移較小的應用程式。例如，在 2 TB 應用程式之前遷移 100 GB 應用程式。
+ **應用程式環境** – 在生產環境中的應用程式之前，在較低環境中遷移應用程式，例如開發或測試環境。
+ **應用程式複雜性** – 先遷移較不複雜的應用程式，並降低外部相依性。
+ **應用程式的關鍵性 – 在**關鍵任務應用程式之前遷移非關鍵應用程式。
+ **使用者基礎** – 先遷移具有小型使用者基礎的應用程式。例如，在擁有 10，000 名使用者的應用程式之前，遷移擁有 10 名使用者的應用程式。
+ **網路頻寬** – 波動的大小不應超過網路頻寬。如需詳細資訊，請參閱遷移原則，這是您根據 [Foundation AWS 大型遷移手冊中的指示所定義的](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-foundation-playbook/)。

記錄波動規劃的選擇條件，如下所示：

1. 開啟您的波動規劃 Runbook。

1. 在 *Wave 規劃選擇條件*區段中，記錄您要用於遷移的條件。

1. 儲存波動規劃 Runbook。

1. 維護波動規劃 Runbook 中的條件。隨著您的進度，您可能需要調整條件或新增新條件。

下表顯示波動規劃選擇條件的範例。


****  

| 條件 | Description | 
| --- | --- | 
| 識別最不複雜的應用程式 | 識別移動群組中複雜度分數較高的應用程式。 | 
| 較低的環境優先 | 較低環境中的非關鍵應用程式，例如開發或測試環境，必須先遷移。生產環境中的關鍵應用程式，例如產生收入的應用程式，都必須最後遷移。 | 
| 快速失敗 | 形成少於 10 個伺服器的初始波。 | 
| 遷移團隊強度 | 識別每個遷移團隊可以切換的伺服器數量。 | 
| 合併類似的移動群組 | 根據共通性合併移動群組。例如，移動群組可能會共用相同的應用程式擁有者、來源資料中心或目標 AWS 帳戶。 | 
| 波大小 | Waves 總計不應超過 50 個伺服器。 | 

### 步驟退出條件
<a name="wave-planning-2-exit-criteria"></a>
+ 您已識別使用案例的波動規劃條件，並將其記錄在波動規劃執行手冊中。

## 步驟 3：完成波動規劃程序
<a name="wave-planning-3"></a>

現在您已定義如何建立移動群組，並建立用來將移動群組合併為遷移波紋的條件，您必須定義規劃波紋的程序。在此步驟中，您會更新波動規劃 Runbook 以記錄完整的波動規劃程序，並確認您有儀表板工具，團隊可以用來記錄波動資訊。

在此步驟中，我們建議您使用提供的*儀表板範本進行波動規劃和遷移*，這可在[產品組合手冊範本](samples/portfolio-playbook-templates.zip)中使用。此範本旨在協助產品組合團隊，並做為整理資料的起點、協助分析應用程式產品組合、識別application-to-server相依性，以及最終規劃遷移波紋。您可以視需要為您的環境修改此範本。

記錄波動規劃程序，如下所示：

1. 開啟*儀表板範本以進行波動規劃和遷移*。

1. 視需要為您的使用案例修改儀表板。例如，您可以新增工作表來擷取伺服器庫存、新增樞紐分析表或圖表，或使用 `VLOOKUP`函數匯入來源資訊。

1. 儲存儀表板範本。

1. 開啟您的波動規劃 Runbook。

1. 在*階段 2：執行波動規劃*區段中，修改提供的標準程序，以滿足使用案例的需求。

1. 儲存波動規劃 Runbook。

1. 與 團隊分享您的波動規劃 Runbook 以供審核。

1. 在波動規劃 Runbook 中維護程序。此程序可做為標準操作程序，為您的大型遷移規劃波浪。

## 任務結束條件
<a name="wave-planning-exit-criteria"></a>
+ 您已在 Wave Planning Runbook 中記錄以下內容：
  + 應用程式相依性
  + 應用程式移動群組規則，依優先順序列出
  + 波規劃選擇條件
  + 波規劃程序