驗證移轉

只有在行為、安全性、效能、可觀察性及倒回關卡通過之後,才能移動流量。

切換之前,請遵循下列驗證步驟:

  1. 重新執行擷取的事件,並比較預期的輸出、錯誤、狀態代碼、標頭、主體綱要、物件描述資料、順流寫入、副作用、日誌以及警示行為。
  2. 執行涵蓋 p95/p99 持續時間、最長持續時間、記憶體空餘空間、冷啟動敏感路徑、尖峰並行、存量 (Backlog) 或佇列時間、重試風暴、下游速率限制以及容量徵兆的負載和失敗測試。
  3. 測試格式錯誤的有效負載、重複事件、中毒訊息、下游無法使用、權限拒絕、加密密碼輪換、網路失敗、逾時行為、迴圈預防和倒回條件。

切換至 OCI 函數

只有在行為、安全性、效能、可觀察性及倒回關卡通過之後,才能移動流量。

若要切換至 OCI 函數,請遵循下列步驟:

  1. 確認已通過功能、效能、安全性及作業驗證關卡。
  2. 記錄切換擁有者、倒回擁有者、成功條件、倒回觸發程式以及預期的復原時間。
  3. 在切換視窗期間凍結不相關的應用程式變更。
  4. 儘可能將工作負載的有限可觀察部分遞送至 OCI Functions
  5. 監控業務輸出、錯誤、逾時、延遲、調節、未交訂單及下游失敗。
  6. 僅在協定的觀察期間過後增加流量。
  7. 停止切換,並在必要成功準則失敗時執行倒回計畫。
  8. 只有在應用程式和作業擁有者接受生產結果之後,才開始下一個移轉波次。

如果無法使用以百分比為基礎的路由,請依觸發程式、儲存桶、佇列、區域或其他控制的工作負載界限來限制初始暴險。

移轉後驗證

確認移轉的工作負載符合其架構、行為、效能、安全性及作業需求。

若要在移轉後進行驗證,請遵循下列步驟:

  1. 工作負載角色、來源產品目錄、目標架構、替代項目、風險評等、服務限制及目標呼叫行為均會加以記錄。
  2. 觸發程式、相依性、安全性、網路及作業資產已足夠,可供複查者重現目標決策。
  3. 擷取的事件會產生預期的狀態代碼、標頭、主體綱要、物件描述資料、順流寫入、副作用、日誌以及錯誤行為。
  4. 每個觸發程式都有有效負載 (Payload) 格式、重試、失敗、排序、批次行為、冪等、重複傳遞、失效字母或失敗路由的測試,以及中毒訊息 (如果適用)。
  5. p95/p99 持續時間、持續時間上限、記憶體空餘空間、冷啟動敏感路徑、尖峰並行、未交訂單或佇列時效、逾時計數、節流或 429 行為,以及下游速率限制符合工作負載需求。
  6. 並行控制可保護下游系統,並避免重試風暴或未繫結的未交訂單成長。
  7. 允許的服務呼叫成功與拒絕的路徑會安全地失敗。原始程式碼、映像檔、日誌、環境傾印、CI 輸出、堆疊追蹤或錯誤訊息中沒有加密密碼。
  8. 必要的專用與外部相依性可以透過核准的網路路徑來連線。日誌、測量結果、警示、儀表板、追蹤、執行手冊、倒回觸發程式、擁有者、步驟、預期的復原時間,以及最終核准都在流量移動之前完成。

關於一般移轉問題與緩和措施

避免這些常見的移轉設計、整合和作業失敗。
  • 建立所有 Lambda 功能相同:在選擇目標之前,先依角色、觸發程式、相依性、程式實際執行行為、流量設定檔和作業需求將每個功能分類。
  • 太早選擇 OCI 函數:在重製程式碼之前先驗證有效負載 (Payload)、逾時 (timeout)、記憶體、相依性、呼叫、並行、網路以及整合。
  • 假設事件有效負載完全相同:在連線生產觸發程式之前,先建置 OCI 處理程式轉接器並重新執行擷取的來源事件。
  • 忽略層和原生相依性:將相依性封裝至 OCI 函數映像檔或共用基礎映像檔,然後測試映像檔大小、啟動、原生程式庫以及相依性版本。
  • IAM 翻譯太廣泛:將觀察的執行時期動作對應至最低權限的 OCI 原則,並測試拒絕的路徑,而不只是快樂的路徑存取。
  • 佇列或串流語意不同:設計明確的冪等性、重試、部分失敗、失敗目的地、排序和壓回處理。
  • 物件事件導致迴圈:使用個別的輸入和輸出前置碼或篩選,並驗證建立、更新、刪除、重試、複製和迴圈預防行為。
  • 作業會延遲:啟用日誌、度量、警示、儀表板、執行手冊、失敗測試及倒回檢查後,再移動實際環境執行流量。