在 Azure Pipeline - 如何使用 Container 提升 Agent 能力卻不提升複雜度 一文中,雖然提到使用 Container 方式可以降低代理程式伺服器上維護難度,但實際上隨著越來越多 Pipeline 執行在代理程式上,定期維護是重要的一件事情。定期維護可以清理工作目錄 (Working Directory) 與過去 Pipeline 下載的儲存庫,增加硬碟空間以提高代理程式可用性。維護工作在導入初期不容易被強調,通常進入開發日常流程時,平台管理者即需要面對的問題之一。
代理程式可以分成 自行管理(Self-hosted agents) 與 Microsoft 託管兩種類型,後者在 Pipeline 執行前會預先安裝一系列軟體,並於執行後回收,下次 Pipeline 任務開始時即又給予乾淨的代理程式環境,所以相較於自行託管代理程式,其清理維護的需求較低。
Azure DevOps 在代理程式集區 (Agent Pool) 功能中內建維護工作,在組織設定 > Pipeline > Agent Pool 內選擇要設定的代理程式集區。
在 Setting 啟用維護工作 (maintenance job),可以設定維護工作逾時時間、維持多少比例代理程式正常運作、保留多少維護工作紀錄與保留多少天資料
理所當然,我們會盡可能在非工作時間或離峰時間執行,不影響平日工作需求
你可以在代理程式集區設定畫面中,點選維護工作歷史紀錄檢視每次維護紀錄。並非設定維護工作就天下太平,依據經驗,可能會遇到卡住無法進行維護、維護失敗...等突發狀況,平台管理者仍需要隨時檢視(或設定警告)以確認維護工作可以正確執行完畢。
注意:如果你是在同一個伺服器上安裝多個代理程式,請確認確實執行多個代理程式清除工作,以避免最終仍造成磁碟空間不足情況發生。