作運維的感悟(作運維須要考慮事,運維組織結構,運維學習地圖....)

作運維須要考慮的事

簡介
/*
  運維是在於一個量
      最少的人,最多的事 而且保證業務
      好比說google的一個數據中心,只有幾我的在維護
      運維不能直接的創造價值,而是能夠變相的節約成本
      你節約的成本x你的意識x你的覺悟=你的價值
      ———-來自 98素辭
*/
服務來講

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

要選擇穩定版,太新的可能會致使一些bug,從而崩潰或服務出錯。選擇新版本惟一的目的應該是須要新的功能,不然老的版本最穩定html

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

當服務運行後要注意他的啓動用戶是什麼,可能用戶不對形成沒法讀取文件。好比nginx啓動時www用戶,他就無法讀取/data裏找html發送給用戶。python

數據庫若是要和庫,要考慮是否有表名字重複。若是公用一個redis進行緩存,要考慮寫入的數據是否衝突。mysql

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

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

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

5.對服務的日誌進行分析,好比ip來源地址,pv,uvgit

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-1)和職責以下。

系統運維

系統運維負責IDC、網絡、CDN和基礎服務的建設(LVS、NTP、DNS);負責資產管理,服務器選型、交付和維修。詳細的工做職責以下:

(1)IDC數據中心建設
收集業務需求,預估將來數據中心的發展規模,從骨幹網的分佈,數據中心建築,以及Internet接入、網絡攻擊防護能力、擴容能力、空間預留、外接專線能力、現場服務支撐能力等多個方面評估選型數據中心。負責數據中心的建設、現場維護工做。

(2)網絡建設
設計及規劃生產網絡架構,這裏麪包括:數據中心網絡架構、傳輸網架構、CDN網絡架構等,以及網絡調優等平常運維工做。

(3)LVS負載均衡和SNAT建設
LVS是整個站點架構中的流量入口,根據網絡規模和業務需求,構建負載均衡集羣;完成網絡與業務服務器的銜接,提供高性能、高可用的負載調度能力,以及統一的網絡層防攻擊能力;SNAT集中提供數據中心的公網訪問服務,經過集羣化部署,保證出網服務的高性能與高可用。

(4)CDN規劃和建設
CDN工做劃分爲第三方和自建兩部分。創建第三方CDN的選型和調度控制;根據業務發展趨勢,規劃CDN新節點建設佈局;完善CDN業務及監控,保障CDN系統穩定、高效運行;分析業務加速頻道的文件特性和數量,制定最優的加速策略和資源匹配;負責用戶劫持等CDN平常故障排查工做。

(5)服務器選型、交付和維護
負責服務器的測試選型,包含服務器整機、部件的基礎性測試和業務測試,下降整機功率,提高機架部署密度等。結合對公司業務的瞭解,推廣新硬件、新方案減小業務的服務器投入規模。負責服務器硬件故障的診判定位,服務器硬件監控、健康檢查工具的開發和維護。

(6)OS、內核選型和OS相關維護工做
負責總體平臺的OS選型、定製和內核優化,以及Patch的更新和內部版本發佈;創建基礎的YUM包管理和分發中心,提供經常使用包版本庫;跟進平常各種OS相關故障;針對不一樣的業務類型,提供定向的優化支持。

(7)資產管理
記錄和管理運維相關的基礎物理信息,包括數據中心、網絡、機櫃、服務器、ACL、IP等各類資源信息,制定有效的流程,確保信息的準確性;開放API接口,爲自動化運維提供數據支持。

(8)基礎服務建設
業務對DNS、NTP、SYSLOG等基礎服務的依賴很是高,須要設計高可用架構避免單點,提供穩定的基礎服務。

應用運維

應用運維負責線上服務的變動、服務狀態監控、服務容災和數據備份等工做,對服務進行例行排查、故障應急處理等工做。詳細的工做職責以下所述。

(1)設計評審
在產品研發階段,參與產品設計評審,從運維的角度提出評審意見,使服務知足運維准入的高可用要求。

(2)服務管理
負責制定線上業務升級變動及回滾方案,並進行變動實施。掌握所負責的服務及服務間關聯關係、服務依賴的各類資源。可以發現服務上的缺陷,及時通報並推動解決。制定服務穩定性指標及准入標準,同時不斷完善和優化程序和系統的功能、效率,提升運行質量。完善監控內容,提升報警準確度。在線上服務出現故障時,第一時間響應,對已知線上故障能按流程進行通報並按預案執行,未知故障組織相關人員聯合排障。

(3)資源管理
對各服務的服務器資產進行管理,梳理服務器資源情況、數據中心分佈狀況、網絡專線及帶寬狀況,可以合理使用服務器資源,根據不一樣服務的需求,分配不一樣配置的服務器,確保服務器資源的充分利用。

(4)例行檢查
制定服務例行排查點,並不斷完善。根據制定的服務排查點,對服務進行按期檢查。對排查過程當中發現的問題,及時進行追查,排除可能存在的隱患。

(5)預案管理
肯定服務所需的各項監控、系統指標的閾值或臨界點,以及出現該狀況後的處理預案。創建和更新服務預案文檔,並根據平常故障狀況不斷補充完善,提升預案完備性。可以制定和評審各種預案,週期性進行預案演練,確保預案的可執行性。

(6)數據備份
制定數據備份策略,按規範進行數據備份工做。保證數據備份的可用性和完整性,按期開展數據恢復性測試。

數據庫運維

數據庫運維負責數據存儲方案設計、數據庫表設計、索引設計和SQL優化,對數據庫進行變動、監控、備份、高可用設計等工做。詳細的工做職責以下所述。

(1)設計評審
在產品研發初始階段,參與設計方案評審,從DBA的角度提出數據存儲方案、庫表設計方案、SQL開發標準、索引設計方案等,使服務知足數據庫使用的高可用、高性能要求。

(2)容量規劃
掌握所負責服務的數據庫的容量上限,清楚地瞭解當前瓶頸點,當服務還未到達容量上限時,及時進行優化、分拆或者擴容。

(3)數據備份與災備
制定數據備份與災備策略,按期完成數據恢復性測試,保證數據備份的可用性和完整性。

(4)數據庫監控
完善數據庫存活和性能監控,及時瞭解數據庫運行狀態及故障。

(5)數據庫安全
建設數據庫帳號體系,嚴格控制帳號權限與開放範圍,下降誤操做和數據泄露的風險;增強離線備份數據的管理,下降數據泄露的風險。

(6)數據庫高可用和性能優化
對數據庫單點風險和故障設計相應的切換方案,下降故障對數據庫服務的影響;不斷對數據庫總體性能進行優化,包括新存儲方案引進、硬件優化、文件系統優化、數據庫優化、SQL優化等,在保障成本不增長或者少許增長的狀況下,數據庫能夠支撐更多的業務請求。

(7)自動化系統建設
設計開發數據庫自動化運維繫統,包括數據庫部署、自動擴容、分庫分表、權限管理、備份恢復、SQL審覈和上線、故障切換等功能。

運維研發

運維研發負責通用的運維平臺設計和研發工做,如:資產管理、監控系統、運維平臺、數據權限管理系統等。提供各類API供運維或研發人員使用,封裝更高層的自動化運維繫統。詳細的工做職責以下所述。

(1)運維平臺
記錄和管理服務及其關聯關係,協助運維人員自動化、流程化地完成平常運維操做,包括機器管理、重啓、更名、初始化、域名管理、流量切換和故障預案實施等。

(2)監控系統
負責監控系統的設計、開發工做,完成公司服務器和各類網絡設備的資源指標、線上業務運行指標的收集、告警、存儲、分析、展現和數據挖掘等工做,持續提升告警的及時性、準確性和智能性,促進公司服務器資源的合理化調配。

(3)自動化部署系統
參與部署自動化系統的開發,負責自動化部署系統所須要的基礎數據和信息,負責權限管理、API開發、Web端開發。結合雲計算,研發和提供PaaS相關高可用平臺,進一步提升服務的部署速度和用戶體驗,提高資源利用率。

運維安全

運維安全負責網絡、系統和業務等方面的安全加固工做,進行常規的安全掃描、滲透測試,進行安全工具和系統研發以及安全事件應急處理。詳細的工做職責以下所述。

(1)安全制度創建
根據公司內部的具體流程,制定切實可行,且行之有效的安全制度。

(2)安全培訓
按期向員工提供具備針對性的安全培訓和考覈,在全公司內創建安全負責人制度。

(3)風險評估
經過黑白盒測試和檢查機制,按期產生對物理網絡、服務器、業務應用、用戶數據等方面的整體風險評估結果。

(4)安全建設
根據風險評估結果,加固最薄弱的環節,包括設計安全防線、部署安全設備、及時更新補丁、防護病毒、源代碼自動掃描和業務產品安全諮詢等。爲了下降可能泄露數據的價值,經過加密、匿名化、混淆數據,乃至按期刪除等技術手段和流程來達到目的。

(5)安全合規
爲了知足例如支付牌照等合規性要求,安全團隊承擔着安全合規的對外接口人工做。

(6)應急響應
創建安全報警系統,經過安全中心收集第三方發現的安全問題,組織各部門對已經發現的安全問題進行修復、影響面評估、過後安全緣由追查。

從月薪5K到50k

簡介

這是一個熱門運維問題,也是不少剛進入運維工做的同窗面臨的心境。

確實,【 運維 】多是分水嶺最明顯的職位之一:有的人畢業6年,月薪從3K漲到到50K;有的人工做4年,依然作着重啓服務器、檢查機房的機械工做,這都是知乎上能看到的真實事例。

今天,咱們就經過拉勾上,薪資 5K 到 100K 的運維招聘要求,來看看運維從搬磚到大神,都要學習些什麼。

階段一(3k-5k)

「昨天又搬了65臺服務器……」
——本階段工做描述

一張圖歸納:

招聘崗位和要求

/*
	崗位一:
  崗位職責:
  公司電腦多媒體以及網絡平常維護,以及桌面運維支持
  任職資格:
  一、能熟練更換PC硬件
  二、熟悉辦公經常使用軟件以及郵箱
  三、對網絡運維方面有必定了解,並可以熟練配置交換機防火牆以及路由器。
  (4K—6K 百度文學)

  崗位二:
  崗位職責:
  一、負責公司內、外網絡平臺的搭建、實施及網絡(含無線網絡技術、設備)的具體維護工做;
  二、針對公司開展的網絡技術方案的定型與實施工做提出建議;
  三、網絡及安全技術實施方案中安裝、調試、維護工做;
  四、負責公司辦公網絡及IDC網絡平常維護工做;
  五、負責集團網絡設備及廣域線路的統計工做。

  任職資格:
  一、2018屆畢業生,專科及以上學歷、計算機相關專業;
  二、誠實守信,性格開朗,無不良歷史記錄;
  三、善於學習,善於溝通,文檔功底好,敢於面對挑戰,勇於承擔工做壓力;
  四、學生幹部或有相關網絡工程師認證(Cisco認證、Juniper認證、Huawei認證等)者優先考慮;
  五、熟悉Linux操做系統和虛擬化技術的優先。
  (JD)
*/

技術關鍵字

Linux、服務器、環境部署

運維工程師 —— 「Operations Engineer」,字面意思可理解爲管理系統、服務器的工程師。初級運維最多見的工做就是熟悉和維護服務器——因此檢查機房、搬服務器是90%的運維都會經歷的。

進階一點的,就要開始學習搭建服務器、搭建網絡、配置環境等工做了。絕大多數服務器都使用Linux系統,因此熟練使用Linux是硬性要求;服務器須要配置網絡,因此對路由協議、網絡協議等網絡原理也要掌握;產品開發完成後,還須要運維部署環境,安裝相應的軟件;安裝完成後就能夠上線嗎?不,有時你還須要部署一套測試環境……

在這個階段中,運維的大部分工做都是簡單和機械性的,對技術水平的要求不多,以致於薪資也較低。因此剛畢業的程序員每每有一個錯覺:運維崗不如開發崗。他們會感到「迷茫」,甚至「焦慮」

「感受本身就是個網管……」
「天天的工做就是維護、重啓服務器,看不到但願……」

但其實,運維是一場真正的馬拉松。一樣是第一個階段,你只跑了1%,開發的同窗已經跑了20%,你的提高空間遠遠超過他們。

階段二(6-15k)

從刪庫到跑路

一張圖歸納

or

招聘崗位和要求

/*
	【崗位職責】:
  1,負責服務器的配置、維護、監控、調優,故障排除等;
  2,運維自動化及運維腳本開發;
  3,大用戶量下高性能服務器系統部署方案的制定及實施與監控;
  4,及時響應並處理線上故障。

  【任職要求】:
  1,計算機相關專業大學本科以上學歷,具備紮實的計算機基礎理論知識;
  2,熟悉mysql、mongodb、redis、mq、elk、nginx、tomcat的安裝部署及優化;
  3,具備良好的故障排查能力,良好的邏輯分析能力及技術敏感度;
  4,熟悉掌握使用shell、python腳本語言,能熟練進行腳本/工具開發,對自動化運維有較深刻的理解或者經驗者優先;
  5,高度的責任感,較強的故障分析及排查能力,善於在工做中學習,能承受工做壓力。
  (10-20K —— 樂視)
*/

技術關鍵字

故障排查、優化、Shell、Python、監控

隨着自身技術的積累,運維的薪資在突飛猛漲。這時,你已經能夠在公司或某項目裏獨當一面(du zi bei guo)。要達到這個階段的要求,你須要掌握這些技能:

1.排錯和調優
上線沒多久,服務就502了,還不被老闆罵死。儘管你有一肚子的委屈,我只是個運維,代碼不是我寫的,爲何要我來背這鍋?!委屈歸委屈,服務訪問不了了,就是運維的事。儘快定位問題,解決問題纔是王道。怎麼來定位問題呢?最簡單直接的辦法就是看日誌,看系統日誌,看軟件相關的日誌,結合故障現象和經驗,快速的進行定位和恢復。而後就是總結經驗,吸收教訓,寫事故報告。OK,如今你知道,須要對系統環境須要進行必定的調優操做,再也不作背鍋俠。

相關技術: top, vmstat, iftop, awk, sed, sar, iostat, strace, …

2.備份
以前的Gitlab刪庫事件的教訓猶在眼前,丟失了幾小時的數據,雖然大部分的備份策略都失效了,但仍是挽救了幾小時前的一個備份,纔沒有形成更大的數據丟失和公司損失。咱們須要對設備進行備份冗餘,須要對數據庫進行備份及離線備份,須要對網站靜態進行備份冗餘,須要對機房進行備用,能作到雙活,那是更好的啦。

相關技術: rsync, crontab, lvm快照, mysqldump, extrabackup, 徹底備份, 差別備份, 增量備份, 離線異地備份, …

3.高可用集羣
沒有永垂不朽,咱們不能保證硬件24小時在線,但須要保障服務24小時在線。

出現故障後,若是作好高可用和冗餘,故障自動切換,移除故障節點,那樣也就保障了服務的實時在線。在老闆和用戶不知情的狀況下,悄麼的把故障處理好的,KPI算是保住了,獎金也許就會有的吧。

相關技術: F5, Nginx, LVS, HA-proxy, MHA, Zookeeper, 各類其餘分佈式集羣方案, …

4.監控和警報
時刻擔憂網站掛掉,一年365天、每週7天、天天24小時,時刻保持精神高度緊張,就算你是神仙都會撐不住的。咱們須要一個機器來監督其餘的機器工做,咱們須要解放咱們本身。當有故障發生的時候,經過短信、微信、釘釘、郵件等等通知對應的運維工程師來處理,甚至是自動切換或摘除故障節點,而後咱們離線對故障節點進行問題排查。

相關技術:Zabbix, Nagios, Cacti, Prometheus, open-falcon, Ganglia, sar, …

階段三(20-45k)

Linux運維真的隨心所欲

一張圖歸納

招聘崗位和要求

/*
	職位一
  【崗位職責】:
  一、制定和優化運維解決方案,包括但不限於柔性容災、智能調度、彈性擴容與防攻擊;
  二、推進及開發高效的自動化運維、管理工具,提高運維工做效率;
  三、探索、研究新的運維技術方向。
  【崗位要求】:
  一、本科及以上學歷,3年以上的Linux系統使用和管理經驗;
  二、熟悉 Linux 操做系統原理、TCP/IP 以及經常使用RPC協議;
  三、熟悉腳本語言Bash/Python等腳本語言的一種並有相關開發經驗;
  四、熟悉Docker、Kubernetes等開源軟件;
  五、熟悉常見應用配置及優化,如Nginx/Haproxy/MySQL/DNS/Redis/MongoDB等;
  六、熟悉經常使用的監控系統,如 Zabbix、Nagios 和 Ganglia 等;
  七、熟悉systemtap、perf、oprofile 等分析調試工具;很強的Troubleshooting能力、且可以推進業務問題改善和解決;
  八、具備良好的的溝通、執行能力和強烈的責任心;
  九、耐心、細緻、學習能力強,較強的工做計劃;
  十、在開源社羣活躍並有積極貢獻者優先,
  ( 22-40K —— 陌陌 )
  
 職位二
 【 工做職責 】
    負責京東內部信息安全平臺的基礎運維工做,處理值班問題,確保系統服務穩定性;
    負責運維自動化/標準化方案設計,自動化工具及平臺研發,提高運維效率;
    負責生產、測試、灰度多套環境的部署和維護,配合研發、測試團隊進行應用部署;
    制定信息安全集羣監控和報警方案,處理報警問題;
    定位與分析運維問題,給出解決方案。
    【 職位要求 】
    計算機相關專業,本科及以上學歷,至少2年以上的大規模系統運維經驗,2年以上運維開發經驗,有deveops開發經驗或有中大型互聯網公司運維自動化經驗者優先;
    具有openstack或docker集羣運維經驗;
    掌握shell/python/perl/php其中一種腳本語言,有Python實際項目經驗,熟練掌握Django、Tornado等任一Web開發框架者優先;
    掌握互聯網經常使用的中間件維護、管理,例如redis、mongodb、kafka、memcached、dubbo等;
    掌握tomcat、nginx等常見應用的搭建、配置、優化;
    掌握zabbix、nagios、elk等系統的搭建、配置、優化;
    掌握一種大規模自動化運維工具(saltstack、ansible、puppet),有二次開發經驗優先;
    熟悉linux/uinx,windows操做系統基礎原理及經常使用操做;
    熟悉常見運維配置及優化,如Svn/git/Ansible/Nginx/Tomcat/salt等;
    熟悉TCP/IP、HTTP等協議,有良好的網絡、數據傳輸、安全、計算機體系結構方面的知識;
    認同DevOps文化,重視自動化方式處理各類問題;
    具有良好的項目規劃、推動能力;
    具備良好的溝通協調能力、較強的團隊合做精神、優秀的執行能力;
    有很強的分析和解決問題的能力。
    ( 30 - 50K 京東 )
*/

技術關鍵詞

自動化、DevOps、雲服務、Docker、kubernetes、安全……

deveops、openstack、docker、集羣運維、shell/python/perl/php、Django、Tornado、redis、mongodb、kafka、memcached、dubbo、omcat、nginx、zabbix、nagios、elk、saltstack、ansible、puppet、linux/uinx系統基礎原理、Svn/git/Ansible/Nginx/Tomcat/salt、TCP/IP、HTTP……

看到這些技術名詞,相信你必定會明白,高端運維爲什麼配得上這麼高的薪資。

雖然以上這些技術並非所有須要掌握的,同一類型掌握同樣便可,但仍能夠看出,這個階段的運維已是集大成者 —— 在中型公司能夠勝任CTO的位置,在大型公司能夠擔任項目的技術負責人。想達到這個階段,你須要掌握這些技能:

1.安全和審計
不安全的網絡環境和服務器配置,無異於在網絡世界裸奔,任何人均可以窺探你的隱私。你的應用是否作了SQL防注入?你的防火牆是否開啓?是否還在用root+密碼的方式登陸服務器?網站開啓了https麼?是否對系統操做進行審計?

相關技術: iptables, firewalld, waf, auditd, 各服務的正確配置, …

2.DevOps 與自動化
偷懶是社會進步的第一動力。聰明的咱們怎麼會讓本身一直在重複枯燥的事情上浪費時間,裝系統、部署環境、發版本、批量操做,把這一切交給程序去實現吧,咱們須要的是享受生活。

相關技術: shell, python, go, rundeck, ansible, saltstack, puppet, chef, cobbler, fabric, …

3.虛擬化和雲計算
雲計算革命的發起人是賣書的亞馬遜,這傢伙但願賣一切能夠賣的東西,包括本身閒置的服務器資源。如今國內的阿里雲和騰訊雲也發展得如日中天,他們幾乎提供了運維所須要的一切,甚至可讓一個公司再也不須要運維的崗位。你須要服務器,只須要幾秒鐘,就能夠建立一臺。你須要數據庫集羣,只須要鼠標點擊幾下,就能夠開通。

相關技術:docker, Moby, kubernetes, Xen, CoreOS, Hyper-V, KVM, …

階段四(50k-???)

一張圖歸納本階段:

招聘崗位和要求

/*
	80K—100K
	【崗位職責】
    1.做爲公有云SRE軟件技術專家,負責自動化運維平臺的系統分析和架構設計,指導研發團隊實現設計,規劃將來平臺技術架構方向;
    2.負責全局性和前瞻性的架構設計,以及關鍵技術細節的實現,解決業務發展遇到的架構問題,持續提高系統平臺穩定性;
    3.負責持續關注業務技術發展和最佳實踐,並結合華爲雲運維產品業務特色推動新技術及實現方案的落地;
    【崗位要求】
    1.本科及以上學歷,6年以上大型業務應用系統的架構設計和落地的實際能力,熟悉分佈式、緩存、消息等機制,能對分佈式經常使用技術進行合理應用,解決實際架構問題;
    2.海量數據處理和架構能力及經驗,熟悉SOA並具備系統的架構設計經驗;
    3.精通Java/Python/Go/C/C++其中至少1種編程語言;
    4.精通操做系統,數據庫,IO、多線程編程原理、集合等基礎框架,對JVM原理有深刻的瞭解;
    5.精通分佈式事務處理框架原理和實現,精通多線程及高性能的應用的設計,編碼及性能調優經驗;
*/

技術關鍵詞

???

這個級別的大佬要麼是有極強的管理能力,要麼是對某技術有底層的深刻研究,已沒法概括具體的技術要求,您:

愛學什麼學什麼吧……

/*
	總之……
    運維是個須要不斷學習的職位
    100K 還遠遠不是天花板
    (銀行、BAT、華爲了解一下……)
    若是你肯定了要努力的方向,那就學起來吧!
*/

運維學習地圖

行囊

新手在學習的時候,一般遇到的問題是沒有一整套學習計劃,不知道具體學哪些纔會對工做有幫助,遇到問題也沒人解答,而這2點也是培訓機構的賣點。

這種狀況,最好的方法是加個技術羣,看看誰在裏面老回答問題,能夠加好友具體問問,而後請他喝杯咖啡。

資料方面不要看不少,在豆瓣中搜索相關書籍,評分高都看一本就好了,畢竟技術都是積累的,沒有一會兒就學圓滿的。

有下面的知識,運維才能邁出第一步,否則就是比較殘缺的,沒法造成大局觀。例如某些用戶訪問網站有問題,報錯505,你只會linux方面的,對網絡不清楚,那若是問題出在運營商身上,或者服務器之間的網絡通訊上,就會抓瞎。

  • 計算機基礎知識(瞭解計算機哪幾個部分組成,如何裝系統,上下架等等)
  • 網絡基礎知識(不用太深刻,知道協議有哪些,什麼意思,路由器交換機工做原理)
  • 安全基礎知識(知道什麼叫ddos,知道基本防護方法)
  • 測試基礎知識(知道性能測試和web測試用什麼工具,否則你優化完怎麼證實它性能提升了?)
  • 開發基礎知識(基本的構建,打包知道什麼意思,異步非阻塞之類的)
  • linux基礎知識(這部分就是對linux的瞭解了,linux啓動順序,命令等等)

不過大公司會專門作某一部分,例如應用運維不須要關注測試和安全等方面,但建議都學學,舉一反三有好處。

有這些基礎,進到公司就能夠去完成基礎的建設工做了。好比會安排你搭建服務,整理資產報表,清理一些日誌,這些基本工做能夠幫助你瞭解公司當前有哪些服務,各類服務之間是如何運做的,以後再慢慢參與到業務中,薪資一線城市能夠達到6-10k左右。

大路

當進入公司一年以上後,就是衝刺階段,這個階段會學習到大量知識,由於剛工做,會明白不少書本上和模擬遇不到的東西,天天都會有大量進步。

會知道一個項目從建立到上線的過程,會發現公司有大量東西須要改善,例如部署服務還在使用手工部署,當一個新項目上線,須要花不少時間部署,你就能夠嘗試用腳原本自動部署。

公司須要監控,你能夠參與選擇軟件,用zabbix仍是cacti,或者不是你選擇,你也能夠對原有監控項進行優化和完善。這些都是實際應用的,你會明白比原先學習的更多東西。

這塊是公司有需求或者用到什麼,就去學習什麼。不要看什麼運維必須掌握的命令和工具大全之類的文章,你都用不到學了有啥用。若你業務都掌握明白了,有空餘時間,能夠搞搞docker之類熱門應用,在此以前,仍是把精力花在手頭事情上。

同時要創建好的學習方法,否則在熟悉工做後,很容易懈怠,而後在羣裏划水,學習激情會減退。個人方法是帶着目的學習,而後寫文章讓你們看,得到激勵後就有動力繼續學習了。

這段衝刺期會維持3-5年,會讓人感受天天都有進步,明白的東西愈來愈多。算是中級運維了,薪資一線城市能夠達到10-20k左右。

岔道

再往前就會分出不少個岔道,開發、安全、DBA、測試、應用運維、基礎運維等等。

時間有限,須要從中挑選適合的。只有選定方向才能不迷路,也才能更快的到達目的地。到了這時,就已經邁步向高級運維了。須要選擇一個方向去努力,否則運維的東西太雜,很難面面俱到。

如何要作運維開發,就須要去學習python,html,各類框架,也能夠學go。

要作DBA,就要專門研究數據庫,搞清楚數據庫的原理結構,每一個詳細點。

每一門日後都有大量的東西要學習的,專精才能錢多,而且有成長。

不過當前都在往運維開發方向靠攏,將來的運維都要會一些開發才行。之前是shell,當今是python,須要的技術愈來愈深刻,緊跟潮流纔不會被落下。

高級運維,通常5-10年經驗,薪資15-35k左右

終點

技術是沒有終點的,固然能夠有你本身的終點。當工做10年,技術已經很厲害了,就須要靠攏一些別的東西了。

能夠根據你掌握的技術,去搞博客,出售一些視頻,寫付費文章或者付費問答。甚至能夠看準機會後,去作產品的。像寶塔面板,cdn,都是一大批運維或者開發看準機會後從技術轉型成創業者。

購買基金彩票和增值物品也能夠,區塊鏈就算了,不獲得國家認可和保護的東西,終究沒有大的發展的。有些股票或者基金仍是很妥當,很不錯的,雖然進步慢,可是很穩定不會虧。

就像《教父》小說中說的,不要把雞蛋放在一個籠子裏,能夠愛好技術,但也要搞副業,來應對來爲可能形成的衝擊。

相關文章
相關標籤/搜索