對待運維平臺,要有「瘋狗」一樣的執行效率

jeanron100發表於2018-04-11

從去年發起里程碑來做自動化平臺的事情到現在,已經幾個月過去了。在這段時間裡,其實我的心態是很焦灼的。

其實從很多維度來說,做運維平臺的事情,從不明朗的需求和定位開始,很難有說服力。

如果用業務價值的一把標尺來衡量,那基本沒戲;如果從做這件事情的難易程度來說,很多人算是從入門到放棄;當然還可以有很多維度。

最直接的一個痛點就是純運維的開發技能不夠好,純開發的運維背景不夠,所以兩者能夠結合起來,算是一種互補,當然做這個事情要投入的精力,還有毅力,你們自己嘗試去推動體驗一下,還是有收穫的。

如果說這個事情的轉變,我覺得雖然慢了很多拍,好歹這個事情算是提上日程了,但是落地的情況雖然差強人意,相比於去年底的時候,已經有了很大轉變。這裡面要做一些工作,從上到下,從下到上。從上到下,就是從一個更高的角度來和領導談這個事情,從意念上達成一個共識,在這個地方我覺得我犯了一個錯誤,那就是如果已經有很多顯而易見的事實,我覺得就不需要去說服別人,說服領導了,但是恰恰在這個點上,我們還是要做一些推動力的,這個時候很可能就是資訊不對稱,我們認為重要,領導認為一般,結果導致了結果有了較大的偏差。

另外從下到上,其實就是事情怎麼去做,算是一些具體的分工和安排了,最糾結的莫過於沒人,沒技術了。其實這個還不算最糟糕的,最糟糕的是大家認為這個事情還不夠重要,先保持現狀吧。這種時候我很焦躁,我們的價值在哪裡。

原來是感覺有很多事情可以做,但是必要性不大,結果有了一些階段性的討論之後,基於各種因素吧,發現事情一旦有了轉機,你就會發現有很多的事情可以做,值得做了。

所以車輪子轉了起來,我覺得好歹就是進步了。

以上的可以理解是牢騷,也可以理解是一個苦逼的心路歷程。對我來說,抱怨不夠,要做解法,所以前期我的投入會很多,以至於我感覺我現在就是做運維開發的了。

運維開發以後怎麼走,我覺得我們可以看看Google的路,運維開發一個很不錯的方向:SRE

SRE的特質有兩條:

1.對重複性,手工性的操作有天然的排斥感

2.有足夠的技術能力快速開發出軟體系統以替代手工操作

SRE的經驗法則

“SRE團隊必須將50%的精力花在真實的開發工作上”。

所以開發了幾個月,平臺搭建起來了,有了初步的系統功能,有了後設資料的基本功能,做了一些基本功能的除錯和使用,我發現事情開始有了變化。

我畫個圖來表達一下。

對待運維平臺,要有「瘋狗」一樣的執行效率

這可能是我眼中的運維平臺,無論是資料庫運維平臺還是系統運維平臺,大概念就是運維平臺,我希望有樹幹(好的架構),綠葉(支援豐富的功能),果實(有產品的亮點)

結果做著做著發現好像和自己預期的不一樣了。

對待運維平臺,要有「瘋狗」一樣的執行效率

發現是這樣的情況,其實事實上比這個還要糟糕。

對待運維平臺,要有「瘋狗」一樣的執行效率

這是什麼,有時候自己都犯嘀咕。對我來說,把以前的工作全盤否定也不太公平,所以,我決定做需求和功能的收斂。期望達到的這樣的一個效果。

對待運維平臺,要有「瘋狗」一樣的執行效率

這是不是樹,首先可以肯定說是,抓住幾個亮點,有了好的設計,那麼後續的工作要銜接起來就是一個迭代的過程。

所以我希望的結果是這樣的,那些果子可能是一些目前要解決的痛點。

所以在我的腦海裡閃出了一句話,可能聽起來不大好,我決定叫它是“瘋狗一般的執行速度”。

有了前面的思考之後,我發現其實我雖然實現了一些基本功能,但是面對複雜的運維場景的時候還是有些乏力。

我又畫了一個圖,這次是個技術圖。透過這個圖我可以做很多的總結和思考。

對待運維平臺,要有「瘋狗」一樣的執行效率

假設透過左側的運維機器要訪問資料庫,有很多中路徑可做。

中間的是中控機器,也可以理解是代理伺服器,右上角的是DB伺服器,右下角的是DB伺服器中的資料庫。

比如透過運維機器來訪問資料庫,我們有很多的路徑可選。

如果面對的場景不確定如何能夠做到一種靈活的外掛方式呢。

我計劃分成幾個維度,運維機器-Ops,中控-CM,DB伺服器-host,DB例項-DB

那樣下來就可以拆分,比如ops_to_cm

cm_to_host,host_to_db,ops_to_db,ops_to_host等等

對於每一個路徑或者分支我們可以使用多種技術來實現,到時候串聯起來即可,比如Ops_to_db如果使用程式指令碼邏輯的方式,那麼sql的方式就滿足不了了,我們可以使用ops_to_host,host_to_db,或者加一層中控,ops_to_cm,cm_db來實現,

當然方法有很多種,我們來適配即可。

所以這個地方如果抽象出來,然後單獨實現,我覺得能夠解決一些通用的問題,所以在這裡我把它做概念提取,這就是一個工具管理的功能。

上面的方式其實主要側重點是接入管理,如果我們做針對性的管理,比如系統管理,資料庫管理,其實就可以做很多的細分了,這樣一來,我們拼接出的工具就好比是一個樂高玩具,堆疊出很多的玩法來。

對待運維平臺,要有「瘋狗」一樣的執行效率

我設計的一個初步的demo是下面這樣的。

對待運維平臺,要有「瘋狗」一樣的執行效率

說到這裡一定要提一下原型設計的重要性,這個也是我走過的彎路之一。

這是我最近整理的一個運維開發的流程圖。原型設計還是很重要的,如果原型設計沒想明白就開始很具體的資料庫設計,那麼後面要返工的可能會非常高。

對待運維平臺,要有「瘋狗」一樣的執行效率

這個圖建議大家好好理解一下,可能我的理解有偏差,希望你能夠提出寶貴的建議來。

所以把之前的工作如果再做一層高度的提取,我覺得要做的應該會分為兩大部分,一部分是通用平臺,另一類是業務運維支援。

所以通用模組我的想法應該是能夠普世很多業務場景,我們經過討論,目前補充的會是下面的一些通用模組。

對待運維平臺,要有「瘋狗」一樣的執行效率

而從基礎運維來說,比如資料庫運維來說,就是一些具體的業務場景了,比如:

  1. 資料庫一鍵部署

  2. 資料庫備份模組

  3. 資料庫恢復模組

  4. 一鍵搭建從庫模組

  5. 服務開通模組

基礎打牢了,後面可以做高可用,分散式,SQL稽核等等。

這些工作有些已經做差不多了,有些還沒有開始,所以要繼續我開始說過的,我們需要“瘋狗一般的執行效率”

所以這個里程碑裡我計劃要實現的就是這些基礎的事情。如果這個時候我強調這是一個很重要的轉折點,大家可能就理解了。

通用模組中我比較喜歡的是任務排程,我覺得如果做好,能做太多的事情了,甚至會激發出一些很亮點的功能,當然我現在想的很好,手底下不停使喚,所以我還是會做好規劃,看看能做到什麼程度。

這個月過去,小半年就過去了,如果還是在打口號,在提思想,我覺得就太失敗了。有句話說得好,快就是慢,慢就是快,你太慢了所以覺得哪裡都快,你太快了覺得哪裡都慢,可能就是這個道理吧。我很喜歡做事情主動能拼的同學,我不喜歡追著別人做事情,要達到初步的預期,我覺得有兩點分享下,一個是做事情需要有明確的目標和計劃,比如這個月我要實現基礎的功能,那麼我來拆分,本週,下週,下下週要做的事情。第二就是deadline,做事情沒有截止日期,結果簡直沒法提。

以上就是我的一些基本想法,很多事情聽起來確實泛泛,需要不斷的細化和梳理,要不時間花了,事情沒成,我覺得太不值了。

我的分享就到這裡。謝謝大家。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2152786/,如需轉載,請註明出處,否則將追究法律責任。

相關文章