相信很多公司都和我們公司一樣,開發人員和運維人員分別處在兩個團隊,并且兩個團隊是平級的關系,工作地點不在一起,KPI考核也有差異,這使得開發團隊和運維團隊之間的存在著很明顯的分界:
比如兩個團隊的目標是不一樣的,開發人員希望趕緊測試完成快速上線,上線后系統有問題,運維頂在前面;運維人員希望系統平穩運行,最好一個BUG別出;這兩個目標實際上是沖突的。
想要敏捷開發但是敏捷不起來,無法快速響應用戶的需求,甚至當系統出現問題時,還會發生互相甩鍋的問題。
針對這種問題,行業內提出來DevOps,這個單詞是Development和Operations的組合,突出了軟件開發人員和運維人員的溝通合作,甚至開發和運維都是一個人(一組人),DevOps的提出是為了抹掉開發和運維之間的分界,改善團隊的協作關系。不過這里要重點提及:DevOps不僅僅是開發和運維,其實測試也是其中的一部分;完整的敏捷開發,連需求都是要變成一個團隊的。
那么是不是把開發、測試、運維人員都放在一個團隊中,就完成DevOps了呢?當然不可能這么簡單,DevOps還需要管理和技術手段進行輔助,比如:
敏捷管理:在產品(項目、需求)的提出、需求分析、設計、開發、測試階段主要采用敏捷開發的方法論,確保快速迭代和提高代碼質量;
持續交付:在開發、測試、部署環節,采用持續交付的方法,自動完成系統的發布和升級工作;從技術角度來說,容器、微服務、持續集成都是DevOps不可或缺的技術手段;
我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。