共用方式為


改善建置速度的建議

適用于此 Azure Well-Architected Framework 營運卓越檢查清單建議:

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 整合以簡化部署。 您也可以建立工作流程,以建置和測試存放庫的每個提取要求,或使用適用于 Azure 的 GitHub Actions,將合併的提取要求部署至生產環境。

Microsoft 裝載的代理程式 可在 Azure Pipelines中以原生方式使用。 這些代理程式是單一用途的虛擬機器,只能用於一個作業,然後捨棄,這會為您的組建提供容易管理的選項。

營運卓越檢查清單

請參閱一組完整的建議。