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

OPS 5: 您如何減少缺陷、幫助輕鬆修復,以及改善生產流程?

採用改善改變生產流程的方法,藉此重構、快速提供品質意見回饋及修復錯誤。這會加快有助益的改變發揮作用的速度、限制部署問題,並快速識別和修復部署活動造成的問題。

資源

CI/CD for Serverless Applications on AWS
Design with Ops in Mind
AWS Developer Tools

最佳實務:

改進方案

使用版本控制

  • 使用版本控制: 在版本控制的儲存庫中維護資產。此舉可實現變更追蹤、新版本部署、對現有版本的變更偵測以及還原到先前的版本 (例如,在發生故障時復原到已知的良好狀態)。將組態管理系統的版本控制功能整合到您的程序中。
    Introduction to AWS CodeCommit
    What is AWS CodeCommit?
  • 測試並驗證變更

  • 測試並驗證變更: 應該在生命週期的所有階段 (例如,開發、測試和生產) 測試變更並驗證結果。使用測試結果來確認新功能,並減輕失敗部署的風險和影響。自動執行測試和驗證,以確保檢閱的一致性,減少由手動程序引起的錯誤,並減少工作量。
    What is AWS CodeBuild?
    Local build support for AWS CodeBuild
  • 使用組態管理系統

  • 使用組態管理系統: 使用組態管理系統來追蹤和實作變更,以減少由手動程序引起的錯誤,並減少工作量。
    Infrastructure configuration management
    AWS Config
    What is AWS Config?
    Introduction to AWS CloudFormation
    What is AWS CloudFormation?
    AWS OpsWorks
    What is AWS OpsWorks?
    Introduction to AWS Elastic Beanstalk
    What is AWS Elastic Beanstalk?
  • 使用建置和部署管理系統

  • 使用建置和部署管理系統: 使用建置和部署管理系統來追蹤和實作變更,以減少由手動流程引起的錯誤,並減少工作量。從程式碼簽入到建置、測試、部署和驗證,完全自動化整合和部署管道。此舉可減少前置時間,增加變更頻率,並降低工作量。
    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?
  • 執行修補程式管理

  • 修補程式管理: 修補系統以補救問題,獲得所需的功能或特性,並保持符合管控政策和供應商支援要求。在不可變系統中,部署適當的修補程式集以實現所需的結果。自動化修補程式管理機制,以縮短修補時間,減少由手動程序引起的錯誤並降低修補工作量。
    AWS Systems Manager Patch Manager
  • 共用設計標準

  • 共用設計標準: 在團隊之間分享現有的最佳實務、設計標準、檢查清單、操作程序以及指導和管控要求,以降低複雜性並最大化開發工作的收益。確保存在用於請求對設計標准進行變更、新增和例外的程序,以支援持續的改進和創新。確保團隊了解發佈的內容,以便他們可以利用內容,限制重新作業以及工作上徒勞無功。
    Delegating access to your AWS environment
    Share an AWS CodeCommit repository
    Easy authorization of AWS Lambda functions
    Sharing an AMI with specific AWS accounts
    Speed template sharing with an AWS CloudFormation designer URL
    Using AWS Lambda with Amazon SNS
  • 實作用於提高程式碼品質的實務

  • 實作用於提高程式碼品質的實務: 實作實務以提高程式碼品質,將缺陷和缺陷被部署的風險降至最低。例如,測試驅動的開發、結對程式設計、程式碼審查和標准採用。
  • 使用多個環境

  • 使用多個環境: 為開發人員沙盒環境施加最少的控制,以推動實驗。提供多個單獨的開發環境,以使並行工作成為可能,從而提高開發敏捷性。在接近生產的環境中實作更嚴格的控制,以使開發人員有必要的創新自由為限。使用基礎設施即程式碼和組態管理系統,以部署設定了與生產環境一致控制的環境,從而確保系統在部署時能夠按預期執行。當不使用環境時,關閉環境以避免與空閒資源相關的成本 (例如,在夜間和周末關閉開發系統)。進行負載測試時,部署與生產環境等效的環境,以獲得有效結果。
    What is AWS CloudFormation?
    How do I stop and start Amazon EC2 instances at regular intervals using AWS Lambda?
  • 進行頻繁、細微和可逆的變更

  • 進行頻繁、細微和可逆的變更: 頻繁、細微和可逆的變更會縮小變更的範圍和影響。這樣可以簡化故障診斷,實現更快的修復,並提供回復變更的選項。它還可以提高您為企業帶來價值的速度。
  • 完全自動化整合和部署

  • 使用建置和部署管理系統: 使用建置和部署管理系統來追蹤和實作變更,以減少由手動流程引起的錯誤,並減少工作量。從程式碼簽入到建置、測試、部署和驗證,完全自動化整合和部署管道。此舉可減少前置時間,增加變更頻率,並降低工作量。
    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?