建立使用服務導向錯誤故障轉移 Azure Cosmos DB 實例的混亂實驗

您可以使用混亂實驗,藉由在受控制的環境中造成這些失敗,來驗證應用程式是否能夠復原失敗。 在本文中,您會使用混亂實驗和 Azure Chaos Studio 來造成多讀取、單一寫入的 Azure Cosmos DB 故障轉移。 執行此實驗可協助您防範發生故障轉移事件時的數據遺失。

您可以使用這些相同的步驟來設定及執行任何服務直接錯誤的實驗。 服務直接錯誤會直接針對 Azure 資源執行,而不需要檢測。 代理程式型錯誤需要安裝混亂代理程式。

必要條件

  • Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶
  • Azure Cosmos DB 帳戶。 如果您沒有 Azure Cosmos DB 帳戶,請遵循下列步驟來 建立帳戶
  • Azure Cosmos DB 帳戶至少一個讀取和一個寫入區域設定。

在您的 Azure Cosmos DB 帳戶上啟用 Chaos Studio

Chaos Studio 無法對資源插入錯誤,除非該資源先新增至 Chaos Studio。 您可以藉由在資源上建立 目標和功能 ,將資源新增至 Chaos Studio。 Azure Cosmos DB 帳戶只有一個目標類型(服務直接)和一個功能(故障轉移)。 其他資源可能最多有兩個目標類型。 其中一個目標類型適用於服務導向錯誤。 另一個目標類型是代理程式型錯誤。 其他資源可能有許多其他功能。

  1. 開啟 Azure 入口網站

  2. 在搜尋列中搜尋 Chaos Studio

  3. 選取 [目標] ,然後移至您的 Azure Cosmos DB 帳戶。

    Screenshot that shows the Targets view in the Azure portal.

  4. 選取 Azure Cosmos DB 帳戶旁的複選框。 選取 [ 啟用目標 ],然後從下拉功能表中選取 [ 啟用服務導向目標 ]。

    Screenshot that shows enabling targets in the Azure portal.

  5. 確認已列出所需的資源。 選取 [檢閱 + 啟用],然後選取 [啟用]。

  6. 隨即出現通知,指出選取的資源已成功啟用。

    Screenshot that shows a notification showing the target was successfully enabled.

您現在已成功將 Azure Cosmos DB 帳戶新增至 Chaos Studio。 在 [ 目標] 檢視中,您也可以管理此資源上啟用的功能。 選取資源旁的 [ 管理動作 ] 鏈接會顯示為該資源啟用的功能。

建立實驗

現在您可以建立實驗。 混亂實驗會定義您想要針對目標資源採取的動作。 動作會以循序步驟組織並執行。 混亂實驗也會定義您想要針對平行執行的分支採取的動作。

  1. 選取 Chaos Studio 中的 [ 實驗 ] 索引標籤。 在此檢視中,您可以看到和管理所有混亂實驗。 選取 [建立>新實驗]。

    Screenshot that shows the Experiments view in the Azure portal.

  2. 填入您要部署混亂實驗的 用帳戶、 資源群組位置 。 為您的實驗命名。 選取 [ 下一步:實驗設計工具]。

    Screenshot that shows adding basic experiment details.

  3. 您現在位於 Chaos Studio 實驗設計工具中。 實驗設計工具可讓您藉由新增步驟、分支和錯誤來建置實驗。 為您的步驟和分支提供易記名稱,然後選取 [新增動作>新增錯誤]。

    Screenshot that shows the experiment designer.

  4. 從下拉式清單中選取 [CosmosDB 故障轉移 ]。 在 [持續時間] 中填入您想要失敗的分鐘數,並使用 Azure Cosmos DB 帳戶的讀取區域來讀取Region。 選取 [ 下一步:目標資源]。

    Screenshot that shows fault properties.

  5. 選取您的 Azure Cosmos DB 帳戶,然後選取 [ 下一步]。

    Screenshot that shows adding a target.

  6. 確認您的實驗看起來正確,然後選取 [檢閱 + 建立]。>

    Screenshot that shows reviewing and creating an experiment.

為目標資源授與實驗許可權

當您建立混亂實驗時,Chaos Studio 會建立系統指派的受控識別,以針對目標資源執行錯誤。 此身分識別必須授 與目標資源的適當許可權 ,實驗才能順利執行。 您可以修改步驟 3 中的角色指派,以符合 該資源和目標類型的適當角色,以針對任何資源和目標類型使用這些步驟。

  1. 移至您的 Azure Cosmos DB 帳戶,然後選取 [訪問控制][IAM]。

    Screenshot that shows the Azure Cosmos DB Overview page.

  2. 選取 [新增>][新增角色指派]。

    Screenshot that shows the Access control overview.

  3. 搜尋 Cosmos DB 操作員 ,然後選取角色。 選取 [下一步] 。

    Screenshot that shows assigning the Azure Cosmos DB Operator role.

  4. 選擇 [ 選取成員 ],然後搜尋您的實驗名稱。 選取您的實驗,然後選擇 [ 選取]。 如果相同租使用者中有多個具有相同名稱的實驗,您的實驗名稱會以新增的隨機字元來截斷。

    Screenshot that shows adding an experiment to a role.

  5. 選取 [檢閱 + 指派>檢閱 + 指派]。

執行實驗

您現在已準備好執行實驗。 若要查看效果,建議您開啟 Azure Cosmos DB 帳戶概觀,並移至 在個別瀏覽器索引標籤中全域 復寫數據。實驗期間定期重新整理會顯示區域交換。

  1. 在 [ 實驗] 檢視中,選取您的實驗。 選取 [開始>確定]。
  2. 當 [狀態] 變更為 [執行中] 時,請選取[歷程記錄] 底下最新執行的詳細數據,以查看執行實驗的詳細數據。

下一步

現在您已執行 Azure Cosmos DB 服務直接實驗,您已準備好: