如題,答主是一名大一新生計算機專業對運維比較感興趣,所以來知乎問一問各位知乎er。謝謝辣~


先問是什麼,再問怎麼做,運維新人建議先看看《鳳凰項目》,輕鬆的非技術類書籍,但是包含挺多運維日常,哲學和智慧的,做過運維的看過這個書都多少有一些共鳴。相信會讓你對運維這個職業理解加深一些,然後再思考怎麼學習運維。關於大多數運維的一般工作日常我在這個問題里回答過,可以看下,知道了運維是做什麼的以後,再看運維需要學習哪些東西,有的放矢,最重要的是落地所學的東西,做工程的一切都要以實現和落地為準,否則學習的知識都只能是紙上談兵,不會變強大。

運維工作日常有什麼??

www.zhihu.com圖標

我給你列一個比較全的互聯網運維工程師的能力框架,這裡的運維不包含idc運維,企業it運維這些,

1.硬體基礎:了解原理,cpu,內存,磁碟,網卡等的相關知識,如cpu緩存,指令集,架構,流水線,保護模式,磁碟尋道原理,各級別raid,ssd,sas,sata等的常用性能指標,如iops,帶寬,吞吐量等等

2.操作系統:需要熟悉,最好精通。進程調度,內存管理,文件系統,外設管理等,要熟練使用相關工具,如top iotop iftop iostat vmstat ss等,並且最好了解其原理,建議對/proc下的內容也進行深入了解,對做主機級監控十分有幫助

3.網路:需要熟悉,最好精通,tcp,http,https,udp等最好能做到精通,4層,7層的網路流量分析技能要熟練掌握。內部路由協議,邊際路由,交換原理,域名解析,ipv6相關知識

4.安全和加密:熟悉防火牆原理,主機級安全理論,以及常用加密演算法,web安全,網路安全。了解滲透的常用手段,以及反制手段,sql注入,xss,ddos,cc,還有常見漏洞的利用原理,沙箱,容器的逃逸等,了解常見的網路安全方案,waf 高防等

5.虛擬化和容器技術:熟悉常見的虛擬化技術如kvm,常見的容器技術如docker,以及相關的k8s,了解網格計算的概念,了解isto以及在各公司的落地方式。

6.itil理論:知道如何制定合理的流程保障業務的穩定和安全性

7.常見的開源組件:mysql,redis,kafka,etcd,zk,influxdb,promethues,zabbix,graphana,ansible.....

8.部署,發布,監控,變更,sla保障的實踐案例,熟悉常見的接入服務,邏輯服務,中間件,資料庫高可用方案,過載保護,降級方案,分散式事務一致性方案等

9.運維開發,shell,python,golang,前端

10.devops,編譯,加速,測試環境,研發流程自動化

11.項目管理理論,成本控制

12.aiops,利用現網數據訓練機器學習模型,輔助容量管理,監控排障

13.待補充...


午休時間到了,等我閑了再來補充


Linux基礎

包括對Linux整體的理解/使用和基本命令:

  • 了解Linux FHS : Filesystem Hierarchy Standard,國人寫的這本書不錯 Linux系統架構與目錄解析 (豆瓣)
  • 入門Linux:鳥哥的Linux私房菜.基礎學習篇(第三版) (豆瓣) 個人認為鳥哥的這本書是一本非常好的入門書
  • 基本操作命令:Google,如Linux command cheat sheet
  • 熟悉至少一個內置編輯器: vi, nano
  • 至少熟悉一個發行版(或系列),建議作為伺服器常用的如Centos, Debian, Ubuntu,可以了解多個常用發行版
  • 個人使用/開發盡量在Linux上,比如我前期選擇了 Gentoo Welcome – Gentoo Linux ,非常Cool的一個Linux發行版,配合官方的 Handbook Handbook:Main Page,可以學到很多東西

運維的命令:

運維相關的工具(命令),了解它能解決很多問題。

裡面的圖在這裡也可以用到:

可以對著圖對學習了解這些命令

基礎服務:

  • LAMP或LNMP :Apache/Nginx,MySQL,PHP/Python/Perl LAMP (software bundle)
  • FTP
  • DNS
  • SAMBA
  • EMAIL
  • NTP
  • DHCP
  • ...

可以本地搭建練練手

運維平台工具:

也在這個問題如何才能更深入的學習linux?里提到了:

  • Nagios
  • Puppet
  • Zabbix
  • Cacti
  • SaltStack
  • ....

可以選擇性的折騰下,因為這個涉及到業務,沒有實際環境,很難去理解他們的功能和特點。

腳本

  • 必備:Shell
  • 額外:Python,Perl...

底層

  • Linux C,內核

網路

網路是非常重要的一塊

  • 把《TCP/IP協議詳解》多看幾遍,理解。
  • 熟練使用tcpdump等抓包工具

安全

  • 防火牆配置,如 iptables, ipset

硬體

  • 介面類型
  • 查看硬體信息
  • 知道各類型伺服器,如塔式、機架式、刀片式

其它

後續想到再做補充

素養/處理方式

除了技能,我覺得素養(態度)也可以談談

這個正好看到右邊相關問題:運維工程師需要具備哪些性格特質?

安全

運維人員的許可權很大,所以一定要保證帳號/私鑰的安全。

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

以上任何一點都很重要,否則弄丟了,風險會非常大。

細心

你的任何一個操作,都可能造成系統的損壞、業務出問題。所以敲命令時一定要細心、再三確認。你敲的再快,也就節省那麼一點時間,出了問題才是大事。

推進/改善

如果代碼有問題,導致系統開銷很大,比如負載,io等。應該第一時間和開發部門確認,要求優化代碼。

進取心/不斷學習

運維的知識範圍很廣,要不斷學習。遇到問題,做好分析記錄,事後還可以在部門內分享交流。

這也是我為什麼熱衷於寫技術博客和維基的原因,好記性不如爛筆頭。記錄整理的過程也是一個思考升華的過程。

歡迎評論補充

其它的一些回答都非常棒,強烈建議也看看!


知識面放廣,網路,資料庫,安全,操作系統都懂一點,對你以後的工作有幫助


我推薦題主閱讀一本《SRE運維解密》


最好的方法個人覺得

一是搭建框架,找一本書,或者一套課程,關於運維的,這是理論基礎

二是,盡量和各行業的從業的運維人員打交道,或者加入這樣的論壇,圈子,看看實際運維涉及的工作範圍和工作內容,遇到什麼問題,確定實際的工作狀態是不是你想要的,能不能接受或者說愛上這個狀態

三是做好每年不斷學習更新知識儲備的打算,運維技術層出不窮,過個兩三年你原來的經驗就要升級,更新,否則跟不上要求

四是交際能力,運維做個幾年,技術不是最主要制約因素,人際關係,危機管理是。

暫時想到這麼多,希望能給到一些幫助。


先學開發,再學操作系統,然後學中間件


運維是實戰積攢出來的經驗,大佬一句話可以讓你少走好幾年彎路,別怕苦,多上手,多思考。


不建議看書,看視頻效果最好,而且要實操。先熟悉各個版本的Linux,紅帽,cent os ,ubuntu等學精了,資料庫可以先學個MySQL,這個用的最多,其他的還有SQL server, Oracle了解下,以後DevOps是方向,把Python shell學學。了解些監控工具。


大一新生還是好好學開發吧 運維沒什麼前途


來自小白白白白白想要說的話。

1,好好學習計算機基礎知識,比現在烏漆嘛黑亂學一通更好。

2,什麼快速入門指南,從0開始啥的,學習這類教程都要好多的基礎,任何類型的知識都可以分解成小知識,區別在於很少有人小知識掌握的很多很全,所以學習這些教程可能一時間你覺得明白了,但根本上啥也不是。

3,拿興趣愛好當以後的職業可能不太適合,付出的太多了。

可能答非所問,學習運維沒啥注意的哈。


推薦閱讀:
相关文章