了解IT技術
老九你最好的選擇

做運維要考慮的事

運維是在于一個量
最少的人,最多的事 并且保證業務
比如說google的一個數據中心,只有幾個人在維護
運維不能直接的創造價值,而是可以變相的節約成本
你節約的成本x你的意識x你的覺悟=你的價值
—————來自 98素辭

一.服務來說:

1.對服務版本選擇,要和開發溝通,如果開發用的php語言,那就問他寫的代碼是哪個版本的,不同版本可能不兼容一些語法,會導致出錯

要選擇穩定版,太新的可能會導致一些bug,從而崩潰或服務出錯。選擇新版本唯一的目的應該是需要新的功能,否則老的版本最穩定

服務部署后要進行簡單測試,讓服務可以照常運行才可以,不能裝完就算了。對于java這種替換版本,1.7升級到1.8可能導致某些依賴1.7的JDK,這都要去考慮清楚。

當服務運行后要注意他的啟動用戶是什么,可能用戶不對造成無法讀取文件。比如nginx啟動時www用戶,他就沒法讀取/data里找html發送給用戶。

服務監聽的,ip,如果有公ip,就不能監聽所有。

數據庫如果要和庫,要考慮是否有表名字重復。如果公用一個redis進行緩存,要考慮寫入的數據是否沖突。

2.根據業務進行結構分析,是使用nginx還是apache,選擇前填寫調研文檔,進行測試,寫測試文檔和部署,使用文檔

3.根據業務量進行機器的數量選擇還有配置選擇,最好將配置做成套餐,比如將tomcat機器,每個都是8核16G內存,硬盤100基礎,這個作為一個套餐來創建虛擬機或者云機器選購。

4.根據需求進行主從,或者負載均衡選擇,可能還要選擇備份容災,cdn等等

5.對服務的日志進行分析,比如ip來源地址,pv,uv

6.對服務和系統進行優化,優化前和優化后差別很大,性能可以差一倍。

7.安全防護,不只有ddos,還有登陸問題。多關注軟件可能暴露的一些安全問題,或者linux本身的系統問題

說不定謀個nginx版本突然說有問題,你還沒關注到,那就很容易被黑掉

8.網絡問題,很多時候都是這樣,某個地方訪問慢,但其他人訪問不慢,很頭疼,需要抓包再逐步排查

9.性能問題,可能最初還好。隨著壓力來臨,數據庫可能有慢查詢,需要進行排查和解決。網站可能有部分用戶訪問不了,或者訪問緩慢,都需要去排查

這塊是最難得,需要各方面知識,如果遇到突然訪問不了,那就回想之前做了哪些操作,再針對性排查

10.關注版本問題,像nginx1.9將支持tcp的4層代理,而不僅僅是之前的7層了,這樣性能會提高很多,對公司業務很有幫助

11.優化,不僅是系統的內核方面優化,還有服務的配置文件優化,這點需要長久深刻的理解才行。默認的都是最標準的,但是可以根據情況舍棄一部分的東西,來加強另一部分,達到適合業務。

比如nginx做反向代理,可以優化內核參數,快速釋放鏈接,超時時間配置短一些,這樣可以處理更高的并發。但是如果提供php等服務的話,就要配置長一些,來達到穩定的效果

12.要考慮整體結構情況。比如nginx做負載均衡,可能抗壓能力很出色,但是后面的數據庫只有3臺,導致數據庫帶寬被打滿,也會造成訪問不了的問題

二.發布來說:

1.如何發布,是手動還是自動,如果機器多了,需要jenkins之類進行自動發布

2.容災問題,代碼如果發布失敗,需要迅速回滾,不影響問題,發布的時候也不要所有節點一起發布,挨個節點發布

3.還要對老的代碼進行備份,防止未來可能突然發生的問題,需要回滾

三.整體來說:

1.運維并不是成天都是忙著去排錯,大部分時間都是空閑的,這時候就需要自制力去學習東西了

2.運維的價值=你節約的成本 x 你的意識 x 你的覺悟

運維并不能直接搞出價值,但是可以優化,調整結構來省錢,不出事就是最好的價值。同時分析日志能創造隱形的價值給公司。

3.優化現有的方式,公司在成長中,肯定會有很多隱患,比如最初是用一個腳本來批量操作10-20臺機器,后面公司擴充有100臺機器,就要用ansible來批量操作了。這些都需要自動化,后面還要自動發布,壓力大來自動擴容,報警cpu不夠自動調節緩解當前機器壓力等待

4.服務也不是照著百度吧配置文件放上即可,像負載均衡,可能調度算法填寫的不對,造成一臺壓力大,一臺壓力小。還可能服務占用一個cpu壓力大,其他都閑著,這些都是不行的。

5.文檔要多寫,比如資產文檔,那些機器的配置,還有密碼表,服務連接文檔,部署文檔,維護文檔都要寫,文檔的作用一個是自己用,另一個是等你離職或者新員工加入,他們可以快速來維護。

6.部署一個新服務,必須要測試過后才上線,而測試不是安裝即可,需要找數據進行深度測試,模擬線上環境。

7.謹慎甚微,任何操作琢磨幾遍再打,不要隨意就打了,比如重啟線上nignx用reload,否則當前業務中斷了。

8.監控很重要,可以查看流量,某些服務使用內存是否超標,沒有監控出了事都不知道,監控不僅要監控服務的端口防止掛掉,還要他深度的使用,比如mysql的慢查詢,命中率,主從狀態等等。

9.體系,運維最好制定一些發布流程,虛擬機申請流程,巡檢流程等等。巡檢也是很重要的,云服務器也要定時看看是否磁盤滿了,是否要續費等等。否則哪天出問題,問題就大了。

10.對業務進行機器規劃,當壓力大時擴容,不大時逐步關閉

11.測試也很重要,一個服務從多方面進行測試,比如nginx從靜態頁面,動態頁面,提交數據,模擬多個在線用戶登錄訪問等等。

12.修改文件前必須備份,方便回滾,操作日志最好有審計

(1)提前積累技術,可能明白了謀個東西,優化后讓服務器性能提高2個點
(2)提前預防問題,防范于未然
(3)想多些可能性,當前結構可能文檔,但必定不是最好的

贊(1) 打賞
未經允許不得轉載:老九IT技術網 » 做運維要考慮的事

評論 1

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址
  1. #1
    老九站長

    感覺運維比開發更有挑戰性、更苦逼。。

    加拿大28預測站2個月前 (05-10)回復

老九為IT技術人提供最全面的IT資訊和交流互動

歡迎投稿廣告合作

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

微信掃一掃打賞

足彩计算器混合过关