改善建置速度的建議
適用於此 Azure 架構完善的架構營運卓越檢查清單建議:
OE:04 | 遵循經過業界證明的開發與測試做法,將軟體開發和品質保證程序優化。 如需明確的角色指定,請將工具、原始檔控制、應用程式設計模式、檔和樣式指南等元件之間的做法標準化。 |
---|
相關指南: 使用持續整合的標準化工具和程式 | 建議的建議
本指南說明改善部署基礎結構效能的建議。 在產品開發的第一天啟動並執行建置流程非常重要。 組建是您的持續傳遞系統的活動訊號,因為建置狀態會顯示您的產品何時可部署。 組建提供產品狀態的重要資訊,因此您應該一律努力快速建置。
如果建置需要較長的時間才能建置,則很難修正建置問題。 當延遲發生並正規化時,小組通常會變得不那麼有動力來修正問題。
關鍵設計策略
最佳化建置時間
若要執行更快速的組建,您可以:
選擇符合效能需求的代理程序:選取正確的組建機器來加速組建。 快速機器可以在小時和分鐘之間有所差異。 如果您的管線位於 Azure Pipelines 中,您可以使用Microsoft裝載的代理程式來執行作業。 當您使用Microsoft裝載的代理程式時,會為您處理維護和升級。 如需詳細資訊,請參閱 Microsoft 裝載的代理程式。
優化建置伺服器位置:當您建置程式代碼時,數據會透過網路傳送。 從原始檔控制存放庫和成品存放庫擷取組建的輸入。 必須複製建置程序的輸出,包括已編譯的成品、測試報告、程式代碼涵蓋範圍結果和偵錯符號。 請務必快速執行這些複製動作。 如果您使用自己的組建伺服器,請確定組建伺服器位於來源和目標位置附近。 快速上傳和下載可以減少整體建置時間。
向外延展組建伺服器:單一組建伺服器可能就足以用於小型產品。 隨著產品的大小和範圍和在產品上工作的小組數目增加,單一伺服器可能不夠。 當您達到限制時,水平調整基礎結構在多部機器上。 如需詳細資訊,請參閱 建立和管理代理程式集區。
優化組建:
新增平行作業以加速建置程式。 如需詳細資訊,請參閱設定和支付平行作業的費用。
啟用平行測試套件執行,這通常會節省大量的時間,尤其是在執行整合和UI測試時。 如需詳細資訊,請參閱 針對任何測試執行器平行執行測試。
使用乘數的概念,您可以在其中透過多個組建代理程式相應放大組建。 如需詳細資訊,請參閱在管線中指定作業。
請考慮將整合、UI 和煙霧測試移至發行管線。 移至發行管線可改善組建回應迴圈的建置速度和速度。
將組建成品發佈至套件管理解決方案,例如 NuGet 或 Maven。 發佈至套件管理解決方案可讓您更輕鬆地重複使用組建成品。
將人為介入降到最低
您的組織可能會選擇建立數種不同類型的組建,以優化建置時間。 可能的組建包括:
持續整合 (CI) 組建:此組建的目的是確保編譯程式代碼並執行單元測試。 此組建會在每次認可時觸發。 它可作為專案的活動訊號,並立即向小組提供品質意見反應。 如需詳細資訊,請參閱 指定觸發管線的事件。
夜間建置:夜間建置的目的不只是編譯程序代碼,也可確保每個組建在一般頻率上執行效率不佳的任何較大測試套件。 這些測試通常包括整合、UI 或煙霧測試。 如需詳細資訊,請參閱 設定管線的排程。
發行組建:除了編譯和執行測試之外,此組建也會編譯 API 檔、合規性報告、程式代碼簽署,以及每次建置程式代碼時不需要的其他步驟。 此組建提供推送至發行管線的黃金複本,最終部署在生產環境中。
組織所需的組建類型取決於因素,包括小組和組織成熟度、您正在處理的產品種類,以及您的部署策略。
Azure 便利化
Azure DevOps 是一系列服務,可協助您建置共同作業、有效率且一致的開發實務。
使用 Azure Pipelines 建置和發行服務,以支援應用程式的持續整合和持續傳遞(CI/CD)。
使用 適用於 Azure 的 GitHub Actions 將 CI/CD 程式自動化,並直接與 Azure 整合以簡化部署。 您也可以建立工作流程,以建置和測試存放庫的每個提取要求,或使用 GitHub Actions for Azure 將合併的提取要求部署至生產環境。
Azure Pipelines 中原生提供Microsoft裝載的代理程式。 這些代理程式是單一用途的虛擬機,只用於一個作業,然後捨棄,這可為組建提供容易管理的選項。
相關連結
- Azure DevOps
- Azure Pipelines
- 設定支付平行作業並支付費用
- 設定管線的排程
- 建立和管理代理程式集區 (英文)
- GitHub for Actions for Azure
- Microsoft 裝載的代理程式 \(英文\)
- 針對任何測試執行器平行執行測試
- 指定觸發管線的事件
- 在您的管線中指定作業
卓越營運檢查清單
請參閱一組完整的建議。