1. 程式人生 > >有一種能力叫“運維”

有一種能力叫“運維”

這是對一個問題的迴應——“中小(網際網路)企業真的需要運維麼?”

很有意思的現象,這個問題的提問者有時候包含了運維人自己。我一直用這樣的回答來回復提問者“你可以不需要運維人,但不能不需要運維,運維是一種能力,它可以帶來業務價值。

很多人都是從需求——》研發——》測試——》維護過程來看運維的,中小企業認為自己的IT不復雜,可以不需要測試或者運維,因為根本不知道他們能帶來什麼價值?

這個時候你都是把測試和運維看成某類具體的角色了,你認為可以不招聘相應的人,但是你不能忽略測試和運維的作用。今天不把傳統企業納入範疇,只對網際網路+型公司進行討論。

從業務的驅動力來說,網際網路+型的業務速度越來越快,版本每日多次迭代。在強調業務驅動力的時候,很多公司看到了業務功能的實現,而忽略基礎能力的構建,從而本應工具解決的問題,最後引入了大量的人來解決,弔詭的是,在軟體領域,人的增多,並不代表生產力的提升。

也本應在一定的階段,引入工具對IT流程進行優化,此時可以帶來更多的時間和人力成本的節省,但依然忽略了。我認為這是過分強調業務驅動導致的,還有一個技術層的原因。

說到技術層的原因,我們都知道,隨著業務越來越複雜,產品線會裂變越來越多,此時的組織複雜度就出來了,各個團隊的行為會逐漸變得自主。在團隊規模小的階段,組織內部的資訊流依然還是有序的,因為是少量人控制,可以通過面對面溝通解決。但在很短的時間內,產品迅速增多,資訊流變得無序了,出現無規範/無制度/無平臺的狀態。技術層的原因,離散組織缺少中心控制節點。

那針對以上問題,測試/運維到底能起到什麼樣的作用呢?

強調業務驅動沒有錯的,但過分強調業務驅動則有錯,沒考慮業務驅動背後的其他因素。其實測試和運維也在強調業務驅動,但和研發所focus的業務驅動有很大的差別。

研發強調的是業務上的功能實現,而測試運維分別強調更好的功能實現,什麼是更好?如功能可測試性,功能的完備性,可維護性,穩定性等等。從專業分工的角度來說,測試和運維長期了以來形成了大量的方法論用於支撐軟體研發的過程,確保高質量交付,不應該忽視長期形成的經驗。

強調測試/運維的早期參與,是一種測試/運維驅動研發的軟體方法論。舉個簡單的例子,測試在早期不參與研發需求評審的話,測試只能成為研發的附屬過程,研發交給你什麼,你測試什麼,此時它就是一個成本中心,而不是價值中心,對於運維來說也是如此。可測試性和可運維性可以對軟體的設計提出很多合理的要求,從程式碼的可測試性到整體架構的可運維性等等。

回到技術層面上——離散組織缺少中心控制節點。為什麼運維可以成為中心控制節點?成為中心控制節點的運維到底還能做什麼?接下來就是其他的組織設定和流程設定的問題了。

為什麼運維可以稱為中心控制節點?從交付鏈條來說,所有的服務交付都最終到運維這邊,運維離使用者最近,能夠第一時間獲取服務的使用者使用狀態;其次生產環境的集中管理一定是運維來保證的,運維能夠建立起統一的技術管理規範。

針對第一點,運維及時的獲取服務狀態及後續的服務狀態更新之後,可以去反向驅動研發進一步的服務優化,這個優化有業務上(體驗及服務),也有非業務上(效能及成本)等等,這是運維的驅動力

針對第二點,這是運維的核心控制力,建立起統一的技術標準規範,在公司內所有產品線統一推行,讓大家方向一致,減少混亂帶來的無謂消耗,這是運維的控制力

此時需要做一些變化,把運維的職能從研發裡面剝離出來,建立一個統一的中心化運維組織。我把DO關係分成三個階段,

  • 第一個階段:DO混合,大家的職能交織在一起,運維是研發的附屬過程,運維的職責就是資源交付;
  • 第二個階段:DO分離,研發和運維走向分離,一些維護的壓力逐漸浮現出來,專業的運維如何更好的做好運維,定規範,建平臺,收資料等等;
  • 第三個階段:DO融合,注意不是混合。融合是指一種能力的流動,運維的能力已經是研發過程自然而然考慮的一部分的了,另外這種運維的能力隨著平臺/規範/流程的完善,此時研發都可以具備真正的運維能力。

成為中心節點的運維到底還能做什麼?其實能做的事情就很多了,定規範/建平臺/收資料等等。規範可以分多種,線上運維的規範,持續交付過程規範,涉及環境管理/流程規範等等,還有安全規範,事務驅動的規範(可用性驅動研發)等等,很多很多。

平臺裡面涉及到自動化平臺,覆蓋各種運維場景,可以是工具化的運維場景,一些配置管理工具就能解決的;還有一些複雜的業務場景,這個需要專業化的運維管理平臺來完成的等等;資料驅動運維,驅動DevOps,需要採集大量的技術運營資料,這個地方有一個爭議,運維是否要覆蓋產品運營的資料分析場景?我倒不建議,聚焦在自己擅長的部分,當然可以不阻止這個想象力,注意監控平臺可以理解成資料體系的一部分。

最終通過平臺來沉澱規範,能力通過平臺來表達,從而實現運維就是一種能力。基於能力的運維交付,才是真正的運維

最後我想說,有一種能力叫 運維,而不是有一類人叫運維,對於中小企業甚至是初創企業,你可以不要運維人,但你不能不要運維的能力,因為它可以讓公司更好,業務發展更快,為什麼不呢。不知道你怎麼看呢?

作者:老王 來源公眾號:網際網路運維雜談(微信ID:waynewang_ops)