devops出來沒幾年,不少媒體又開始宣傳aiops,實際上,據筆者瞭解,devops落地得好的公司並很少。爲了實踐devops,不少公司爲此作了不少工做,好比:
一、把部門名字變了,好比之前叫運維中心,如今叫devops中心,之前叫運維部,如今和測試部合併成了devops部,讓開發,測試和運維坐在一塊兒辦公。
二、引入了不少devops工具鏈或者流水線,最出名的好比jenkins pipeline,或者其它一些商業CI/CD工具
三、引入了配置管理工具,好比disconf,或者基於某開源軟件好比consul自研配置中心
四、引入了全鏈路跟蹤工具,能夠監控到rpc級別的問題nginx
OK,即使作了這麼多,有時候仍是感受devops的效果不是那麼理想,好比:
一、發佈不夠流暢,常常出問題
二、遇到線上業務問題,每每研發,架構,運維三方出馬也難以快速定位。服務器
自動化運維不等於devops,可是自動化運維作很差,devops必定作很差。而要作自動化,必定要作標準化,標準化包括方方面面的內容,好比配置標準化,以一個3節點mq集羣的配置爲例:
第一種配置方法:
jms1.url=tcp://10.0.50.100:61616
jms1.username=xxx
jms1.password=xxx
jms1.maxconnections=10網絡
jms2.url=tcp://10.0.50.101:61616
jms2.username=xxx
jms2.password=xxx
jms2.maxconnections=10架構
jms3.url=tcp://10.0.50.102:61616
jms3.username=xxx
jms3.password=xxx
jms3.maxconnections=10運維
第二種配置方法:
jms.url=tcp://10.0.50.100:61616,tcp://10.0.50.101:61616,tcp://10.0.50.102:61616tcp
每一種配置類型,都須要被標準化,當架構決定用某個mq的時候,模塊如何配置鏈接mq就須要被標準化,而不是等模塊上線了再去作規範,這也是不少公司實施devops效果很差的關鍵之一,沒有一個強有力的組織在事前進行規範定義,或者說有規範,但推行力度遠不夠。ide
另外,若是研發和運維仍是按照原來的分工模式,好比研發專一寫代碼和修bug,運維專一基礎環境維護,好比網絡,dba,服務器管理等,這樣子devops多半也作很差,任何工具或者流程的執行者都是人,不能繞開人的做用,所以,筆者建議:
一、研發日後退一步,要熟悉本身開發的模塊的運行環境,好比網絡,dns,cdn,nginx,es,kafka等
二、運維往前進一步,要熟悉各業務場景以及對應的數據流,如此不只能強化線上問題分析能力,還能更好地支持業務運營,畢竟,dev和ops的緊密互動纔是devops的核心理念。工具