瞭解 Code Engine 的高可用性及災難回復
高可用性服務或工作負載承受故障並根據某些預先定義的服務等級繼續提供處理能力的能力。 (HA) 是指服務在發生意外故 障時仍能繼續運作和存取的能力。 災難復原是服務或工作負載從罕見的重大事故和大規模故障(如服務中斷)中恢復的能力。 這包括影響整個區域的實體災難、資料庫損毀或對工作負載有貢獻的服務遺失。 其影響超出了高可用性設計的處理能力。指在重大中斷後恢復服務運作的過程。
Code Engine 是一種高度可用的區域服務,旨在於區域停機期間維持可用性。Code Engine 符合標準計劃的 服務等級目標(SLO)。
有關 IBM Cloud 中高可用性與災難復原標準的更多資訊,請參閱 《 IBM Cloud 如何確保高可用性與冗餘》。 您也可以找到服務水準合約的相關資訊。
Code Engine 實例的可用性
IBM Cloud® Code Engine 在多個地點(區域)提供。 每個區域包含三個資料中心 (區域),以提供備援。
當您佈建 Code Engine 專案時,您可以選取建立實例的位置 (MZR)。 區域決定您的工作負載 (例如應用程式、工作、功能和機群) 的託管位置。
預設情況下,您的工作負載會部署在單一區域內。 如果託管區域發生故障,工作負載會自動在其餘的區域中重新建立。
該服務會在正常作業期間執行受控制的區域間工作負載移動,例如服務維護和軟體升級。 這些滾動重新啟動會以優雅的方式執行,以盡量減少干擾。 在作業環境中發生意外事件時,可能會發生計劃外故障移轉。
Code Engine 儲存元資料 (包括專案、應用程式、功能、工作、機群及影像建立定義),並將其複製到區域內的所有區域,以確保可用性。 作為僅運算的服務,Code Engine 不負責確保您的工作負載資料或容器影像的高可用性。 請參閱各雲端服務的說明文件,以取得有關確保高可用性的指引。 對於容器影像可用性,請遵循 IBM Cloud Container Registry 中的指導,以確保您的工作負載在區域停機期間保持運作。 如果您在 IBM Cloud Object Storage 或任何其他 IBM Cloud 資料庫或儲存服務中讀取或儲存資料,請參閱各服務的說明文件以瞭解高可用性功能。
Code Engine 地區
下表列出 Code Engine 可用的區域及其高可用性狀態。
| 地理 | 地區 | 高可用性 |
|---|---|---|
| 亞太地區 | 澳洲,雪梨(au-syd ) |
MZR |
| 亞太地區 | 印度,清奈(in-che ) |
MZR |
| 亞太地區 | 日本,大阪(jp-osa ) |
MZR |
| 亞太地區 | 日本,東京(jp-tok ) |
MZR |
| 歐洲 | 德國,法蘭克福(eu-de ) |
MZR |
| 歐洲 | 西班牙,馬德里(eu-es ) |
MZR |
| 歐洲 | 英國,倫敦(eu-gb ) |
MZR |
| 北美洲 | 加拿大,多倫多(ca-tor ) |
MZR |
| 北美洲 | 美國,達拉斯(us-south ) |
MZR |
| 北美洲 | 美國華盛頓(us-east ) |
MZR |
| 南美洲 | 巴西,聖保羅(br-sao ) |
MZR |
「地理區」是指包含一個或多個區域的地理範圍。 每個區域均包含 多個可用區域, 以滿足當地存取、低延遲及安全性等需求。 每個 多區域(MZR) 由 3 個或更多獨立的區域組成,確保單一故障事件只影響一個區域。
Code Engine 實例的災難回復
在重大的區域災難中,例如地震、洪水或惡劣天氣事件,整個區域都可能受到影響。 為了確保您的工作負載能夠適應此類事件,請將它們部署在多個 MZR 上,並使用 Edge Proxy 服務實施自動故障移轉機制。 例如,您可以使用 IBM Cloud® Internet Services. 如需將應用程式部署在多個地區的相關資訊,請參閱 使用自訂網域名稱將應用程式部署在多個地區。
IBM 如何協助確保災難復原
備份 Code Engine 實例
IBM Cloud 自動備份 Code Engine 專案元資料,並將其儲存於跨區域儲存空間,以利災難復原。
| Code Engine 地區 | 跨區域端點 |
|---|---|
au-syd |
AP |
br-sao |
BR |
ca-tor |
CA |
eu-de |
EU |
eu-es |
EU |
eu-gb |
EU |
jp-osa |
AP |
jp-tok |
AP |
us-east |
US |
us-south |
US |
為了避免工作負載受到意外的影響 - 例如工作重複或部署不需要的應用程式實體 - Code Engine 不會自動還原您的工作負載。 恢復工作量是您的責任。 如需相關資訊,請參閱 瞭解使用 Code Engine 時的責任。
復原時間目標 (RTO) 與復原點目標 (RPO)
-
復原時間目標 (RTO) 是系統、應用程式或業務流程在造成重大業務影響之前離線的最長可接受時間。
-
復原點目標 (RPO) 定義了 HA 或 DR 事件發生後可接受的最大資料損失量(以時間衡量)。
IBM 定期進行 HA/DR 測試,包括 HA 故障移轉、孤立的 DR 情境 (不包括客戶擁有的資料和工作負載定義)、資料恢復,以及模擬非技術參數。
在這些測試中,RTO(復原時間)和 RPO(復原點)目標會被測量和驗證。
| 目標 | 目標 |
|---|---|
| 區域中斷期間自動故障移轉 | RTO = 秒,RPO = 0 |
| 災難復原,不包括客戶擁有的藝術品的復原 | RTO = 小時,RPO = 1 天 |
規劃災難回復
除了 IBM 的 HA/DR 測試之外,您必須定期練習災難復原程序。 當您建立計劃時,請考慮以下的失敗情況和解決方案。
| 事件 | 解決方法 |
|---|---|
| 硬體故障 (運算基礎架構) | IBM 提供可抵禦區域內單點硬體故障的基礎架構 - 無需設定。 |
| 區域故障 | 自動故障移轉 (請參閱 Code Engine 實例的可用性 )。 工作負載會自動移至可用的區域。 |
| 資料毀損 | 您有責任建立資料備份。 |
| 區域失敗 | 無自動故障移轉。 如 Code Engine 實例的災難復原中 所述,您應該在第二個多重區域中部署工作負載。 |
| 工作量可用性 | 您負責實作您的業務應用程式,以便從外部儲存或資料庫恢復狀態。 |
| HA/DR 彈性 | 您有責任確保經過訓練的員工可以在停機期間管理您的元件,並回復您的工作負載和客戶擁有的資料。 |
您對 HA 和 DR 的責任
使用下列與每個特徵相關的核對表來幫助您建立和實踐您的計劃。
-
用於 IBM Cloud® Code Engine 應用程式、工作和機群的容器影像
驗證您的容器影像在 IBM Cloud Container Registry 備份區域中可用。
-
用於 IBM Cloud® Code Engine 函式的程式碼束
確認您的 IBM Cloud Container Registry 備份區域中有您的程式碼束。
全面的高可用性 (HA) 和災難復原 (DR) 測試計劃包括定義 RTO 和 RPO 目標、識別關鍵系統,以及驗證備份完整性、網路故障移轉和資料同步。 關鍵步驟包括模擬故障(例如節點故障或站點中斷)、執行故障移轉程序、驗證系統功能,以及記錄回退程序。
-
測試準備
- 定義目標:確認您的復原時間目標 (RTO) 和復原點目標 (RPO)。
- 識別關鍵系統:列出所有需要故障移轉的系統、資料和應用程式。
- 建立團隊角色:定義 DR 團隊的職責,並指定一位主要聯絡人。
- 備份驗證:確認備份有效且可存取。
- 環境隔離:隔離測試系統,防止意外影響生產環境。
-
測試執行
- 模擬故障情境:啟動計畫中的故障,例如切斷網路連線、停止服務或關閉主要伺服器。
- 執行故障移轉:執行成文的故障移轉程序至備用/復原站點。
- 驗證資料完整性:使用校驗和或切細值來確保資料沒有損壞。
- 應用程式驗證:測試 DR 站點上應用程式的功能。
- DNS/Traffic 重定向:驗證使用者流量是否重定向到新的作用中節點。
-
測試後和記錄
- 執行故障回復:優雅地將主網站重新連線,並重新同步化資料。
- 記錄結果:記錄時間、成功與否,以及與計劃的任何偏差。
- 找出差距:找出計劃中的不足之處,並據此更新程序。
- 通訊稽核:驗證通知是否已傳送給所有利害關係人。
-
常見測試情境
- HA 測試:本機故障移轉至備用節點 (例如,在同一資料中心內)。
- DR 測試:完全故障移轉至地理上獨立的位置。
- 資料還原:將客戶擁有的資料和工作負載工件從備份資料儲存庫完整還原至主要或選定的備份位置。
- 員工可用性:測試若關鍵人員無法上線或無法連線至您的系統時,對作業所造成的影響。