如题,答主是一名大一新生计算机专业对运维比较感兴趣,所以来知乎问一问各位知乎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,拿兴趣爱好当以后的职业可能不太适合,付出的太多了。

可能答非所问,学习运维没啥注意的哈。


推荐阅读:
相关文章