此內容已過時。這個版本的 Well-Architected 框架現在可以在以下位置找到: https://docs.aws.amazon.com/zh_tw/wellarchitected/2022-03-31/framework/operational-excellence.html

OPS 6: 您如何緩解部署風險?

採用可快速提供品質意見回饋,並從成果不盡理想的改變中快速復原的方法。使用這些實務可緩解部署變更所帶來問題的影響。

資源

Deep Dive on Advanced Continuous Delivery Techniques Using AWS
AWS Developer Tools
AWS CodeDeploy User Guide
Try a Sample Blue/Green Deployment in AWS CodeDeploy

最佳實務:

改進方案

為失敗變更進行規劃

  • 為失敗變更進行規劃: 計劃在變更未達到理想成果時,恢復到已知的良好狀態 (即回復變更),或者在生產環境中進行補救 (即向前回復變更)。當您確定無法回復的變更時,在提交之前應進行盡職調查。
  • 測試並驗證變更

  • 測試並驗證變更: 在生命週期所有階段 (例如,開發、測試和生產) 測試變更並驗證結果,以確認新功能,並將失敗部署的風險和影響降至最低。
    AWS Cloud9
    What is AWS Cloud9?
    How to test and debug AWS CodeDeploy locally before you ship your code
  • 使用部署管理系統

  • 使用部署管理系統: 使用部署管理系統來追蹤和實作變更。這可減少由手動流程引起的錯誤,並減少部署變更的工作量。從程式碼簽入到測試、部署和驗證,自動化整合和部署管道。此舉可減少前置時間,增加變更頻率,並進一步降低工作量。
    Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services
    What is AWS CodeDeploy?
    What is AWS Elastic Beanstalk?
    What is Amazon API Gateway?
  • 使用有限的部署進行測試

  • 使用有限的部署進行測試: 繼續現有系統現有系統的同時,在有限的部署中進行測試,以在大規模部署之前確認理想成果達成與否。例如,使用部署 Canary 測試或一體式部署。
    Working with deployment configurations in AWS CodeDeploy
    Blue/Green deployments with AWS Elastic Beanstalk
    Set up an API Gateway canary release deployment
  • 使用平行環境進行部署

  • 使用平行環境進行部署: 在平行環境上實作變更,然後轉換到切換新環境。維護先前的環境,直到確認已成功部署為止。此舉可透過還原到先前的環境來將還原時間減至最少。例如,將不可變的基礎架構用於藍/綠部署。
    Working with deployment configurations in AWS CodeDeploy
    Blue/Green deployments with AWS Elastic Beanstalk
    Set up an API Gateway canary release deployment
  • 部署頻繁、細微和可逆的變更

  • 部署頻繁、細微和可逆的變更: 透過頻繁、細微和可逆的變更來縮小變更範圍。透過回復變更,可以更輕鬆地進行故障診斷並加快修復速度。
  • 完全自動化整合和部署

  • 使用建置和部署管理系統: 使用建置和部署管理系統來追蹤和實作變更,以減少由手動流程引起的錯誤,並減少工作量。從程式碼簽入到建置、測試、部署和驗證,完全自動化整合和部署管道。此舉可減少前置時間,增加變更頻率,並降低工作量。
    What is AWS CodeBuild?
    Continuous integration best practices for software development
    Slalom: CI/CD for serverless applications on AWS
    Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services
    What is AWS CodeDeploy?
  • 自動化測試和復原

  • 自動化測試和復原: 自動測試部署的環境,以確認理想成果達成與否。當無法實現結果時,自動還原到先前的良好狀態,以最大限度縮短還原時間,並減少由手動程序引起的錯誤。例如,在部署後執行詳細的綜合使用者事務,驗證結果,並在失敗時復原。
    Redeploy and roll back a deployment with AWS CodeDeploy