DevOps趨勢下,傳統運維怎樣做才能不被"殺死"?

DevOps趨勢下,傳統運維怎樣做才能不被

DevOps人才

前言

之前提到,DevOps時代,運維還是一個必不可少的角色,但是並不是缺少傳統運維,而是缺少新型DevOps運維。看了一下反響,基本上是兩種看法,一半認同,一半反對。反對的觀點認為運維必定被淘汰,我認為這種觀點少了一個前提,那就是故步自封,待在舒適區不肯走出,就像歷史上的閉關鎖國,淘汰是必然的。但是,我認為,新型運維人才,未來的缺口還是很大的,概念一直在變,從傳統運維到自動化運維再到智能化運維,但是需求沒變,就是缺少新型運維人才。本文我們來簡單的聊一下,傳統運維轉型為"新型"運維人才,需要學習哪些內容。

編程語言

編程語言可以讓運維人員在日常工作中事半功倍,同時在編程過程中可以進一步加強邏輯化思維,保持頭腦的靈活性,並且可以在過程中能夠站在開發的角度思考問題,快速定位問題,提出合理解決方案,提高效率。

作為運維人員,必須要懂開發,並且至少了解一兩種編程語言,雖然並不一定要求有多少項目經驗,但最起碼排錯技能要具備。傳統運維階段,我們可以只要求會shell,平時寫個腳本,備份下數據,完全足夠了。但是現在這個時代,只會腳本、只會部署是完全不夠的,shell是絕對寫不出一套運維繫統的。

DevOps趨勢下,傳統運維怎樣做才能不被

2019年編程語言排行榜

上圖為IEEE 2019編程語言排行榜,IEEE Spectrum編程語言排行榜一年發佈一次,這個排行榜已經連續發佈了六年。每個開發者都需要相對流行的網站統計數據,與其他的語言排行榜不同,IEEE Spectrum可以讓開發者自己選擇參數組合時的權重,得到多樣的排序結果,所以,這個排行榜還是有一些參考意義的,Python已經連續三年位居榜首。

結合運維行業目前的趨勢來看,通用的語言包括shell,Python以及目前比較火的GO等,但是語言並不是固定的,具體到運維的某一個具體領域,需求也會不太一樣,對於平臺運維或者開發運維,Python基本是是必須的,目前也已經有越來越多的公司要求會GO,這也是一個學習方向;對於專注Nginx的運維,Lua的深入研究是必不可少的,對於偏DBA類型的運維,SQL語言要求也是很高的。

總之,選擇什麼語言並不重要,首先還是需要講究實用,能快速優雅的解決問題,語言是相通的,精通一門語言,學習其他語言也是非常快的,個人建議運維同胞在會shell的同時,學習至少一門其他語言,個人比較建議Python或者GO!

工具

DevOps趨勢下,傳統運維怎樣做才能不被

DevOps工具盒

工具是實現DevOps必要條件,但是沒有一種工具是可以在DevOps中每個階段都扮演重要角色的,工具如何選擇,取決於團隊需求,一個幾人的小團隊,選用一個及其臃腫複雜的工具鏈,雖然不是不可以,但是絕對不是最優的,而且還可能因為工具的問題導致前期效率低下,從而影響整個DevOps的推動。適合自己的,才是最好的!

本文認為,針對目前的運維行業來看,以下幾種工具是必會的:

GIT

Git 是最流行的DevOps工具之一,在軟件界使用廣泛。Git讓用戶可以跟蹤自己開發工作的進度。用戶可以保存自己源碼的不同版本,並且在需要的時候切回之前的版本。目前,兩大最佳在線的Git repo託管服務是 GitHub和Bitbucket,也有許多公司有自己的私有倉庫,比如說GitLab。

Jenkins

Jenkins是很多軟件開發團隊在走向DevOps時會用的自動化工具。它是開源的CI/CD服務,幫助用戶自動化交付流水線的不同階段。Jenkins之所以流行的主要原因是其巨大的插件生態系統。目前,它提供1000多個插件因此它可以和幾乎所有DevOps工具(從Docker到Puppet)集成。Jenkins+Pipeline+Docker+K8S,目前基本是最流行的架構了。

Docker

