閱讀671 返回首頁    go 阿裏雲 go 技術社區[雲棲]


敬畏生產環境

生產環境即是運行用戶正在使用的係統環境。有時,一些粗心的用戶會把他們的生產環境交給我們,希望我們來進行變更操作,如部署Agent等。但我們實際上並不清楚這些生產環境有多重要,有時也不清楚我們的變更操作有多危險,其中一些操作很可能導致機器宕機,出現重大生產事故,讓用戶受到重大損失。
所以我們對生產環境需要敬畏,本文羅列出一些禁忌操作,需要大家一定要避免的。

禁忌操作

替換係統文件

係統文件包括:
1. 動態庫文件:/lib、/lib64、/usr/lib下的文件,尤其是libc.so、libssl.so等文件
2. 係統命令:/sbin、/bin、/usr/bin下的文件,包括不能替換其下的軟鏈接
3. 係統程序:/opt/jdk等
4. 係統配置:/etc

係統文件的替換隱含了極大的風險,以下是運維中發生的一個實際故障:

在部署Agent時,由於執行時報libc.so相關的錯誤,操作人員就從其它機器複製了一個libc.so到目標服務器。

由於libc.so替換,導致依賴libc.so的所有程序,包含ksh、sshd等係統程序均無法啟動。

由於這台AIX服務器已經幾年沒有重啟過一次了,經過協調,大家在承擔極大風險的情況下,使用光盤引導並恢複libc.so後才恢複了係統。

部署或升級係統包

包括:
1. 部署新版本的libc、gcc、openssl等係統包
2. 執行yum upgrade等升級命令

這些操作與替換係統文件的風險是一樣的。以下也是一個我們操作導致的實際故障:

在部署Agent需要的ipmitool命令時,由於需要一些依賴的rpm包,操作人員就將相關的包複製到目標機器並部署。

由於包中包含了ssl等係統包,導致目標機器上的跳板程序(依賴舊版本ssl包)無法啟動。

最後經過商務協調,用戶自己重裝了跳板機來恢複。

此案例中,盡管操作人員已經在公司內部作過同樣的測試並部署成功,但依然在生產環境中導致了故障。因為生產環境確實有其曆史,其中的細節是我們無法在短時間內了解並評估出風險的。

所以對生產環境要敬畏。

rm -rf 命令

這個操作的危險性在於,有時我們會疲勞駕駛,我們以為我們在做什麼,但實際上隻是機械性的快速敲打鍵盤,結果一不小心就輸入了:

rm -rf / <回車>

這樣的操作。
2017年初的Gitlab誤刪300GB的事故,就是疲勞駕駛rm引起。

重啟係統

在生產環境中,看似無害的重啟係統,實際上風險很大。最好清楚這些係統的實際情況,並與有關方麵溝通。

提倡操作

不使用root用戶

拒絕他人提供的root用戶,可以杜絕自己背鍋的可能性。不使用root用戶,就避免了無意的禁忌操作。

使用綠色軟件

運維程序不同於生產係統,它是輔助係統,所以我們部署的運維產品或工具,都應以綠色軟件的思路開發與部署,避免對係統產生變更。

最後更新:2017-10-29 14:33:22

  上一篇:go  電腦回收站文件清空了免費數據恢複方法教程
  下一篇:go  如何幫助一個菜鳥