每日一句
2026 年 10 月 23 日
「追求環境一致性,因此能有更快的交付速度,在實現持續整合與持續部署會更加容易。」——《30天與Docker做好朋友:跟鯨魚先生一同探索開發者的大平台》
在教學 CI/CD 時,我一定都會在課程中放入一個情境,那就是多種環境的 CI/CD 需求。
通常學員在這一個階段,腦袋就會開始打結。
如果這時候再加上 Git Branch 管理議題,大概就會聽見有人喊著「完了,要搞這麼多東西喔?」(對,就是這麼多東西。)
每個環境剛建起來的時候,通常都很標準、一致,甚至有可能最初的 Dev、Staging、Production 就像是一模一樣的三胞胎。
不過就像三胞胎一樣,如果三人過著截然不同的人生,相同的基因依然會成長為三個不同的個體。
環境隨著時間,也會發生各種偏移,好比 Dev 被陸續安裝了各種開發用套件、Staging 塞滿了各種測試資料、Production 則是有人直連去調教效能,最終三個環境產生的變更無人知曉。
於是當 CI/CD Pipeline 再次運行時,怎麼會 Dev 綠燈、Staging 紅燈、Production 則直接拔掉自動化回歸手動部署?(誒)
每一次沒有被「版控或紀錄」的變更,都在讓你的環境脫離「標準」與「一致」。
而這段偏移的距離,只會逐漸拉長,不會自動縮短。
所以在 DevOps 中才會不斷提到版本控制、變更管理、Infra as Code、標準及一致性等議題。
所有的「變更」都應該遵守一個可以被管理、稽核、追蹤的流程。
你們的三個環境都各自生長成什麼面貌了?
你知道它們之間的差異嗎?你能夠快速的復現任何一個乾淨、正常的環境嗎?