View a markdown version of this page

OPS06-BP03 採用安全的部署策略 - AWS Well-Architected 架構

OPS06-BP03 採用安全的部署策略

安全的生產上市可以控制正面變更的流程,目的是將這些變更對客戶造成的任何負面影響降到最低。安全控制提供檢查機制,以驗證預期結果,並限制變更所帶來的任何負面影響或部署失敗造成的影響範圍。安全上市可能包括諸如功能旗標、一體式、滾動式 (金絲雀版本)、不可變、流量拆分和藍/綠部署等策略。

預期成果: 您的組織使用持續整合與持續交付 CI/CD 系統,提供自動化安全上市功能的能力。團隊必須使用適當的安全上市策略。

常見的反模式:

  • 您一次性將失敗的變更部署至所有生產環境。因此,所有客戶會同時受影響。

  • 同時部署到所有系統的負面影響必須以緊急版本因應。需要數天時間為所有客戶進行錯誤修正。

  • 管理生產發行需要多個團隊的規畫和參與。這會限制您為客戶積極提供更新功能的能力。

  • 您透過修改現有系統來執行可變部署。發現變更失敗之後,您必須再次修改系統以還原舊版本,這會延長回復時間。

建立此最佳實務的優勢: 自動化部署持續為客戶在上市速度與交付正面變更之間取得平衡。限制影響範圍可以預防損失慘重的部署失敗,並盡可能提高團隊有效回應故障的能力。

未建立此最佳實務時的曝險等級:

實作指引

持續交付的失敗可能導致服務可用性降低和糟糕的客戶體驗。為了盡可能提高部署成功率,請在端對端發行程序中實施安全控制,盡量減少部署錯誤,而目標則是實現零部署失敗。

客戶範例

AnyCompany Retail 的使命是實現最小至零停機時間的部署,這表示部署期間沒有對使用者產生任何可感知的負面影響。為了達成此目標,該企業已建立部署模式 (請參閱下方工作流程圖),例如滾動部署和藍/綠部署。所有團隊都在其 CI/CD 管道中採用一個或多個模式。

Amazon EC2 的 CodeDeploy 工作流程 Amazon ECS 的 CodeDeploy 工作流程 Lambda 的 CodeDeploy 工作流程
Amazon EC2 的部署程序流程
Amazon ECS 的部署程序流程
Lambda 的部署程序流程

實作步驟

  1. 使用升級至生產環境的核准工作流程,觸發生產上市步驟的一系列動作。

  2. 使用自動化部署系統,例如 AWS CodeDeploy。AWS CodeDeploy 部署選項 包含 EC2/內部部署的就地部署和藍/綠部署、AWS Lambda 以及 Amazon ECS (請參閱下方工作流程表)。

  3. 針對資料庫使用藍/綠部署,例如 Amazon AuroraAmazon RDS

  4. 監控部署 時會使用 Amazon CloudWatch、AWS CloudTrail,和 Amazon SNS 事件通知。

  5. 執行部署後自動化測試,包括功能、安全性、迴歸、整合和任何負載測試。

  6. 故障排除 部署問題。

實作計劃的工作量:

資源

相關的最佳實務:

相關文件:

相關影片:

相關範例: