《首席架構師白鱔:運維的進階與哲學之道》要點:
本文介紹了首席架構師白鱔:運維的進階與哲學之道,希望對您有用。如果有疑問,可以聯系我們。
本文根據白鱔老師在〖2016 DAMS中國數據資產管理峰會〗現場演講內容整理而成.
大家好,今天想跟大家談談關于DBA怎么去考慮哲學化的問題.前段時間和朋友聚在一起時也說到,十多年前的很多DBA現在都不再干這行了,很多后面都變成哲學家了.為什么這么說呢?因為很多DBA后面都轉去做架構師了.
其實在十幾年前,曾有人用這樣一句話來形容DBA:“你們DBA做優化就是盲人摸象”,當時我覺得這句話很不舒服,因為作為一個DBA來說,我認為這個職位在系統優化中間的價值是很大的.但隨著這些年我更多地接觸到一些架構的問題,慢慢從架構方面去考慮問題時,我發現,盲人摸象這種說法確實不為過.懷著這樣一些想法,今天跟大家分享《運維中的哲學問題》.
首先,我想說的是——不想做哲學家的DBA不是好架構師!這也相當于前面我所提到的,為什么做DBA做到最后會變成哲學家呢?
就拿考慮系統的問題來說,可能剛剛入行的人,他會就著某一個東西去考慮,比如說,DBA的話可以就著數據庫去著手.但隨著我們的接觸面越來越廣,處理的問題越來越復雜時,我們就可能慢慢會從系統本身去考慮,這種情況下,有時候我們認為很多理所當然、正確的東西進入哲學范圍后會發現它不對,或者不一定對,甚至是完全錯誤的.
包括像我,大概在十年前寫的《Oracle RAC日記》這本書,前段時間我又重新把這本書翻了一下,發現里面很多的案例和關聯都是錯的,甚至有些案例當時的處理模式、方法是不對的.但真的不對嗎?其實不一定.因為在當時它確實解決了問題,而且很多解決方法現在大家也在學.但是呢,如果轉而從架構的角度去考慮,有可能當時我們的處理模式不是最好的,并沒有把根本的問題解決掉.就像我們得了感冒,醫生給你掛一針水,馬上好了,但是如果說這個人總是感冒,總是隔三差五地去掛水,這肯定不好,必須要找到感冒的根源:是體質的問題還是其他什么問題,偏寒還是偏熱,要用中醫的療法.
以前我們在內部也經常開玩笑,說當某個人考慮問題已經考慮得比較玄了,那他就已步入哲學家的行列了.如果你現在也開始學會辯證地看待問題,那么恭喜你,你已提升了一個檔次,并成功晉級了.由此看來,不管作為DBA也好,還是運維人員也好,我們做系統運維,運維能力的提升都是分階段的.
我初步地把它總結為四個階段.
第一個階段為精益化,即我們把一件事情做到更好,這也是一個專業化的問題,爭取在這個領域把事情做到最牛逼.
但是,光有精益化是不夠的,還需要把它標準化.比如說,以前我們給用戶做巡檢(這是DBA接的最多的活),不同的人去做巡檢,效果是不一樣的,因為不一樣水平的人,能夠發現的問題不盡相同.后來我也一直在考慮,硬件、小機、存儲這些環節的巡檢都已經標準化了, 甚至可以用軟件來實現.但是數據庫的巡檢能不能標準化呢?
從這件事情我們可以窺見到標準化的重要性.
一旦能夠標準化了,下一步我們就可以考慮自動化了.現在,我們很多企業都在談做運維自動化,但如果你企業運維的各種工具、知識體系都不標準化,你怎么做自動化?這種情況下做出來的自動化也是虛的.在這個過程中,企業采集了大量指標,做了大量的監控告警,但每天幾百上千個告警跳出來,根本解決不完.這種不是在做自動化,而是給我們的運維人員添亂、添堵.所以說,我們想做自動化之前,一定要考慮運維標準化,當我們能把運維的一系列工作包括采集、分析、監控、操作等全部標準化,自動化的問題也會迎刃而解.
自動化完了下一步還需要做可視化,為什么呢?這是做完自動化以后必須做的一個環節,它既可以把采集到的大量數據通過用一種可視化的方式表現出來,也可以很好地把一些指標向運維人員展示,可以一定程度解放運維人員,降低運維的成本.但是在做可視化的過程中,我們不能再走以前的老路.
以前我們用到的運維自動化工具,都是一些商業軟件,并且這些商業軟件通常是基于網管式的去做,這些網管軟件面面俱到,什么都能干,能夠采集大量的信息,但是它不夠專業.我舉個例子,比如說現在我對一個系統,這個系統里面有12個網絡設備,20來個服務器,不同的人看這些東西,他的關注點是不一樣的,但是專業的網管軟件只能采集一套數據.因此這里面就涉及到在引入可視化的時候,不單單要把數據展示出來,還要做到場景化的運維.對于哪怕同一個拓撲圖,網管人員、安全人員和業務人員會根據自身關注的指標體系,看到不一樣的東西,即不同的人關注不同的場景.
最后,當我們把前面所有步驟都完成了,后續就可以做智能化了,也就是引入大數據分析.通過大數據分析,我們能夠發現以前很多關注不到的問題,一些以前我們知識能力達不到的分析層面.就像前段時間的阿爾法狗,有很多我們不知道的定式它也能走,阿爾法狗的出現可能會對未來下圍棋的定式產生很大的影響.同時,自動化的分析對我們的IT經驗、運維經驗來說也是很好的補充.
那么,作為運維來說,運維里面的重點是什么?其實很樸素,我把它總結了幾點:
什么叫服務目錄?很多企業可能連服務目錄都不存在,一個IT部門要干什么活,是圍繞著服務目錄去展開的.哪些最重要,哪些不重要.如果你說任何業務我認為都是最重要的,這確實,但不現實.
區別好哪個系統是四個九,哪個系統是五個九.一定要跟業務簽訂服務級別協議.
不能為了運維而去運維,甚至通過運維去催發出一些新的事,這是不可取的.
標準化工藝是相當重要的.以前我們也經常會碰到,同樣一套系統,有多個服務器,里面配置的參數都不一樣,這些都是不規范的做法.
隨著運維的規模越來越大,場景越來越復雜,我們一定要用一些自動化工具作為輔助手段,光靠人力是愈來愈難滿足企業的需求.另外,在進行分析的時候,系統到底健不健康、存不存在問題,要以運行基線作為依據.
當出現問題時,通過疑點跟蹤,發現有價值的問題.
任何一個疑點,都必須閉環,這也可以作為管理的一個目標.
不同階段的運維人員,分析方法、思路是不一樣的.
首先,剛入行的,往往會根據現象去分析問題,可是如果碰到一些“超自然”現象就束手無策了.其實不存在詭異的“超自然”現象,任何現象都是有根源的,只是能力認知范圍上的不足.
隨著能力的提升,我們可以通過抓到系統運營的一些指標、基線去分析問題.但是,光是有指標和基線也仍然不夠,假設我們判斷一個系統是不是已經達到它的負載極限,是需要根據系統容量來判斷的,比如說這個存儲能提供多大的IOPS,超過多少額度顏色會上升,運維人對于這些容量指標體系必須有所了解.
另外,如果再往架構師方向發展,就會從整體角度來思考,辯證地看待問題.達到這一地步的話,我們可戲稱這人“成精”啦,因為他已經超脫了普通的一種運維范疇.
舉幾個比較典型的點:
下面進入本次分享的重點,運維中的哲學問題,到底包括哪些問題?
就像客戶經常會問,這個東西到底有沒有問題,能不能100%地保證.這個其實很難保證,對運維人員來說,我想應該沒有人敢這么講.敢于承認有問題也是對自身能力的一種認可.
不怕有問題,這是一個更高的層面.即在系統架構上,哪怕出了問題,也可以頂起來.不怕有問題是對系統架構上的自信.
對于運維人員來說,最怕的是什么呢,莫過于總是想通過我的能力去確保系統不出問題.一個人再有能力,始終是有限的,而架構的保障正是彌補人力不足的一種最好手段,而且很多時候架構優化的投入成本并不大,在這種條件下,我們沒有理由去放棄架構而選擇人力.就算整個團隊24小時輪流值班,早晚也撐不住.
最后又繞回來了,有些東西不是絕對的,能力當然重要,架構也很重要.
在這里,我講一個跟這有關的問題.我們可能會經常出現誤操作,導致數據被刪、數據丟失,這說起來不是一件很Low的事情了.像前段時間Salesforce系統丟了5小時數據,就是因為操作人員的低級失誤,所以說誤操作是不可避免的,我們只能盡量采取一些措施來減少發生.
對于DBA來說,最好的防御就是一方面提升自己的能力,養成良好習慣,通過工具防誤操作,另一方面在一些關鍵操作上,實行雙人審核.
對于架構師來說,設計合理的架構則是最好的防御.當數據誤操作時可以快速地恢復.
什么情況下我們能做到0丟失?不同人有不同的答案.
領導可能會說,最好能做到不丟失數據.一些解決方案廠家,他們可能會說:用了我的系統、我的產品就能做到數據不丟失.那么作為DBA,我們可能希望通過自己的技能或方案來做到0丟失,但是架構師考慮的角度就不一樣了,他首先考慮到我要做到數據0丟失,成本是什么?我的系統需不需要做到0丟失?大家可能認為,對銀行來說很需要數據研究師,但我和很多商業銀行的IT主管交流時,他們認為丟一點數據沒關系,只要不錯就行了.
首先,我們必須明確運維自動化的目的是把運維人員從繁瑣的運維監控工作中解放出來,但實際上“運維自動化程度越高運維人員越忙”卻是現在的普遍認知.正如前面所說,自動化運維平臺能夠發現更多的事件,呈現更多的數據給運維人員,可這些問題是不是值得我們馬上去處理,這需要一些分析和篩選.
另外,我們在做基線分析的時候,如果定了一些不合理的基線指標,就會導致告警數據越來越多,上述狀況都會導致我們的運維人員越來越疲于奔命.比方說,我們定義CPU超過90%就會報警,但其實超過90%是不是就是一個必須解決的問題呢?不一定,需要根據各自的實際應用場景去分析.
所以在這一塊,我們的運維自動化平臺不只是簡單監控就行了,還需要大量運維經驗的人才.沒有運維經驗的自動化平臺就是個虛的東西,沒有任何價值.
創造力是企業競爭力提升的源泉,但是反過來,標準化是企業長期生存的依靠.光有創造力、天天有新點子,卻不能沉淀到企業里面來,無法成為企業的血液,這個企業也沒辦法把自己的創造力轉化為生命力.
對于運維而言,創新和標準化是螺旋上升的關系,既要有創造力,又要標準化,這兩個相輔相成,不能脫節.
再者,我們在企業里是一個團隊,創造力再強的人也必須遵循標準化的管理要求,反過來標準化不能束縛死了,阻礙運維創新.因此,從企業選擇運維人員的角度看,穩健型IT更需要標準化,創新型IT更需要創造力.
對DBA來說,一般發現問題可能會慣性地去找一些SQL的問題,通過SQL優化可以很快把難題解決掉.SQL優化的作用很明顯,但是反過來,我們也常常發現SQL優化會引起更深入的問題.
從運維的角度,我們再看回前面“DBA做優化是盲人摸象”這句話,會覺得不無道理.因此,我們在做優化的時候必須通盤考慮整個基礎架構,而不僅僅是一個面.
那么,一個優化項目必須具備哪些成功要素?
在我看來,必須囊括扎實的客戶調研、深入全面的分析和對IT基礎架構的充分了解這三個要素.尤其是對整個架構的把握,如果你不了IT系統架構,你就只能從SQL層面去優化,永遠是治標不治本.
最后,我們總結一下本次分享:對運維來說,沒有絕對的最好,但不妨礙你去追求最好;沒有絕對的正確,但不妨礙你探索正確的道路.人才是智慧的源泉,再強的自動化運維平臺都需要高智商的運維人員.
講師介紹 白鱔
文章出處:DBAplus社群
講師完整PPT:http://dwz.cn/3OMbQG
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/4471.html