1、月薪5K到50K
1.1 前言
这是一个热门的运维问题,也是很多刚走进运维大门同学面临的心境。
确实,运维可能是分水岭最明显的职位之一:有的人毕业6年,月薪从3K涨到50K;有的人工作4年,依然做着重启服务器、检查机房的机械工作,这都是网上能看到的,也是真实存在的事例。
今天,我们就通过拉勾上,薪资5K到100K的运维招聘要求,来看看运维从搬砖到大神,都要学习些什么。
1.2 阶段一(3K - 5K)
1.2.1 一句话
“昨天又搬了65台服务器……”
1.2.2 一张图
1.2.3 招聘岗位和要求
岗位一:
岗位职责:
公司电脑多媒体以及网络日常维护,以及桌面运维支持
任职资格:
1、能熟练更换PC硬件
2、熟悉办公常用软件以及邮箱
3、对网络运维方面有一定了解,并能够熟练配置交换机防火墙以及路由器。
(4K—6K 百度文学)
岗位二:
岗位职责:
1、负责公司内、外网络平台的搭建、实施及网络(含无线网络技术、设备)的具体维护工作;
2、针对公司开展的网络技术方案的定型与实施工作提出建议;
3、网络及安全技术实施方案中安装、调试、维护工作;
4、负责公司办公网络及IDC网络日常维护工作;
5、负责集团网络设备及广域线路的统计工作。
任职资格:
1、2018届毕业生,专科及以上学历、计算机相关专业;
2、诚实守信,性格开朗,无不良历史记录;
3、善于学习,善于沟通,文档功底好,勇于面对挑战,敢于承担工作压力;
4、学生干部或有相关网络工程师认证(Cisco认证、Juniper认证、Huawei认证等)者优先考虑;
5、熟悉Linux操作系统和虚拟化技术的优先。
(JD)
1.2.4 技术关键字
Linux、服务器、环境部署
运维工程师 —— “Operations Engineer”,字面意思可理解为管理系统、服务器的工程师。
初级运维最常见的工作就是熟悉和维护服务器——所以检查机房、搬服务器是90%的运维都会经历的。
进阶一点的,就要开始学习搭建服务器、搭建网络、配置环境等工作了。绝大多数服务器都使用Linux系统,所以熟练使用Linux是硬性要求;服务器需要配置网络,所以对路由协议、网络协议等网络原理也要掌握;产品开发完成后,还需要运维部署环境,安装相应的软件;安装完成后就可以上线吗?不,有时你还需要部署一套测试环境……
1.2.5 心得
在这个阶段中,运维的大部分工作都是简单和机械性的,对技术水平的要求很少,以至于薪资也较低。所以刚毕业的同学往往有一个错觉:运维岗不如开发岗。他们会感到「迷茫」,甚至「焦虑」
“感觉自己就是个网管……”
“每天的工作就是维护、重启服务器,看不到希望……”
但其实,运维是一场真正的马拉松。同样是第一个阶段,你只跑了1%,开发的同学已经跑了20%,你的提升空间远远超过他们。
1.3 阶段二(6K - 15K)
1.3.1 一句话
从删库到跑路
1.3.2 一张图
1.3.3 招聘岗位和要求
【岗位职责】:
1,负责服务器的配置、维护、监控、调优,故障排除等;
2,运维自动化及运维脚本开发;
3,大用户量下高性能服务器系统部署方案的制定及实施与监控;
4,及时响应并处理线上故障。
【任职要求】:
1,计算机相关专业大学本科以上学历,具有扎实的计算机基础理论知识;
2,熟悉mysql、mongodb、redis、mq、elk、nginx、tomcat的安装部署及优化;
3,具有良好的故障排查能力,良好的逻辑分析能力及技术敏感度;
4,熟悉掌握使用shell、python脚本语言,能熟练进行脚本/工具开发,对自动化运维有较深入的理解或者经验者优先;
5,高度的责任感,较强的故障分析及排查能力,善于在工作中学习,能承受工作压力。
(10-20K —— 乐视)
1.3.4 技术关键字
故障排查、优化、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, Nagios, Cacti, Prometheus, open-falcon, Ganglia, sar, …
1.4 阶段三(20K - 45K)
1.4.1 一句话
Linux运维真的可以为所欲为
1.4.2 一张图
1.4.3 招聘岗位和要求
职位一
【岗位职责】:
1、制定和优化运维解决方案,包括但不限于柔性容灾、智能调度、弹性扩容与防攻击;
2、推动及开发高效的自动化运维、管理工具,提升运维工作效率;
3、探索、研究新的运维技术方向。
【岗位要求】:
1、本科及以上学历,3年以上的Linux系统使用和管理经验;
2、熟悉 Linux 操作系统原理、TCP/IP 以及常用RPC协议;
3、熟悉脚本语言Bash/Python等脚本语言的一种并有相关开发经验;
4、熟悉Docker、Kubernetes等开源软件;
5、熟悉常见应用配置及优化,如Nginx/Haproxy/MySQL/DNS/Redis/MongoDB等;
6、熟悉常用的监控系统,如 Zabbix、Nagios 和 Ganglia 等;
7、熟悉systemtap、perf、oprofile 等分析调试工具;很强的Troubleshooting能力、且能够推动业务问题改善和解决;
8、具有良好的的沟通、执行能力和强烈的责任心;
9、耐心、细致、学习能力强,较强的工作计划;
10、在开源社群活跃并有积极贡献者优先,
( 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 京东 )
1.4.4 技术关键字
自动化、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, …
1.5 阶段四(50K - ???)
1.5.1 一张图
1.5.2 招聘岗位和要求
80K—100K
【岗位职责】
1.作为公有云SRE软件技术专家,负责自动化运维平台的系统分析和架构设计,指导研发团队实现设计,规划未来平台技术架构方向;
2.负责全局性和前瞻性的架构设计,以及关键技术细节的实现,解决业务发展遇到的架构问题,持续提升系统平台稳定性;
3.负责持续关注业务技术发展和最佳实践,并结合华为云运维产品业务特点推进新技术及实现方案的落地;
【岗位要求】
1.本科及以上学历,6年以上大型业务应用系统的架构设计和落地的实际能力,熟悉分布式、缓存、消息等机制,能对分布式常用技术进行合理应用,解决实际架构问题;
2.海量数据处理和架构能力及经验,熟悉SOA并具有系统的架构设计经验;
3.精通Java/Python/Go/C/C++其中至少1种编程语言;
4.精通操作系统,数据库,IO、多线程编程原理、集合等基础框架,对JVM原理有深入的了解;
5.精通分布式事务处理框架原理和实现,精通多线程及高性能的应用的设计,编码及性能调优经验;
1.5.3 技术关键词
???
这个级别的大佬要么是有极强的管理能力,要么是对某技术有底层的深入研究,已无法归纳具体的技术要求,您:
爱学什么学什么吧……
总之……
运维是个需要不断学习的职位
100K 还远远不是天花板
(银行、BAT、华为了解一下……)
如果你确定了要努力的方向,那就学起来吧!
2、运维学习地图
2.1 行囊
新手在学习的时候,通常遇到的问题是没有一整套学习计划,不知道具体学哪些才会对工作有帮助,遇到问题也没人解答,而这2点也是培训机构的卖点。
这种情况,最好的方法是加个技术群,看看谁在里面老回答问题,可以加好友具体问问,然后请他喝杯咖啡。
资料方面不要看很多,在豆瓣中搜索相关书籍,评分高都看一本就行了,毕竟技术都是积累的,没有一下子就学圆满的。
有下面的知识,运维才能迈出第一步,不然就是比较残缺的,无法形成大局观。例如某些用户访问网站有问题,报错505,你只会linux方面的,对网络不清楚,那如果问题出在运营商身上,或者服务器之间的网络通信上,就会抓瞎。
- 计算机基础知识(了解计算机哪几个部分组成,如何装系统,上下架等等)
- 网络基础知识(不用太深入,知道协议有哪些,什么意思,路由器交换机工作原理)
- 安全基础知识(知道什么叫ddos,知道基本防御方法)
- 测试基础知识(知道性能测试和web测试用什么工具,不然你优化完怎么证明它性能提高了?)
- 开发基础知识(基本的构建,打包知道什么意思,异步非阻塞之类的)
- linux基础知识(这部分就是对linux的了解了,linux启动顺序,命令等等)
不过大公司会专门做某一部分,例如应用运维不需要关注测试和安全等方面,但建议都学学,触类旁通有好处。
有这些基础,进到公司就可以去完成基础的建设工作了。比如会安排你搭建服务,整理资产报表,清理一些日志,这些基本工作可以帮助你了解公司当前有哪些服务,各种服务之间是如何运作的,之后再慢慢参与到业务中,薪资一线城市可以达到6-10k左右。
2.2 大路
当进入公司一年以上后,就是冲刺阶段,这个阶段会学习到大量知识,因为刚工作,会明白很多书本上和模拟遇不到的东西,每天都会有大量进步。
会知道一个项目从创建到上线的过程,会发现公司有大量东西需要改善,例如部署服务还在使用手工部署,当一个新项目上线,需要花很多时间部署,你就可以尝试用脚本来自动部署。
公司需要监控,你可以参与选择软件,用zabbix还是cacti,或者不是你选择,你也可以对原有监控项进行优化和完善。这些都是实际应用的,你会明白比原先学习的更多东西。
这块是公司有需求或者用到什么,就去学习什么。不要看什么运维必须掌握的命令和工具大全之类的文章,你都用不到学了有啥用。若你业务都掌握明白了,有空余时间,可以搞搞docker之类热门应用,在此之前,还是把精力花在手头事情上。
同时要建立好的学习方法,不然在熟悉工作后,很容易懈怠,然后在群里划水,学习激情会减退。我的方法是带着目的学习,然后写文章让大家看,获得激励后就有动力继续学习了。
这段冲刺期会维持3-5年,会让人感觉每天都有进步,明白的东西越来越多。算是中级运维了,薪资一线城市可以达到10-20k左右。
2.3 岔道
再往前就会分出很多个岔道,开发、安全、DBA、测试、应用运维、基础运维等等。
时间有限,需要从中挑选适合的。只有选定方向才能不迷路,也才能更快的到达目的地。到了这时,就已经迈步向高级运维了。需要选择一个方向去努力,不然运维的东西太杂,很难面面俱到。
如何要做运维开发,就需要去学习python,html,各种框架,也可以学go。
要做DBA,就要专门研究数据库,搞清楚数据库的原理结构,每个详细点。
每一门往后都有大量的东西要学习的,专精才能钱多,并且有成长。
不过当前都在往运维开发方向靠拢,未来的运维都要会一些开发才行。以前是shell,当今是python,需要的技术越来越深入,紧跟潮流才不会被落下。
高级运维,一般5-10年经验,薪资15-35k左右
2.4 终点
技术是没有终点的,当然可以有你自己的终点。
当工作10年,技术已经很厉害了,就需要靠拢一些别的东西了。
可以根据你掌握的技术,去搞博客,出售一些视频,写付费文章或者付费问答。甚至可以看准机会后,去做产品的。像宝塔面板,cdn,都是一大批运维或者开发看准机会后从技术转型成创业者。
购买基金彩票和增值物品也可以,区块链就算了,不得到国家承认和保护的东西,终究没有大的发展的。有些股票或者基金还是很稳当,很不错的,虽然进步慢,但是很稳定不会亏。
就像《教父》小说中说的,不要把鸡蛋放在一个笼子里,可以爱好技术,但也要搞副业,来应对来为可能造成的冲击。