2026/01/20

2026 年 01 月 20 日

「我們也應該有能力在部署出錯時,透過同一個自動化處理讓系統還原到之前的版本。」——《Continuous Delivery 中文版》

在軟體開發交付流程中,有許多環節都能被自動化。

Agile 與 DevOps 經常會提到的 CI/CD Pipeline 就是一種自動化的具體呈現。

自動化測試、自動化發佈、自動化交付、自動化部署,還有別忘了自動化 rollback。

在很多案例,我們會聽見人們說明他們的企業已經完成了自動化部署,只需幾秒的時間,最新版的軟體就能部署上線。

但如果再多問一句,如果部署失敗時,是怎麼 rollback 呢?往往答案會是那就「手動處理」。

為什麼會是這樣的答案呢?

自動化 rollback 的難度是不是比自動化部署還要難呢?

這個問題當然也沒有標準答案,因為不同企業的情境不同。

也許對你來說 rollback 只需要用舊版覆蓋新版軟體,但對他人而言可能是涉及多系統、多流程、多工具的複雜情境。

總而言之,實踐自動化除了那些我們喜愛的提升效率、生產力、節省時間的優點之外,它還有一個更重要的好處,那就是會強迫我們要將自動化目標對象的裡裡外外都要懂得一清二楚。

你所實踐的自動化,是清清楚楚的自動化?還是模模糊糊的自動化呢?

你對於你們的自動化有多少信心?你放心讓它幫你部署與 rollback 嗎?