「你應該要能完全掌握正式環境中的任何資訊,這表示正式環境中的每次變更都應該被記錄下來,而且得做到今後可以查閱的狀態。」——《Continuous Delivery 中文版》
(正體中文版書中原文是「生產環境」,筆者引用時改為個人比較喜愛的「正式環境」。)
其實我們經常會看到一種案例,某個軟體團隊已經高度自動化,他們的 CI/CD Pipeline 可以做到自動部署至所有的環境,唯獨就是正式環境依然卡著,需要手動執行或人工審核。
從持續交付到持續部署,往往最後卡住的地方就在於此,我們對於「正式環境」的掌握度總是不足。
當你詢問團隊,你知道正式環境過往曾做過哪些「變更」,卻沒有人可以說的準。
又或者是過去出包的經驗,導致團隊無法相信自動化腳本可以直接運行在正式環境。
自動化的恐懼是十分實際的,而正式環境的組態偏移也確實是常見的問題。
但這些真的都無法解決嗎?
經過這麼多年,我們已經有了這麼多虛擬化、容器化、雲端,組態配置管理、IT自動化工具、Infra as code 觀念的輔助,在技術層面的問題應該都能找到對應的解決方案。
所以,這麼一來,問題到底是出在哪裡呢?