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
最佳實務:
-
為失敗變更進行規劃: 計劃在變更未達到理想成果時,恢復到已知的良好狀態,或者在生產環境中進行補救。透過這樣準備可加快回應速度,以縮短復原時間。
-
測試並驗證變更: 在生命週期所有階段測試變更並驗證結果,以確認新功能,並將失敗部署的風險和影響降至最低。
-
使用部署管理系統: 使用部署管理系統來追蹤和實作變更。此舉可減少由手動程序引起的錯誤,以及部署變更的工作量。
-
使用有限的部署進行測試: 繼續現有系統現有系統的同時,在有限的部署中進行測試,以在大規模部署之前確認理想成果達成與否。例如,使用部署 Canary 測試或一體式部署。
-
使用平行環境進行部署: 在平行環境中實作變更,然後轉換到新環境。維護先前的環境,直到確認已成功部署為止。此舉可透過復原到先前的環境來將復原時間縮短至最少。
-
部署頻繁、細微和可逆的變更: 透過頻繁、細微和可逆的變更來縮小變更範圍。透過回復變更,可以更輕鬆地進行故障診斷並加快修復速度。
-
完全自動化整合和部署: 自動化工作負載的建置、部署和測試。此舉可減少由手動程序引起的錯誤,以及部署變更的工作量。
-
自動化測試和復原: 自動測試部署的環境,以確認理想成果達成與否。當無法實現結果時,自動還原到先前的良好狀態,以最大限度縮短還原時間,並減少由手動程序引起的錯誤。
改進方案
為失敗變更進行規劃
測試並驗證變更
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?
使用有限的部署進行測試
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