做 运维 感觉像网管怎么办?新工作运维3个多月,天天就是维护重启服务器,更新代码……感觉这样下去几年后就没有什么竞争力了…… 这是一个热门运维问题,也是很多刚进入运维工作的同学面临的心境。
确实,【 运维 】可能是分水岭最明显的职位之一:有的人毕业6年,月薪从3K涨到到50K;有的人工作4年,依然做着重启服务器、检查机房的机械工作,这都是知乎上能看到的真实事例。
今天,我们就通过拉勾上,薪资 5K 到 100K 的运维招聘要求,来看看运维从搬砖到大神,都要学习些什么。
“昨天又搬了65台服务器……”
——本阶段工作描述
一张图概括:
招聘岗位和要求:
岗位一:
岗位职责:
任职资格:
岗位二:
岗位职责:
任职资格:
技术关键词:
Linux、服务器、环境部署
运维工程师 —— “Operations Engineer”,字面意思可理解为管理系统、服务器的工程师。初级运维最常见的工作就是熟悉和维护服务器——所以检查机房、搬服务器是90%的运维都会经历的。
进阶一点的,就要开始学习搭建服务器、搭建网络、配置环境等工作了。绝大多数服务器都使用Linux系统,所以熟练使用Linux是硬性要求;服务器需要配置网络,所以对路由协议、网络协议等网络原理也要掌握;产品开发完成后,还需要运维部署环境,安装相应的软件;安装完成后就可以上线吗?不,有时你还需要部署一套测试环境……
在这个阶段中,运维的大部分工作都是简单和机械性的,对技术水平的要求很少,以至于薪资也较低。所以刚毕业的程序员往往有一个错觉:运维岗不如开发岗。他们会感到「迷茫」,甚至「焦虑」……
“感觉自己就是个网管……” “每天的工作就是维护、重启服务器,看不到希望……”
但其实,运维是一场真正的马拉松。同样是第一个阶段,你只跑了1%,开发的同学已经跑了20%,你的提升空间远远超过他们。
“从删库到跑路……”
一张图概括:
招聘岗位和要求:
【岗位职责】:
【任职要求】:
(10-20K —— 乐视)
技术关键词:
故障排查、优化、Shell、Python、监控
随着自身技术的积累,运维的薪资在突飞猛涨。这时,你已经可以在公司或某项目里独当一面(du zi bei guo)。要达到这个阶段的要求,你需要掌握这些技能:
一、排错和调优
上线没多久,服务就502了,还不被老板骂死。尽管你有一肚子的委屈,我只是个运维,代码不是我写的,为什么要我来背这锅?!委屈归委屈,服务访问不了了,就是运维的事。尽快定位问题,解决问题才是王道。怎么来定位问题呢?最简单直接的办法就是看日志,看系统日志,看软件相关的日志,结合故障现象和经验,快速的进行定位和恢复。然后就是总结经验,吸取教训,写事故报告。OK,现在你知道,需要对系统环境需要进行一定的调优操作,不再做背锅侠。
相关技术: top, vmstat, iftop, awk, sed, sar, iostat, strace, ...
二、备份
之前的Gitlab删库事件的教训犹在眼前,丢失了几小时的数据,虽然大部分的备份策略都失效了,但还是挽救了几小时前的一个备份,才没有造成更大的数据丢失和公司损失。我们需要对设备进行备份冗余,需要对数据库进行备份及离线备份,需要对网站静态进行备份冗余,需要对机房进行备用,能做到双活,那是更好的啦。
相关技术: rsync, crontab, lvm快照, mysqldump, extrabackup, 完全备份, 差异备份, 增量备份, 离线异地备份, ...
三、高可用集群
没有永垂不朽,我们不能保证硬件24小时在线,但需要保障服务24小时在线。
出现故障后,如果做好高可用和冗余,故障自动切换,移除故障节点,那样也就保障了服务的实时在线。在老板和用户不知情的情况下,悄么的把故障处理好的,KPI算是保住了,奖金也许就会有的吧。
相关技术: F5, Nginx, LVS, HA-proxy, MHA, Zookeeper, 各种其他分布式集群方案, ...
四、监控和警报
时刻担心网站挂掉,一年365天、每周7天、每天24小时,时刻保持精神高度紧张,就算你是神仙都会撑不住的。我们需要一个机器来监督其他的机器工作,我们需要解放我们自己。当有故障发生的时候,通过短信、微信、钉钉、邮件等等通知对应的运维工程师来处理,甚至是自动切换或摘除故障节点,然后我们离线对故障节点进行问题排查。
相关技术:Zabbix, Prometheus, open-falcon, Ganglia, sar, ...
“Linux运维真的能为所欲为……”
职位一
【岗位职责】:
【岗位要求】:
( 22-40K —— 陌陌 )
职位二
【 工作职责 】
【 职位要求 】
( 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的位置,在大型公司可以担任项目的技术负责人。想达到这个阶段,你需要掌握这些技能:
一、安全和审计
不安全的网络环境和服务器配置,无异于在网络世界裸奔,任何人都可以窥探你的隐私。你的应用是否做了SQL防注入?你的防火墙是否开启?是否还在用root+密码的方式登录服务器?网站开启了https么?是否对系统操作进行审计?
相关技术: iptables, firewalld, waf, auditd, 各服务的正确配置, ...
二、DevOps 与自动化
偷懒是社会进步的第一动力。聪明的我们怎么会让自己一直在重复枯燥的事情上浪费时间,装系统、部署环境、发版本、批量操作,把这一切交给程序去实现吧,我们需要的是享受生活。
相关技术: shell, python, go, rundeck, ansible, saltstack, puppet, chef, cobbler, fabric, ...
三、虚拟化和云计算
云计算革命的发起人是卖书的亚马逊,这家伙希望卖一切可以卖的东西,包括自己闲置的服务器资源。现在国内的阿里云和腾讯云也发展得如日中天,他们几乎提供了运维所需要的一切,甚至可以让一个公司不再需要运维的岗位。你需要服务器,只需要几秒钟,就可以创建一台。你需要数据库集群,只需要鼠标点击几下,就可以开通。
相关技术:docker, Moby, kubernetes, Xen, CoreOS, Hyper-V, KVM, ...
一张图概括本阶段:
招聘岗位和要求:
80K—100K
【岗位职责】
【岗位要求】
技术关键词: ???
这个级别的大佬要么是有极强的管理能力,要么是对某技术有底层的深入研究,已无法归纳具体的技术要求,您:爱学什么学什么吧……
总之……
运维是个需要不断学习的职位
100K 还远远不是天花板
如果你确定了要努力的方向,那就学起来吧!
※更多文章和资料|点击后方文字直达 ↓↓↓ 100GPython自学资料包 阿里云K8s实战手册 [阿里云CDN排坑指南]CDN ECS运维指南 DevOps实践手册 Hadoop大数据实战手册 Knative云原生应用开发指南 OSS 运维实战手册 云原生架构白皮书 Zabbix企业级分布式监控系统源码文档 Linux&Python自学资料包 10G面试题戳领