雲時代,運維工程師如何成長?

雲時代,運維工程師如何成長?

作者 | 阿文

今天看到了一句話:運維催人老,項目人肉搞,技術含量低,前景也不好,出力沒獎金,晉升就瞎搞。這也是很多運維人的共鳴,甚至大家都在相互傳遞焦慮。

其擔憂背後的原因是隨著雲計算的快速發展湧現出虛擬化技術和容器化技術和容器編排技術,例如 Docker、Kubernetes ,以及市場上這些例如亞馬遜、阿里雲、騰訊雲這樣的雲服務商,他們把一些日常使用的運維服務都做成了 PASS或 SASS 服務。以前我們搭建一個集群,需要自己準備機器然後批量部署系統、搭建個負載均衡或 Mysql 集群、Redis 集群、搞套類似 ELK的 web 服務日誌採集系統、搭個 zabbix 監控等,得自己配置主從、做好高可用,而現在有現成的產品,鼠標點點或調用下雲廠商的 API 接口就可以批量創建,確實是方便了很多,但是這樣一來,運維人員的價值在哪裡體現呢?很多人做了一段時間運維發現沒有什麼成就感,有人就喊出了“在雲時代,運維人已經沒必要存在了”。

其實,我身邊也有很多朋友跟我說過類似的話,我一個從事運維工作七八年的朋友跟我訴苦說幹運維“背鍋有份,加薪無緣”。但是我認為在未來,運維崗位就算被取代,運維服務也仍然會繼續存在,並且會一直支撐著一個企業業務發展的完整生命週期。在雲時代,運維人員要體現出來的價值除了技術能力還有運維管理能力。

一般的運維工程師特別講究廣度而忽略深度,尤其雲計算時代這個特點會更加被放大,運維工程師在工作中可能會使用到各種服務,例如操作系統、監控報警服務、日誌收集服務、web 服務、負載均衡、各種數據庫服務等等。但是每個服務他們可能只是停留在使用層面,對於背後的原理了解甚少。

以 Linux 操作系統為例,我相信做運維的人都瞭解過紅帽的認證考試,例如 RHCE 這樣的認證,裡面會學 Linux的一些基礎知識、網絡協議、SHELL 腳本以及各種服務,例如 Apache、nginx、mysql、ftp等這些服務的搭建和配置。總是,似乎什麼都需要了解,但是也僅僅是停留在一些基礎的層面認知上。

我給單位做面試的時候面過一些持有類似 RCHE 這樣的認證的候選人,我會發現這些同學都考了 RHCE 這樣的證書,但是其實他們對於真正的一些細節性的問題根本答不上來。比如文件描述符是什麼?,為什麼 ftp 以及 http 協議不安全?那如何讓它變得更安全呢?為什麼?,什麼是 OOM?等等,我大概也瞭解了現在的一個培訓市場,很多培訓機構只是為了應付考證,大多數同學都是靠背題庫或答案靠上的證書,拿到了證書就覺得自己是個中級運維工程師了。

我們假設這些同學是認認真真的學會了整個認證體系中的所有知識點,都完全掌握和消化了,那其實在目前的市場上他也只是一個初級工程師,薪資並不會太高,因為很多企業他並不會說你學的所有技術他都能用到,可能只是使用到其中的一些非常少量的軟件和服務,那麼你是不是對這些軟件和服務的熟悉程度完全大於你在培訓時學過的呢,舉個例子,以 Linux 為例,從初級到高級,以下是我自己對於各個級別的水平定義:

初級運維,掌握 Linux 的基本命令、用戶管理、權限管理、進程管理、網絡的基本管理(例如分配個 IP或 DNS)能夠理解管道、文件描述符等概念以及各種服務,例如 Apache、FTP 等服務的搭建和基本配置,但是對於為什麼這麼配並不理解。能夠編寫一些基本的 SHELL 腳本,熟悉各種系統配置文件的含義和修改。

這個階段的可能適合一些機房 IDC 運維和雲計算的初級運維之類的角色,薪資大概不會超過 5k,一二線城市不會超過 8k,如果要提升薪資待遇,需要先達到中高級水平。

中高級運維, 在這個階段,要深入的去理解一直兩個服務的背後原理和使用方法,要做到知其然且知其所以然,把一些重要的技術給他吃透了,說實話,目前很多企業都缺少優秀的運維人員,那種什麼都會,但是隻會些皮毛的運維人員並不吃香。待遇自然上不去。也就只能停留在幹一些初級的運維工作上了。

首先,這個階段的運維工程師要掌握初級所需知識棧且編程能力強,那其實現在有了雲服務,鼠標點點就可以創建一臺服務器,那麼對於以前那種使PXE 等技術批量化部署系統的能力就稍微瞭解下就好,知道工作原理,但是雲時代要擁有較強的編程能力,能夠實現一些自動化工具,能夠使用雲廠商提供的 API 接口來實現各種自動化管理的平臺或腳本。如果有很多臺服務器,類似Ansible這樣的工具要重點掌握其使用,能夠獨立編寫 Playbook 等能力。而且重點培養自己的編程能力,學會一到 2 門編程語言,例如 Python 或 Go 等。

其次,對於某一些服務達到深入理解底層原理的程度,比如 nginx,初級的可能僅僅只是停留在表面的配置,知道為什麼這麼配置,但是並不知道如果這麼配置會帶來哪些影響,因為在很多時候,一個簡單的配置可能會引起其他關聯服務的不正常運行,舉個例子,比如 nginx 中如果你配置了 gzip_vary 對文件進行壓縮,初級的運維工程師可能知道這個功能好,哪裡好呢?他能夠給一些文件進行壓縮節省帶寬提升傳輸效率,但是在一些場景下可能就因為這個功能的開啟就導致關聯服務不能正常運行了,比如一些服務因為文件被壓縮而無法解析文件。中級運維要能夠快速的發現並解決這些疑難故障。,能夠對於不同的業務場景進行系統或應用的優化,提升併發能力等。

我認為,雲計算時代,運維人員的工作變了,從搭建和配置各種服務中得以解放,把工作重心放在提升服務的穩定性和可靠性上,這就需要建立一整套行之有效的運維管理體系和流程才能夠保證穩定性和可靠性。把複雜問題流程化,通過自動化平臺或自動化工具來讓運維工作變得更加智能和便捷,而不是像以前那麼複雜,這是新時代運維的價值體現。運維價值的體現主要體現在以下幾個方面:

  • 質量,包括服務的可用性、和用戶體驗。

  • 效率,包括髮布的效率,擴縮容的效率。

  • 安全,包括系統安全和網絡安全以及數據安全。

  • 成本,包括機器硬件的成本和網絡帶寬的成本以及人力的成本以及第三方服務的成本控制和運營成本的控制。

  • 流程,包括內部的各種業務發佈、測試、變更流程以及各種權限和資源申請流程,其目的是為了保證效率和安全以及質量

  • 技術,對於過時的技術的更新迭代、各種技術標準的制定。

舉個例子,以這次微盟事件為例,微盟使用的是騰訊雲,這其中各種權限和流程的漏洞如何在運維工作中把他扼殺在搖籃之中,這就是能夠體現出運維人的工作價值。這不論是對於小公司還是大公司的運維都是一樣的。運維人員存在的意義就在於能夠為企業的業務發展保駕護航。

不管是當下還是未來,一個優秀的運維人都應該保持謙虛好學向上的態度,不卑不亢,保持自己的技術能力和業務能力能夠緊跟著時代的發展,才不會被時代“殺死”和淘汰。


分享到:


相關文章: