什么是DevOps?這個將開發和運維結合起來的詞,代表了一種文化,那就是大家共同協作。狹義上的大家,指的是開發和運維,廣義上,指的是所有軟件生命周期里參與的角色。
“共同協作”是個富有正能量的詞。感覺上,隨便往哪兒一套都是正確的。那為什么要在DevOps里著重強調呢?DevOps到底解決了什么問題?歸根結底,就是提高產品質量。愛思考的你,可能心里已經有千萬個提高產品質量的方案從腦海里呼嘯而過——代碼審查、自動化測試、持續集成、代碼質量管理工具、程序員鼓勵師……對對對,這些方案都能在某種程度上解決一些層次的問題。但是,產品質量的根源在哪兒呢?在于人。如果開發者對自己要做的事情不負責,甚至壓根兒不知道后果,怎么能指望這樣的人能夠生產出來高質量的代碼呢?舉個例子:作為開發者,我知道自己寫的代碼會由測試部門來進一步測試,在有進度壓力的時候,我就會更傾向于去想:“那就先這么湊合著吧,反正有問題QA們會說的”。如果我不知道部署和維護產品是怎么一回事,我就不會主動地在產品里寫上日志的代碼。對于運維人員來說,由于處于軟件生命周期的下游,相信對類似的場景感觸更甚。DevOps能夠做到的事,就是讓人有這個意識:需要對產品的質量負責。DevOps能夠提供一個平臺或機制,讓我能夠從中找到所需的資源。