Docker在2013年發佈之後已經逐漸成為了容器平臺的老大哥,並且一直在更新。它是最重要的DevOps工具之一。它可以將應用程序隔離成單獨容器,並且在多環境中保持一致,使得遷移擴展變得非常容易,使用者無需擔心依賴管理,可以將所有依賴打包進應用程序的容器,並將所有的東西當做獨立的單元交付。然後,用戶可以很輕鬆地在任意機器或者平臺上運行這個應用程序。

Kubernetes

Kubernetes2015年才推出第一個版本,是由一些Google的工程師創建,雖然才短短几年,已經成為了目前主流的容器編排工具。使用Kubernetes,無需將容器化的應用程序綁定到某個單獨的機器裡。相反,可以將應用程序部署到一個機器集群裡,Kubernetes會自動化分發並在整個集群裡調度容器。

Ansible

Ansible是一個配置管理工具,和Puppet,Chef類似。使用者可以用它配置自己的基礎架構並且自動化部署。相對於其他配置管理工具,Ansible不需要安裝agent,簡潔易用,使用YAML語法,可以在YAML裡定義各種任務,並且提供各種模塊來使用。

Prometheus

Prometheus支持多維度的指標數據模型,服務端通過HTTP協議定時拉取數據後,通過靈活的查詢語言,實現監控的目的,不需要任何SDK或者其他的集成過程。這樣做非常適合虛擬化環境比如Docker。目前是一種主流的監控Docker和Kubernetes的監控工具。

運維軟實力

DevOps趨勢下,傳統運維怎樣做才能不被

DevOps無處不在

運維是一個類似守門員的職業,做的好,沒人記得你,做的不好,立馬就出來"背鍋"。並且經常會有一些突發事件,加班,重複勞動,工作零碎,這都是常態,很難有開發或者產品的那種成就感。但是,運維其實也是一個非常有挑戰性的職業,一夫當關萬夫莫開,千軍萬馬中取人首級。未來趨勢運維可以讓開發人員通過工具、自動化和流程實現自助服務,並且儘可能少的干預應用的部署及運行,把時間用在更有意義的事情上。

針對不同的運維崗位,總體可以分為兩個方向:一個是通用廣度方向,就是通才,另一個是專業深度方向,就是專才,如何選擇,完全看自己興趣。

除去技術能力,本文認為,運維至少需要提升以下幾種軟實力:

1、溝通協調能力:溝通協調是一門藝術,會溝通,可能會達到事半功倍效果

2、抗壓能力:沉著冷靜分析處理問題,當一堆人站在你後面指望你能成為英雄的時候,手不能抖

3、主動執行能力:自己不要成為某個環節的終結者,要有主動意識

4、分享能力:自己學會了,並不一定真的會了,能把技術方案講清楚,或許能看到不一樣的自己,收益可能會超乎自己想象

5、學習能力:應對一些新領域新技術的時候能夠通過快速的學習能夠讓任務進行下去

6、信息檢索能力:善用搜索引擎,會用搜索引擎

7、英文能力:大部分開源技術都是歪果仁開源出來的,官方文檔必然也是英文居多,英文好,學習起來可以不用那麼吃力

8、好心態:不要害怕背鍋,有時候,背鍋也是一種成長,經過總結和分析,終會給自己和領導、同事一個科學的說法,並且,會很大程度幫助自己進步,什麼時候系統出問題,別人第一時間想到的是代碼出問題了,而不是環境出問題,那麼,距離巔峰就又進了一步

當然,運維軟實力遠不止以上幾點,不過,總結起來一句話可以概括:工作細緻,善於思考,具備很強的分析和解決問題的能力;強烈的責任心,良好的溝通能力和協調能力,極強的業務推動能力,善於接受挑戰。

後記

DevOps趨勢下,傳統運維怎樣做才能不被

走出舒適區

文章末尾,我想重申一下自己觀點,在DevOps潮流下,傳統運維遲早會被現實"殺死",當然,"生"與"死",決定權在自己手中。本文只是簡單列舉了一下傳統運維向新型運維轉變需要學習的東西,但是卻遠遠不止如此。具體需求,我們其實可以打開各大招聘網站,上面有更詳細的技能列表,每當要迷失方向的時候,多看一下這些,應該可以激發出大部分想要衝出舒適區運維人員的危機感。為了不被現實"殺死",唯有學習!


分享到:


相關文章: