1. 程式人生 > >六大利器讓運維工程師盡顯十八般武藝

六大利器讓運維工程師盡顯十八般武藝

以前,運維人員都是作為企業運轉幕後工作者,很難為外界所知,甚至企業內部管理者也未曾真正關注過。如今,隨著網際網路的迅猛發展,越來越多的企業管理者認識到 IT 運維服務對企業運營和發展的重要性,更高的要求將運維人員推向了前臺。

以後,運維會更多的和業務繫結在一起,根據業務來做開發和調整。那麼運維工程師需要具備哪些利器才能練就十八般武藝呢?

運維

一. 熟悉伺服器的基本知識

伺服器領域,掌握一些 Linux 作業系統的命令是必不可少的,還要至少熟悉一個內建編輯器:VI 或 Nano,至少熟悉一個發行版,比如 Centos、Debian、Ubuntu,要熟悉很多 Linux 運維的命令,以便出了問題知道如何分析伺服器的執行狀態,對 LAMP 或 LNMP、FTP、DNS、SAMBA、EMAIL、NTP、DHCP 等 Linux 可以支援的基礎協議要了解,熟悉這些協議的故障處理。

還需要掌握伺服器一些虛擬化軟體技術,以及 KVM 的工作原理,包括在 CPU、記憶體、儲存、網路等各個部分的虛擬化,最為重要的是要掌握 KVM 的各種管理工具:OpenStack、CloudStack、OpenNebula、Zstack 等。

二. 精通一門除 Shell 外的程式語言 Python

Shell 語言是從事運維工作必須要會的,一些簡單的系統管理 shell 指令碼也是很饞常見的。另一個使用到的語言就是當下比較火的 Python,程式效率高、語法簡潔清晰,可以實現自動化運維。

早在 DevOps 剛剛開始盛行的時候,Python 就是一個被寄予厚望的語言,因為大部分 DevOps 工具和實踐都需要用到 Python。雖然也有人嘗試用 Ruby 或者 NodeJS 構建 DevOps 工具,然而都沒有 Python 所構建的工具流行。

隨著 Python 在大資料、人工智慧、區塊鏈、微服務以及 Docker 中的發展,可以預見 Python 在日後的領域仍然會發揮重要的作用。

三. 掌握一種以上的監控工具

伺服器執行情況實時反饋,完全依賴有一個好的監控工具,一些常見的監控、告警工具有 Nagios 、 ganglia、zabbix、onealert 等。發現問題可以第一時間及時有效的處理,避免更大的損失。對於初學者,Nagios 簡單直觀更容易上手,但是 zabbix 介面更美觀,同時由於功能多上手也更難。對於企業的監控應用來說,兩者都能實現大規模監控,都足以滿足使用者需求,沒有絕對的孰好孰壞。Zabbix 是商業軟體開源,Nagios 是免費軟體外掛組合多。

這裡主要介紹 zabbix 的搭建環境:

要想搭建一個 Zabbix 的工作環境,需要從伺服器入手。與伺服器通訊,管理員需要使用一個 Zabbix 前端介面,與 Zabbix 伺服器和資料庫進行通訊。三個關鍵 (介面、伺服器和資料庫) 可以安裝在同一臺伺服器上,但是如果你擁有一個更大更復雜的環境,將它們安裝在不同的主機上也是一個選項。Zabbix 伺服器能夠直接監控到同一網路中的裝置,如果其他網路的裝置也需要被監控,那還需要一臺 Zabbix 代理伺服器。

四. 瞭解資料庫運維的技能

網際網路企業的資料庫以 MySQL 為主 ; 部分金融、證券、銀行、政企的資料庫會使用 Oracle; 傳統企業的老系統會涉及 SQL Server。

StackOverflow 對資料庫受歡迎程度進行了調查,下面是對不同級別開發者進行調查後的統計結果:

資料庫

最受歡迎的是 MySQL,接受調查的開發者中近一半的都使用 MySQL(44.3%),NoSQL 可能不在大多數程式設計師的需求範圍內。

前兩天,SQL Server 2017 正式釋出,已由原來固守的支援 Windows 的策略,大步地轉向了支援 Linux ,Docker 容器和 Windows 的策略。

五. 選擇一款適合的框架

運維更多的就是和業務繫結在一起,根據業務來做開發和調整。根據公司 業務需求,選好框架,比如 Nagios, Puppet,SaltStack,Docker 等,這方面的基礎搭建要求非常高,需要考慮如何做基礎構建,才能達到高度模板化、自動化等。

Docker 可以實現 Immutable Infrastructure, 可以更好的保證應用交付的一致性,尤其是對大規模微服務應用。但是對於一些傳統軟體的運維,Puppet 等工具也有自己的優勢。可以針對情況選擇,或者將兩者結合起來。

六. 注重運維過程的安全問題

 保證帳號 / 私鑰的安全

  • 最好使用加密工具儲存。比如 truecrypt,1password
  • 基於本地儲存。切勿用網盤,也不建議用 lastpass 等
  • ssh 私鑰新增密碼

本著負責的態度和原則

  • 遇到報警,第一時間處理,而不要等著他人去處理。如果無法處理,應該第一時間讓同事協助幫忙,而不要禁止報警,讓問題掩蓋。
  • 如果程式碼有問題,導致系統開銷很大,比如負載,io 等。應該第一時間和開發部門確認,要求優化程式碼。

現如今,要求運維人員會運維、懂開發、精通資料庫、熟悉網路,堪稱全才啊。未來 3 到 5 年,linux 運維 +linux 架構 +python 開發這三項技術是運維人員必備的技術。