最佳運維實踐瞭解一下

序言

     不少事,你不努力一下,你都體驗不到絕望的感受。。。哈哈,越努力越絕望怎麼辦。。。怎麼辦。。。哈哈python


    告警治理暫且告一段落,最近一週都沒告警,感受有點心虛。。。心慌慌。
mysql


    時間多了,就容易思考,因此來說述下最佳運維實踐。
nginx


運維的根本目標

     運維的根本目標用一句話總結就是:無運維。不管是從系統的角度來看,仍是從技術的角度來看,仍是從最終用戶的使用來看,就是無運維,系統自動故障自愈,全部的技術的產出也是爲了最終系統無須運維,從客戶的角度來看,運維就是透明的,無須關心。sql


運維的我的發展

    從我的的發展來看,其實主要的是技術運維,由於技術是最終的生產力,不管你使用的是python,仍是各類中間件,nginx,httpd,tomcat,仍是各類緩存,varnish,squid,仍是各類數據庫,mysql,pg,仍是各類存儲,塊存儲,對象存儲,文件系統存儲,最終的目標都是構建一個可靠性強,可用性高,可擴展性強,安全的,成本低的,規模化的系統不管你學什麼樣的技術,你最終是爲了運維繫統
數據庫


    那麼從我的發展的角度來講,最大的價值在於哪兒?最大的價值在於能解決一切問題。不管是客戶反饋的問題,仍是系統的事件告警故障,整體來講,沒有人會關心你採用什麼手段來解決這個問題,每一個人關心的只是你花費了多少時間來解決問題,不管你是本身去動手解決,仍是調動資源來解決,每一個人看的只是結果。
後端


    從我的發展的角度來講,最大的難點在於哪兒?最大的難點在於如何解決一切問題。你瞭解系統多少,你能掌握系統的請求,輸入,輸出,系統的每一個組件的功能,系統的數據流,數據的存儲,數據流向的日誌,調試技巧,那麼多的項目,那麼多的產品,那麼多的組件,那麼多的模塊,那麼多的進程,那麼多的線程,你如何用最少的時間投入達到最好的效果,這。。。纔是你須要考慮的問題。
緩存


    從我的發展的角度來講,起始點在哪兒?運維的起始點是對於新系統的好奇之心,想探尋數據的流向,想搭建測試環境,模擬故障。。。而對於大部分的運維來講,死在搭建測試環境的一步就太多了,沒有現成的測試環境,搭建就是一件很痛苦的事,各類依賴,各類安裝包,各類環境變量,各類後端服務,各類資源,在搭建上面就耗費了太多的精力,而搭建好以後,如何來模擬各類故障進行測試。。。模擬的場景,模擬的請求,模擬的測試。。。你如何來使用測試方法來模擬生產環境的故障,而後總結處理故障的邏輯,這個其實才是最根本的起點。你搭建了一個測試環境,本意在於磨礪你所掌握的理論,你所掌握的技能,可是,若是你不進行各類測試,不進行各類折騰,等到了故障的時候,你仍是懵逼,如何在保持壓力的狀況下進行故障問題處理,成了一個最重要的素質
tomcat


    其實看運維的最佳實踐,也就是找出運維的複雜點在哪裏。運維最複雜的地方在哪兒?每一個人的場景不同,有的人多是不瞭解原理,出現問題用搜索;有的人可能記不住實際指令,每次出問題都要看一下man手冊;有的人就牛逼了,出問題了過一下子就自動好了。
安全


    可運維的系統很重要,如何去構建可運維的系統,那就要靠不少人的努力了。
架構


    一句話總結我的發展的運維的最佳實踐:瞭解理論--搭建環境--模擬故障--解決問題--造成通用的解決問題的思路--繼續模擬故障---優化--識別瓶頸--自動化運維


    若是隻是單純的依賴測試就能獲取運維經驗,那麼整個就不算是運維了,由於運維仍是須要腦子的,突如其來的問題,各類突發性的事件和故障。


從客戶角度看運維

     傳統運維是沒事要運維幹啥,有事運維幹了啥。。。沒事的時候是多餘的,有事的時候是抗鍋的。被動型運維是至關累人的。


    客戶看運維,想客戶之所想,急客戶之所急。能站在客戶的角度思考問題這個就是最大的價值了。


    在這裏,你所用的技術多是你所知道的百分之二十都不到,由於客戶根本不看技術,你是否可靠?你是否值得信任?個人核心系統交給你,我是否能夠依賴你


    信任,那麼如何和客戶創建信任?。。。這個問題就要留給你來思考了。。。


    客戶關心的無非是幾個問題:

    一、 系統每週的運行狀況,例如SLA指標,事件告警故障數量

    二、 系統的資源統計,例如分佈式存儲,還能存儲多少數據,剩餘空間多大,是否須要擴容

    三、 故障影響範圍,故障報告,本質緣由,是否完全解決,如何預防

    四、 新上線一個系統,有什麼好的建議,如何規劃,如何作標準規範

    

    有的時候,技術人員去彙報,去開會,看起來很浪費時間,不。。。就是浪費時間,可是卻有巨大的價值,有的時候就和八二法則同樣,用最小的成本能換取最大的回報。可是,做爲技術人員,通常會用最大的複雜度去解決問題,由於。。。這樣才能秀一把技術。


    主動巡檢,主動創造故障解決故障,這叫故障演練。。。。主動測試系統,主動進行高可用性測試。。。破壞系統,而後修好系統。。。如何主動纔算主動,這又是一個度的問題,影響了生產的服務,主動抗鍋!!!


扯淡

     努力了纔會絕望,其實。。。絕望也是對思想的一種磨礪,磨礪你的心裏,看看你的心裏是否堅決


    其實對於技術過分執着也不是好事,所謂的精通,如何纔算精通?會搭建環境?會處理各類突如其來的故障?瞭解各類原理和配置?看源代碼?分析每個數據塊?無底洞。。。


    何爲完美的體驗???


    用最複雜的架構解決最簡單的問題,用最早進的技術解決最簡單的問題。。。沒有人,沒有時間,沒有精力。。。。其實又要扯到權衡上面,秀技術,要的就是複雜;而合適纔是最重要的。。。。慢慢的演進而後就變成了複雜,而在演進的時候。。。又要保持簡單。。。。


    複雜性。。。複雜度。。。呈線性增加。。。。懂的越多,複雜度越高,愈來愈難以觸及完美的境界。。。心境不圓滿,不能突破這個境界了。。。。


    浴火重生的方式老是最難的一種方式。。。我能怎麼辦,我也很無奈啊。。。還好,我躺在牀上磨礪個人思想。


    天生的問題解決者,這道難題。。。仍是頗有難度。。。。無風不起浪。。。。浪不起來。。。。風又不來。。。


640?wx_fmt=jpeg

    歡迎留言,談談你認爲的運維的最佳實踐是啥。。。。歡迎探討


     歡迎留言,談談你認爲的運維的最佳實踐是啥。。。。歡迎探討