持續集成之“軟件自我識別”
在前文《自動化部署》中,我們討論了自動化部署。通過對部署操作腳本化、部署驗證自動化、部署環境版本控制、生產部署全自動化等諸多實踐,可以讓部署完全處于受控狀態。然而,作為運維人員,是否曾經有人走過來問你這樣的問題:“當前生產環境上部署的是哪個軟件版本?”你是否遇到過這樣的情形,即使手里拿著一個jar文件或dll文件,也無法知道它到底是哪個版本。也許你可能認為,這算不了什么,到某個管理平臺上查一查部署記錄就行了。可是,如果發現在生產環境的集群服務器上,不同機器上部署的同一個程序文件(比如.war文件)的大小卻不相同,哪一個的大小是正確的呢?作為運維人員,你當時的心情會是什么樣呢?