

# OPS05-BP04 使用建置和部署管理系統
<a name="ops_dev_integ_build_mgmt_sys"></a>

 使用建置和部署管理系統。這些系統可減少由手動程序引起的錯誤，並減少部署變更的工作量。 

 在 AWS 中，您可以使用 [AWS 開發人員工具](https://aws.amazon.com/products/developer-tools/) 等服務 (例如，AWS CodeCommit、 [AWS CodeBuild](https://aws.amazon.com/codebuild/)、 [AWS CodePipeline](https://aws.amazon.com/codepipeline/)、 [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)和 [AWS CodeStar](https://aws.amazon.com/codestar/)) 來建置持續整合/持續部署 (CI/CD) 管道。 

 **預期成果：** 您的建置和部署管理系統可支援組織的持續整合持續交付 (CI/CD) 系統，提供了使用正確組態自動化安全推展的功能。 

 **常見的反模式：** 
+  在開發系統中編譯程式碼之後，您將可執行檔複製到生產系統中，卻無法啟動。本機日誌檔案指出其因缺少相依性而失敗。 
+  您在開發環境中使用新功能成功建置應用程式，並提供程式碼以進行品質保證 (QA)。它未通過 QA，因為缺少靜態資產。 
+  週五，在經過一番努力之後，您成功在開發環境中手動建置應用程式，包括新編碼的功能。到了週一，您卻無法重複成功建置應用程式的步驟。 
+  您執行為新版本建立的測試。然後，您會在下週設定測試環境，並執行所有現有的整合測試，接著執行效能測試。新的程式碼具有無法接受的效能影響，必須重新開發及測試。 

 **建立此最佳實務的優勢：** 透過提供用於管理建置和部署活動的機制，您可以減少執行重複性任務的工作量，讓團隊成員專注於高價值的創意任務，並減少手動程序導致的錯誤。 

 **未建立此最佳實務時的曝險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

 建置和部署管理系統可用來追蹤和實作變更、減少手動程序導致的錯誤，以及減少安全部署所需的工作量。從程式碼簽入到建置、測試、部署和驗證，完全自動化整合和部署管道。此舉可縮短前置時間、降低成本、促進增加變更頻率、減少工作量，並且增進協作。 

### 實作步驟
<a name="implementation-steps"></a>

![\[圖中顯示使用 AWS CodePipeline 和相關服務的 CI/CD 管道\]](http://docs.aws.amazon.com/zh_tw/wellarchitected/2023-10-03/framework/images/deployment-pipeline-tooling.png)


 

1.  使用 AWS CodeCommit 進行版本控制、儲存及管理資產 (例如文件、原始程式碼和二進位檔案)。 

1.  使用 CodeBuild 編譯原始程式碼、執行單元測試，以及產生立即可部署的成品。 

1.  使用 CodeDeploy 做為部署服務，將應用程式自動部署至 [Amazon EC2](https://aws.amazon.com/ec2/) 執行個體、內部部署執行個體、[無伺服器 AWS Lambda 函數](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)或 [Amazon ECS](https://aws.amazon.com/ecs/)。 

1.  監控您的部署。 

## 資源
<a name="resources"></a>

 **相關的最佳實務：** 
+  [OPS06-BP04 自動化測試和復原](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **相關文件：** 
+  [AWS 開發人員工具](https://aws.amazon.com/products/developer-tools/) 
+ [ 什麼是 AWS CodeCommit？ ](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)
+  [什麼是 AWS CodeBuild？](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+ [AWS CodeBuild](https://aws.amazon.com/codebuild/)
+  [什麼是 AWS CodeDeploy？](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **相關影片：** 
+ [AWS re:Invent 2022 - 適用 AWS 上 DevOps 的 AWS Well-Architected 最佳實務 ](https://youtu.be/hfXokRAyorA)